From fa783064f7ff172f1a63b5f96a05a8d9d09becf6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A6=82=E6=84=8F=20=E5=BD=AD?= <2417589739@qq.com>
Date: Tue, 11 Apr 2023 10:41:47 +0800
Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E5=94=90=E9=85=8D=E6=96=99=E7=B3=BB?=
=?UTF-8?q?=E7=BB=9F=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../UserControls/ConveyBelt2.xaml | 3 +-
.../UserControls/ConveyBelt2.xaml.cs | 49 ++++++--
BPASmartClient.DosingSystemSingle/App.xaml | 3 +-
BPASmartClient.S7Net/SiemensHelper.cs | 2 +-
DosingSystem/App.xaml.cs | 29 +++++
DosingSystem/View/TempManageControlView.xaml | 99 +++++++++++++++
.../View/TempManageControlView.xaml.cs | 28 +++++
.../ViewModel/TempManageControlViewModel.cs | 115 ++++++++++++++++++
8 files changed, 315 insertions(+), 13 deletions(-)
create mode 100644 DosingSystem/View/TempManageControlView.xaml
create mode 100644 DosingSystem/View/TempManageControlView.xaml.cs
create mode 100644 DosingSystem/ViewModel/TempManageControlViewModel.cs
diff --git a/BPASmartClient.CustomResource/UserControls/ConveyBelt2.xaml b/BPASmartClient.CustomResource/UserControls/ConveyBelt2.xaml
index 79e65167..55ea5e43 100644
--- a/BPASmartClient.CustomResource/UserControls/ConveyBelt2.xaml
+++ b/BPASmartClient.CustomResource/UserControls/ConveyBelt2.xaml
@@ -83,7 +83,7 @@
Duration="0:0:20" />
-
+
@@ -96,6 +96,7 @@
Duration="0:0:20" />
+
100)
{
pathFigure.StartPoint = new Point(0, 35 + (BeltHeight - 100) / 2);
- pathFigure.Segments.Add(new LineSegment(new Point(BeltWidth - 10, 35 + (BeltHeight - 100)/2), true));
+ pathFigure.Segments.Add(new LineSegment(new Point(BeltWidth - 10, 35 + (BeltHeight - 100) / 2), true));
}
else
{
@@ -74,7 +89,7 @@ namespace BPASmartClient.CustomResource.UserControls
{
this.recDown.Margin = new Thickness(0, BeltHeight - 20, 0, 0);
}
- else
+ else
{
this.recDown.Margin = new Thickness(0, 80, 0, 0);
}
@@ -115,15 +130,29 @@ namespace BPASmartClient.CustomResource.UserControls
private static void OnDirectionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
-
- if ((d as ConveyBelt2)?.BeltDirection == 0)
- {
- VisualStateManager.GoToState(d as ConveyBelt2, "RightState", false);
- }
- else
+ string status = "Stop";
+ if ((d as ConveyBelt2).IsRun)
{
- VisualStateManager.GoToState(d as ConveyBelt2, "LeftState", false);
+ if ((d as ConveyBelt2)?.BeltDirection == 0)
+ {
+ VisualStateManager.GoToState(d as ConveyBelt2, "RightState", false);
+ return;
+ }
+ else
+ {
+ VisualStateManager.GoToState(d as ConveyBelt2, "LeftState", false);
+ return;
+ }
}
+ VisualStateManager.GoToState(d as ConveyBelt2, status, false);
+ //if ((d as ConveyBelt2)?.BeltDirection == 0)
+ //{
+ // VisualStateManager.GoToState(d as ConveyBelt2, "RightState", false);
+ //}
+ //else
+ //{
+ // VisualStateManager.GoToState(d as ConveyBelt2, "LeftState", false);
+ //}
}
}
diff --git a/BPASmartClient.DosingSystemSingle/App.xaml b/BPASmartClient.DosingSystemSingle/App.xaml
index 7fb508f6..49315c62 100644
--- a/BPASmartClient.DosingSystemSingle/App.xaml
+++ b/BPASmartClient.DosingSystemSingle/App.xaml
@@ -1,4 +1,5 @@
-(o =>
+ {
+ DebugLogViewModel.MessageModels.Add(new MessageModel()
+ {
+ LogInfo = o,
+ Forground = System.Windows.Media.Brushes.DeepSkyBlue
+ });
+ });
+ MessageLog.GetInstance.NotifyShowEx = new Action(o =>
+ {
+ DebugLogViewModel.MessageModels.Add(new MessageModel()
+ {
+ LogInfo = o,
+ Forground = System.Windows.Media.Brushes.Red
+ });
+ });
ProgramStarted = new EventWaitHandle(false, EventResetMode.AutoReset, "DosingSystem", out createNew);
if (!createNew)
{
@@ -42,6 +61,7 @@ namespace BPASmartClient.DosingSystem
BPASmartClient.Helper.SystemHelper.GetInstance.CreateDesktopShortcut();
MenuInit();
DataInit();
+ SiemensTest.GetInstance.Init();
DeviceInquire.GetInstance.Init();//配料机设备上线监听,设备列表初始化
MainView mv = new MainView();
mv.TitleName = $"味魔方管理系统软件[简称:味魔方] V1.0.1";
@@ -173,6 +193,15 @@ namespace BPASmartClient.DosingSystem
AssemblyName = "BPASmartClient.DosingSystem",
ToggleWindowPath = "View.ConveyerBeltManualView"
});
+
+ ManualControl.Add(new SubMenumodel()
+ {
+ SubMenuName = "配料输送带控制",
+ SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.观察员, Permission.技术员 },
+ AssemblyName = "BPASmartClient.DosingSystem",
+ ToggleWindowPath = "View.TempManageControlView"
+ });
+
//ManualControl.Add(new SubMenumodel()
//{
// SubMenuName = "料仓控制",
diff --git a/DosingSystem/View/TempManageControlView.xaml b/DosingSystem/View/TempManageControlView.xaml
new file mode 100644
index 00000000..588401a2
--- /dev/null
+++ b/DosingSystem/View/TempManageControlView.xaml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DosingSystem/View/TempManageControlView.xaml.cs b/DosingSystem/View/TempManageControlView.xaml.cs
new file mode 100644
index 00000000..cd3b265a
--- /dev/null
+++ b/DosingSystem/View/TempManageControlView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace BPASmartClient.DosingSystem.View
+{
+ ///
+ /// TempManageControlView.xaml 的交互逻辑
+ ///
+ public partial class TempManageControlView : UserControl
+ {
+ public TempManageControlView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/DosingSystem/ViewModel/TempManageControlViewModel.cs b/DosingSystem/ViewModel/TempManageControlViewModel.cs
new file mode 100644
index 00000000..179e6ba3
--- /dev/null
+++ b/DosingSystem/ViewModel/TempManageControlViewModel.cs
@@ -0,0 +1,115 @@
+using BPA.Helper;
+using BPASmartClient.S7Net;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace BPASmartClient.DosingSystem.ViewModel
+{
+ public class TempManageControlViewModel : NotifyBase
+ {
+ public TempManageControlViewModel()
+ {
+
+ }
+
+ ///
+ /// 正转
+ ///
+ public bool Foreward
+ {
+ get { return _mForeward; }
+ set
+ {
+ _mForeward = value;
+ BeltDirection = 0;
+ IsRun = _mForeward;
+ OnPropertyChanged();
+ Task.Factory.StartNew(() =>
+ {
+ if (Reversal || !_mForeward)
+ {
+ SiemensTest.GetInstance.sh.Write("M1000.1", true);
+ Thread.Sleep(2000);
+ SiemensTest.GetInstance.sh.Write("M1000.1", false);
+ }
+ if (_mForeward)
+ {
+ SiemensTest.GetInstance.sh.Write("M1000.0", true);
+ Thread.Sleep(2000);
+ SiemensTest.GetInstance.sh.Write("M1000.0", false);
+ }
+ });
+ }
+ }
+ private bool _mForeward;
+
+ ///
+ /// 反转
+ ///
+ public bool Reversal
+ {
+ get { return _mReversal; }
+ set
+ {
+ _mReversal = value;
+ BeltDirection = 1;
+ IsRun = _mReversal;
+ OnPropertyChanged();
+ Task.Factory.StartNew(() =>
+ {
+ if (Foreward || !_mReversal)
+ {
+ SiemensTest.GetInstance.sh.Write("M1000.1", true);
+ Thread.Sleep(2000);
+ SiemensTest.GetInstance.sh.Write("M1000.1", false);
+ }
+ if (_mReversal)
+ {
+ SiemensTest.GetInstance.sh.Write("M1000.3", true);
+ Thread.Sleep(2000);
+ SiemensTest.GetInstance.sh.Write("M1000.3", false);
+ }
+ });
+ }
+ }
+ private bool _mReversal;
+
+ public bool IsRun { get { return _mIsRun; } set { _mIsRun = value; OnPropertyChanged(); } }
+ private bool _mIsRun;
+
+
+ public int BeltDirection { get { return _mBeltDirection; } set { _mBeltDirection = value; OnPropertyChanged(); } }
+ private int _mBeltDirection;
+
+ }
+
+ public class SiemensTest
+ {
+
+ private volatile static SiemensTest _Instance;
+ public static SiemensTest GetInstance => _Instance ?? (_Instance = new SiemensTest());
+ private SiemensTest() { }
+
+ public SiemensHelper sh { get; set; } = new SiemensHelper();
+
+ public void Init()
+ {
+ Task.Run(() =>
+ {
+ //sh.Connect(S7.Net.CpuType.S71500, "192.168.1.12");
+ sh.Connect(S7.Net.CpuType.S71200, "192.168.0.15");
+ if (sh.IsConnected)
+ MessageLog.GetInstance.Show("西门子PLC连接成功");
+ else
+ MessageLog.GetInstance.Show("西门子PLC连接失败");
+ });
+ //sh.Connect(S7.Net.CpuType.S71500, "192.168.1.12");
+ //sh.Connect(S7.Net.CpuType.S71200, "192.168.0.15");
+ }
+
+ }
+}