|
|
|
@ -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)
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// plc状态刷新
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
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
|
|
|
|
|
/// <param name="type"></param>
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|