change - 钣金plc状态显示

dev
liuwf 1 year ago
parent c162566b27
commit 0bb356e1b8

@ -23,7 +23,7 @@ namespace Aucma.Core.BoxFoam.ViewModels
private FoamPlanPageView foamPlanPageView = new FoamPlanPageView(); private FoamPlanPageView foamPlanPageView = new FoamPlanPageView();
FoamMonitorPageView foamMonitorPageView = new FoamMonitorPageView(); FoamMonitorPageView foamMonitorPageView = new FoamMonitorPageView();
FoamMachinesPageView foamMachinesPageView = new FoamMachinesPageView(); FoamMachinesPageView foamMachinesPageView = new FoamMachinesPageView();
public MainWindowViewModel() public MainWindowViewModel()
{ {
UserContent = firstPage; UserContent = firstPage;

@ -195,14 +195,13 @@ namespace Aucma.Core.CodeBinding.ViewModels
/// </summary> /// </summary>
public static void OpenOsk() public static void OpenOsk()
{ {
Process proc = new Process(); Process proc = new Process();
proc.StartInfo.FileName = @"C:\Windows\System32\osk.exe"; proc.StartInfo.FileName = @"C:\Windows\System32\osk.exe";
proc.StartInfo.UseShellExecute = true; proc.StartInfo.UseShellExecute = true;
proc.StartInfo.Verb = "runas"; proc.StartInfo.Verb = "runas";
proc.Start(); proc.Start();
} }
#endregion #endregion
#region 界面切换 #region 界面切换
/// <summary> /// <summary>
/// 界面切换 /// 界面切换

@ -10,6 +10,9 @@ using System.Windows.Interop;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using Admin.Core.Common; using Admin.Core.Common;
using System.IO; using System.IO;
using Aucma.Core.PLc;
using Aucma.Core.Scanner;
using System.Linq;
namespace Aucma.Core.SheetMetal.ViewModels namespace Aucma.Core.SheetMetal.ViewModels
{ {
@ -19,12 +22,91 @@ namespace Aucma.Core.SheetMetal.ViewModels
private IndexPageView firstPage = new IndexPageView();//首页 private IndexPageView firstPage = new IndexPageView();//首页
private LogPageView logPage = new LogPageView();//日志 private LogPageView logPage = new LogPageView();//日志
private StatisticsPageView statisticsPage = new StatisticsPageView();//统计 private StatisticsPageView statisticsPage = new StatisticsPageView();//统计
public MainWindowViewModel() public MainWindowViewModel()
{ {
UserContent = firstPage; UserContent = firstPage;
init();
} }
public void init()
{
// 设备状态刷新定时器
System.Timers.Timer timer = new System.Timers.Timer(1000 * 5);
timer.Elapsed += new System.Timers.ElapsedEventHandler(RefreshStatus);
timer.AutoReset = true;
timer.Enabled = true;
timer.Start();
}
#region 设备状态刷新
/// <summary>
/// 设备状态刷新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void RefreshStatus(object sender, System.Timers.ElapsedEventArgs e)
{
RefreshMesDb();
RefreshPlc();
}
/// <summary>
/// 数据库状态刷新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void RefreshMesDb()
{
MesDbState(true);
}
/// <summary>
/// plc状态刷新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void RefreshPlc()
{
// 后板plc
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);
}
// u壳plc
var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("U壳PLC"));
if (obj2 != null)
{
if (obj2.plc.IsConnected)
{
Plc2State(true);
}
else
{
Plc2State(false);
}
}
else
{
Plc2State(false);
}
}
#endregion
#region 更换界面 #region 更换界面
public System.Windows.Controls.UserControl _content; public System.Windows.Controls.UserControl _content;
@ -130,19 +212,69 @@ namespace Aucma.Core.SheetMetal.ViewModels
break; break;
} }
} }
#endregion #endregion
#region MES数据库状态
/// <summary>
/// MES数据库-文字
/// </summary>
public string _mesDbUIStatusWb;
public string MesDbUIStatusWb
{
get => _mesDbUIStatusWb;
set => SetProperty(ref _mesDbUIStatusWb, value);
}
/// <summary>
/// MES数据库-颜色
/// </summary>
public string _mesDbUIColor;
public string MesDbUIColor
{
get => _mesDbUIColor;
set => SetProperty(ref _mesDbUIColor, value);
}
/// <summary>
/// MES数据库-图标
/// </summary>
public string _mesUIIcon;
public string MesUIIcon
{
get => _mesUIIcon;
set => SetProperty(ref _mesUIIcon, value);
}
#region plc 状态 /// <summary>
/// MES数据库连接状态
/// </summary>
/// <param name="type"></param>
public void MesDbState(bool type)
{
Application.Current.Dispatcher.Invoke(() =>
{
if (type)
{
MesDbUIStatusWb = "MES数据库连接成功";
MesDbUIColor = "Green";
MesUIIcon = "Assets/Images/Green.png";
}
else
{
MesDbUIStatusWb = "MES数据库异常";
MesDbUIColor = "Red";
MesUIIcon = "Assets/Images/Red.png";
}
});
}
#endregion
#region 后板plc 状态
/// <summary> /// <summary>
/// UI plc 展示状态-文字 /// UI plc 展示状态-文字
/// </summary> /// </summary>
public string _plcUIStatus; public string _plcUIStatusWb;
public string PlcUIStatusWb public string PlcUIStatusWb
{ {
//get { return plcUIStatusWb; } get => _plcUIStatusWb;
//set { plcUIStatusWb = value; RaisePropertyChanged("PlcUIStatusWb"); } set => SetProperty(ref _plcUIStatusWb, value);
get => _plcUIStatus;
set => SetProperty(ref _plcUIStatus, value);
} }
/// <summary> /// <summary>
/// UI plc 展示状态-颜色 /// UI plc 展示状态-颜色
@ -150,8 +282,6 @@ namespace Aucma.Core.SheetMetal.ViewModels
public string _plcUIColor; public string _plcUIColor;
public string PlcUIColor public string PlcUIColor
{ {
//get { return plcUIColor; }
//set { plcUIColor = value; RaisePropertyChanged("PlcUIColor"); }
get => _plcUIColor; get => _plcUIColor;
set => SetProperty(ref _plcUIColor, value); set => SetProperty(ref _plcUIColor, value);
} }
@ -161,30 +291,85 @@ namespace Aucma.Core.SheetMetal.ViewModels
public string _plcUIIcon; public string _plcUIIcon;
public string PlcUIIcon public string PlcUIIcon
{ {
//get { return plcUIIcon; }
//set { plcUIIcon = value; RaisePropertyChanged("plcUIIcon"); }
get => _plcUIIcon; get => _plcUIIcon;
set => SetProperty(ref _plcUIIcon, value); set => SetProperty(ref _plcUIIcon, value);
} }
/// <summary> /// <summary>
/// PLC连接状态-true:连接成功false:失败 /// 后板PLC连接状态-true:连接成功false:失败
/// </summary> /// </summary>
/// <param name="type"></param> /// <param name="type"></param>
public void PlcState(bool type) public void PlcState(bool type)
{ {
if (type) Application.Current.Dispatcher.Invoke(() =>
{ {
PlcUIStatusWb = "PLC连接成功"; if (type)
PlcUIColor = "White"; {
PlcUIIcon = "Assets/Images/正常.png"; PlcUIStatusWb = "后板PLC连接成功";
} PlcUIColor = "Green";
else PlcUIIcon = "Assets/Images/Green.png";
}
else
{
PlcUIStatusWb = "后板PLC状态异常";
PlcUIColor = "Red";
PlcUIIcon = "Assets/Images/Red.png";
}
});
}
#endregion
#region U壳PLC状态
/// <summary>
/// UI plc 展示状态-文字
/// </summary>
public string _plc2UIStatusWb;
public string Plc2UIStatusWb
{
get => _plc2UIStatusWb;
set => SetProperty(ref _plc2UIStatusWb, value);
}
/// <summary>
/// UI plc 展示状态-颜色
/// </summary>
public string _plc2UIColor;
public string Plc2UIColor
{
get => _plc2UIColor;
set => SetProperty(ref _plc2UIColor, value);
}
/// <summary>
/// UI plc 展示状态-图标
/// </summary>
public string _plc2UIIcon;
public string Plc2UIIcon
{
get => _plc2UIIcon;
set => SetProperty(ref _plc2UIIcon, value);
}
/// <summary>
/// PLC连接状态-true:连接成功false:失败
/// </summary>
/// <param name="type"></param>
public void Plc2State(bool type)
{
Application.Current.Dispatcher.Invoke(() =>
{ {
PlcUIStatusWb = "PLC状态异常"; if (type)
PlcUIColor = "Red"; {
PlcUIIcon = "Assets/Images/失败-01.png"; Plc2UIStatusWb = "U壳PLC连接成功";
} Plc2UIColor = "Green";
Plc2UIIcon = "Assets/Images/Green.png";
}
else
{
Plc2UIStatusWb = "U壳PLC状态异常";
Plc2UIColor = "Red";
Plc2UIIcon = "Assets/Images/Red.png";
}
});
} }
#endregion #endregion
} }

@ -60,10 +60,7 @@
<DockPanel Grid.Row="2" Margin="5 0 0 3"> <DockPanel Grid.Row="2" Margin="5 0 0 3">
<Border BorderBrush="#0288d1" BorderThickness="1" CornerRadius="5" HorizontalAlignment="Stretch" VerticalAlignment="Bottom"> <Border BorderBrush="#0288d1" BorderThickness="1" CornerRadius="5" HorizontalAlignment="Stretch" VerticalAlignment="Bottom">
<Grid> <Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="1" Height="60" Orientation="Horizontal" Margin="5 0" HorizontalAlignment="Left"> <StackPanel Grid.Row="1" Height="60" Orientation="Horizontal" Margin="5 0" HorizontalAlignment="Left">
<Button Content="生产计划" x:Name="FirstPage" FontSize="20" Height="40" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=FirstPage}" /> <Button Content="生产计划" x:Name="FirstPage" FontSize="20" Height="40" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=FirstPage}" />
<Button Content="设备监控" x:Name="LogPage" FontSize="20" Height="40" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=LogPage}" /> <Button Content="设备监控" x:Name="LogPage" FontSize="20" Height="40" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=LogPage}" />
@ -72,25 +69,25 @@
<Button Content="最小化" x:Name="Minimized" FontSize="20" Height="40" Margin="5 0" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Minimized}" Background="#FF9900" BorderBrush="#FF9900" /> <Button Content="最小化" x:Name="Minimized" FontSize="20" Height="40" Margin="5 0" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Minimized}" Background="#FF9900" BorderBrush="#FF9900" />
<Button Content="退 出" x:Name="Exit" FontSize="20" Height="40" Margin="5 0" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Exit}" Background="#df4642" BorderBrush="#df4642" /> <Button Content="退 出" x:Name="Exit" FontSize="20" Height="40" Margin="5 0" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Exit}" Background="#df4642" BorderBrush="#df4642" />
</StackPanel> </StackPanel>
<StackPanel Grid.Row="2" Height="50" Margin="5 0" Orientation="Horizontal" HorizontalAlignment="Right"> <StackPanel Height="50" Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock x:Name="BeforPLcState" Text="箱壳PLC" VerticalAlignment="Center" Foreground="white" FontSize="20" Margin="10,0"/>
<Border Width="30" Height="30" CornerRadius="15"> <Border Width="30" Height="30" CornerRadius="15">
<Border.Background> <Border.Background>
<ImageBrush x:Name="BeforPLcStateColor" ImageSource="/Assets/Images/Green.png"/> <ImageBrush x:Name="MesDbStatus" ImageSource="{Binding MesUIIcon}"/>
</Border.Background> </Border.Background>
</Border> </Border>
<TextBlock x:Name="AfterPlcState" Text="后板PLC" VerticalAlignment="Center" Foreground="white" FontSize="20" Margin="10,0"/> <TextBlock x:Name="MesDbStateTxt" Text="{Binding MesDbUIStatusWb}" VerticalAlignment="Center" Foreground="{Binding MesDbUIColor}" FontSize="15" Margin="10,0"/>
<Border Width="30" Height="30" CornerRadius="15"> <Border Width="30" Height="30" CornerRadius="15">
<Border.Background> <Border.Background>
<ImageBrush x:Name="AfterPlcStateColor" ImageSource="/Assets/Images/Green.png"/> <ImageBrush x:Name="PlcStatus" ImageSource="{Binding PlcUIIcon}"/>
</Border.Background> </Border.Background>
</Border> </Border>
<TextBlock x:Name="DB" Text="数据库" VerticalAlignment="Center" Foreground="white" FontSize="20" 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 Width="30" Height="30" CornerRadius="15">
<Border.Background> <Border.Background>
<ImageBrush x:Name="PlcStatusImage" ImageSource="/Assets/Images/Green.png"/> <ImageBrush x:Name="Plc2Status" ImageSource="{Binding Plc2UIIcon}"/>
</Border.Background> </Border.Background>
</Border> </Border>
<TextBlock x:Name="PLC2State" Text="{Binding Plc2UIStatusWb}" VerticalAlignment="Center" Foreground="{Binding Plc2UIColor}" FontSize="15" Margin="10,0"/>
</StackPanel> </StackPanel>
</Grid> </Grid>
</Border> </Border>

Loading…
Cancel
Save