From 223f7df1b3accc607daefb6c138ec595872b5116 Mon Sep 17 00:00:00 2001 From: liuwf Date: Tue, 14 Nov 2023 14:47:56 +0800 Subject: [PATCH] =?UTF-8?q?change=20-=20=E6=9D=A1=E7=A0=81=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=EF=BC=8C=E6=88=90=E5=93=81=E4=B8=8B=E7=BA=BFplc?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=8A=B6=E6=80=81=E5=AE=9E=E6=97=B6=E5=88=B7?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/MainWindowViewModel.cs | 67 ++++++++++--- Aucma.Core.CodeBinding/Views/MainWindow.xaml | 4 +- .../ViewModels/MainWindowViewModel.cs | 97 ++++++++----------- 3 files changed, 101 insertions(+), 67 deletions(-) diff --git a/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs index e17bf943..75a4acb0 100644 --- a/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs @@ -8,6 +8,8 @@ using System.Diagnostics; using System.Threading; using NPOI.HSSF.Record; using System.Threading.Tasks; +using Aucma.Core.PLc; +using System.Linq; namespace Aucma.Core.CodeBinding.ViewModels { @@ -28,8 +30,47 @@ namespace Aucma.Core.CodeBinding.ViewModels public MainWindowViewModel() { UserContent = firstPage; + PlcState(false); + init(); } + public void init() + { + // plc状态刷新定时器 + System.Timers.Timer timer = new System.Timers.Timer(1000 * 5); + timer.Elapsed += new System.Timers.ElapsedEventHandler(RefreshPlcStatus); + timer.AutoReset = true; + timer.Enabled = true; + timer.Start(); + } + + /// + /// plc状态刷新 + /// + /// + /// + public void RefreshPlcStatus(object sender, System.Timers.ElapsedEventArgs e) + { + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("条码绑定Plc")); + if (obj != null) + { + if (obj.plc.IsConnected) + { + PlcState(true); + } + else + { + PlcState(false); + } + } + else + { + PlcState(false); + } + + } + + #region 更换界面 public System.Windows.Controls.UserControl _content; @@ -176,18 +217,22 @@ namespace Aucma.Core.CodeBinding.ViewModels /// public void PlcState(bool type) { - if (type) - { - PlcUIStatusWb = "PLC连接成功"; - PlcUIColor = "White"; - PlcUIIcon = "Assets/Images/正常.png"; - } - else + Application.Current.Dispatcher.Invoke(() => { - PlcUIStatusWb = "PLC状态异常"; - PlcUIColor = "Red"; - PlcUIIcon = "Assets/Images/失败-01.png"; - } + if (type) + { + PlcUIStatusWb = "PLC连接成功"; + PlcUIColor = "Greed"; + PlcUIIcon = "Assets/Images/Green.png"; + } + else + { + PlcUIStatusWb = "PLC状态异常"; + PlcUIColor = "Red"; + PlcUIIcon = "Assets/Images/Red.png"; + } + }); + } #endregion diff --git a/Aucma.Core.CodeBinding/Views/MainWindow.xaml b/Aucma.Core.CodeBinding/Views/MainWindow.xaml index 4f7899ac..1a8da6ff 100644 --- a/Aucma.Core.CodeBinding/Views/MainWindow.xaml +++ b/Aucma.Core.CodeBinding/Views/MainWindow.xaml @@ -71,10 +71,10 @@ - + - + diff --git a/Aucma.Core.ProductOffLine/ViewModels/MainWindowViewModel.cs b/Aucma.Core.ProductOffLine/ViewModels/MainWindowViewModel.cs index 6fb3dff5..7a14de12 100644 --- a/Aucma.Core.ProductOffLine/ViewModels/MainWindowViewModel.cs +++ b/Aucma.Core.ProductOffLine/ViewModels/MainWindowViewModel.cs @@ -10,6 +10,7 @@ using NPOI.HSSF.Record; using Aucma.Core.PLc; using System.Linq; using System.Threading.Tasks; +using System.Windows.Threading; namespace Aucma.Core.ProductOffLine.ViewModels { @@ -25,52 +26,31 @@ namespace Aucma.Core.ProductOffLine.ViewModels public MainWindowViewModel() { UserContent = firstPage; - PlcState(true); - // test(); + PlcState(false); + init(); } - public async void test() + public void init() { - Task.Run(() => - { - //Thread.Sleep(4000); - //PlcState(false); - Thread.Sleep(10000); - var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("成品下线Plc")); - if (obj != null) - { - obj.plc.Read("M100"); - if (obj.plc.IsConnected) - { - PlcState(true); - } - else - { - PlcState(false); - } - } - else - { - PlcState(false); - } - - Thread.Sleep(5000); - var obj1 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("成品下线Plc")); - obj.plc.Read("M100"); - if (obj1.plc.IsConnected) - { - PlcState(true); - } - else - { - PlcState(false); - } - + // plc状态刷新定时器 + System.Timers.Timer timer = new System.Timers.Timer(1000 * 5); + timer.Elapsed += new System.Timers.ElapsedEventHandler(RefreshPlcStatus); + timer.AutoReset = true; + timer.Enabled = true; + timer.Start(); + } - Thread.Sleep(5000); - var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("成品下线Plc")); - obj.plc.Read("M100"); - if (obj2.plc.IsConnected) + /// + /// plc状态刷新 + /// + /// + /// + public void RefreshPlcStatus(object sender, System.Timers.ElapsedEventArgs e) + { + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("成品下线Plc")); + if (obj != null) + { + if (obj.plc.IsConnected) { PlcState(true); } @@ -78,7 +58,12 @@ namespace Aucma.Core.ProductOffLine.ViewModels { PlcState(false); } - }); + } + else + { + PlcState(false); + } + } #region 更换界面 @@ -225,18 +210,22 @@ namespace Aucma.Core.ProductOffLine.ViewModels /// public void PlcState(bool type) { - if (type) - { - PlcUIStatusWb = "PLC连接成功"; - PlcUIColor = "Greed"; - PlcUIIcon = "Assets/Images/Green.png"; - } - else + Application.Current.Dispatcher.Invoke(() => { - PlcUIStatusWb = "PLC状态异常"; - PlcUIColor = "Red"; - PlcUIIcon = "Assets/Images/Red.png"; - } + if (type) + { + PlcUIStatusWb = "PLC连接成功"; + PlcUIColor = "Greed"; + PlcUIIcon = "Assets/Images/Green.png"; + } + else + { + PlcUIStatusWb = "PLC状态异常"; + PlcUIColor = "Red"; + PlcUIIcon = "Assets/Images/Red.png"; + } + }); + } #endregion