change - 条码绑定,成品下线plc页面状态实时刷新

dev
liuwf 1 year ago
parent 07d2488ea4
commit 223f7df1b3

@ -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();
}
/// <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);
}
else
{
PlcState(false);
}
}
else
{
PlcState(false);
}
}
#region 更换界面
public System.Windows.Controls.UserControl _content;
@ -176,18 +217,22 @@ namespace Aucma.Core.CodeBinding.ViewModels
/// <param name="type"></param>
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

@ -71,10 +71,10 @@
<StackPanel Grid.Row="2" Height="50" Orientation="Horizontal" HorizontalAlignment="Right">
<Border Width="30" Height="30" CornerRadius="15">
<Border.Background>
<ImageBrush x:Name="PlcStatus" ImageSource="/Assets/Images/Green.png"/>
<ImageBrush x:Name="PlcStatus" ImageSource="{Binding PlcUIIcon}"/>
</Border.Background>
</Border>
<TextBlock x:Name="PLCState" Text="PLC连接成功" VerticalAlignment="Center" Foreground="Green" FontSize="15" Margin="10,0"/>
<TextBlock x:Name="PLCState" Text="{Binding PlcUIStatusWb}" VerticalAlignment="Center" Foreground="{Binding PlcUIColor}" FontSize="15" Margin="10,0"/>
<Border Width="30" Height="30" CornerRadius="15">
<Border.Background>
<ImageBrush x:Name="PlcStatusImage" ImageSource="/Assets/Images/Green.png"/>

@ -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

Loading…
Cancel
Save