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