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