You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

545 lines
18 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using SlnMesnac.Business;
using SlnMesnac.Business.@base;
using SlnMesnac.Plc;
using SlnMesnac.WPF.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace SlnMesnac.WPF.Page
{
/// <summary>
/// DevMonitorPage.xaml 的交互逻辑
/// </summary>
public partial class DevMonitorPage : UserControl
{
private BaseBusiness baseBusiness = null;
PlcAbsractFactory plc = null;
int MachineSleep = 1000;
private readonly ILogger<DevMonitorPage> _logger;
public DevMonitorPage()
{
_logger = App.ServiceProvider.GetService<ILogger<DevMonitorPage>>();
baseBusiness = App.ServiceProvider.GetService<BaseBusiness>();
MachineSleep = Convert.ToInt32(baseBusiness.GetPlcAddressByConfigKey("设备启动间隔"));
plc = baseBusiness.GetPlcByKey("plc");
InitializeComponent();
this.DataContext = new DevMonitorViewModel();
}
/// <summary>
/// 发送脉冲信号方法封装
/// </summary>
/// <param name="addressKey">plc地址对应的key</param>
private void SendPulseSignal(string addressKey)
{
int PulseSleep = Convert.ToInt32(baseBusiness.GetPlcAddressByConfigKey("脉冲间隔"));
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey($"{addressKey}"), true);
Thread.Sleep(PulseSleep);
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey($"{addressKey}"), false);
}
/// <summary>
/// 一键启动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartButton_Click(object sender, RoutedEventArgs e)
{
try
{
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机MES屏蔽")) == false)
{
MessageBox.Show("拆包机MES屏蔽未切换远程");
return;
}
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("磁选机MES屏蔽")) == false)
{
MessageBox.Show("磁选机MES屏蔽未切换远程");
return;
}
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋1MES屏蔽")) == false)
{
MessageBox.Show("螺旋1MES屏蔽未切换远程");
return;
}
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋2MES屏蔽")) == false)
{
MessageBox.Show("螺旋2MES屏蔽未切换远程");
return;
}
//StartButton.IsEnabled = false;
//StopButton.IsEnabled = true;
//StopUrgentButton.IsEnabled = true;
Task.Run(() =>
{
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机远程急停"), false);
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机远程停止"), false);
#region 按顺序依次启动设备
#region 1.拆包机
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机远程急停"), false);
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机远程停止"), false);
SendPulseSignal("拆包机远程启动");
#endregion
Thread.Sleep(MachineSleep);
#region 2.磁选机
SendPulseSignal("磁选机一键启动");
#endregion
Thread.Sleep(MachineSleep);
#region 3.螺旋
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋1启动"), true);
Thread.Sleep(MachineSleep);
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋1启动"), true);
#endregion
Thread.Sleep(MachineSleep);
#region 4.烘干机
SendPulseSignal("烘干机螺旋启动");
Thread.Sleep(MachineSleep);
SendPulseSignal("烘干机风机启动");
Thread.Sleep(MachineSleep);
SendPulseSignal("烘干机燃烧启动");
#endregion
#endregion
});
}catch(Exception ex)
{
_logger.LogError($"一键启动:{ex.Message}");
}
}
/// <summary>
/// 一键停止
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StopButton_Click(object sender, RoutedEventArgs e)
{
try
{
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机MES屏蔽")) == false)
{
MessageBox.Show("拆包机MES屏蔽未切换远程");
return;
}
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("磁选机MES屏蔽")) == false)
{
MessageBox.Show("磁选机MES屏蔽未切换远程");
return;
}
#region 依次按序停止
Task.Run(() =>
{
});
#endregion
//StopButton.IsEnabled = false;
//StopUrgentButton.IsEnabled = false;
//StartButton.IsEnabled = true;
}catch (Exception ex)
{
_logger.LogError($"一键停止:{ex.Message}");
}
}
/// <summary>
/// 急停
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StopUrgentButton_Click(object sender, RoutedEventArgs e)
{
try
{
if (StopUrgentButton.Content.ToString() == "急停")
{
//StopButton.IsEnabled = false;
//StopUrgentButton.Content = "复位";
SendPulseSignal("拆包机远程急停");
}
else if (StopUrgentButton.Content.ToString() == "复位")
{
//StopButton.IsEnabled = true;
//StopUrgentButton.Content = "急停";
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机远程急停"), false);
}
}catch(Exception ex)
{
_logger.LogError($"拆包机远程急停:{ex.Message}");
}
}
#region 拆包机
/// <summary>
/// 拆包机启动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartUnPackButton_Click(object sender, RoutedEventArgs e)
{
try
{
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机MES屏蔽")) == false)
{
MessageBox.Show("拆包机MES屏蔽未切换远程");
return;
}
Task.Run(() =>
{
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机远程急停"), false);
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机远程停止"), false);
SendPulseSignal("拆包机远程启动");
});
//StartUnPackButton.IsEnabled = false;
//StopUnPackButton.IsEnabled = true;
}catch (Exception ex)
{
_logger.LogError($"拆包机远程启动:{ex.Message}");
}
}
/// <summary>
/// 拆包机停止
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StopUnPackButton_Click(object sender, RoutedEventArgs e)
{
try
{
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机MES屏蔽")) == false)
{
MessageBox.Show("拆包机MES屏蔽未切换远程");
return;
}
Task.Run(() =>
{
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("拆包机远程启动"), false);
SendPulseSignal("拆包机远程停止");
});
//StartUnPackButton.IsEnabled = true;
//StopUnPackButton.IsEnabled = false;
}
catch (Exception ex)
{
_logger.LogError($"拆包机停止:{ex.Message}");
}
}
#endregion
#region 磁选机
/// <summary>
/// 磁选启动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartMagNetButton_Click(object sender, RoutedEventArgs e)
{
try
{
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("磁选机MES屏蔽")) == false)
{
MessageBox.Show("磁选机MES屏蔽未切换远程");
return;
}
Task.Run(() =>
{
SendPulseSignal("磁选机一键启动");
});
}catch (Exception ex)
{
_logger.LogError($"磁选启动:{ex.Message}");
}
}
/// <summary>
/// 磁选停止
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StopMagNetButton_Click(object sender, RoutedEventArgs e)
{
try
{
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("磁选机MES屏蔽")) == false)
{
MessageBox.Show("磁选机MES屏蔽未切换远程");
return;
}
Task.Run(() =>
{
// plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("磁选机一键启动"), false);
SendPulseSignal("磁选机一键停止");
});
}
catch (Exception ex)
{
_logger.LogError($"磁选停止:{ex.Message}");
}
}
#endregion
#region 螺旋机
/// <summary>
/// 螺旋1启动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartSpiral1Button_Click(object sender, RoutedEventArgs e)
{
try
{
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋1MES屏蔽")) == false)
{
MessageBox.Show("螺旋1MES屏蔽未切换远程");
return;
}
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋1启动"), true);
}
catch (Exception ex)
{
_logger.LogError($"螺旋1启动:{ex.Message}");
}
}
/// <summary>
/// 螺旋2启动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartSpiral2Button_Click(object sender, RoutedEventArgs e)
{
try
{
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋2MES屏蔽")) == false)
{
MessageBox.Show("螺旋2MES屏蔽未切换远程");
return;
}
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋2启动"), true);
}catch (Exception ex)
{
_logger.LogError($"螺旋2启动:{ex.Message}");
}
}
/// <summary>
/// 螺旋1停止
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StopSpiral1Button_Click(object sender, RoutedEventArgs e)
{
try
{
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋1MES屏蔽")) == false)
{
MessageBox.Show("螺旋1MES屏蔽未切换远程");
return;
}
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋1启动"), false);
}
catch (Exception ex)
{
_logger.LogError($"螺旋1停止:{ex.Message}");
}
}
/// <summary>
/// 螺旋2停止
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StopSpiral2Button_Click(object sender, RoutedEventArgs e)
{
try
{
if (plc.readBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋2MES屏蔽")) == false)
{
MessageBox.Show("螺旋2MES屏蔽未切换远程");
return;
}
plc.writeBoolByAddress(baseBusiness.GetPlcAddressByConfigKey("螺旋2启动"), false);
}
catch (Exception ex)
{
_logger.LogError($"螺旋2停止:{ex.Message}");
}
}
#endregion
/// <summary>
/// 启动烘干机螺旋1
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartDryerSpiralButton_Click(object sender, RoutedEventArgs e)
{
try
{
Task.Run(() =>
{
SendPulseSignal("烘干机螺旋启动");
});
}
catch (Exception ex)
{
_logger.LogError($"烘干机螺旋启动异常:{ex.Message}");
}
}
/// <summary>
/// 启动烘干机风机2
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartDryerFanButton_Click(object sender, RoutedEventArgs e)
{
try
{
Task.Run(() =>
{
SendPulseSignal("烘干机风机启动");
});
}
catch (Exception ex)
{
_logger.LogError($"烘干机风机启动:{ex.Message}");
}
}
/// <summary>
/// 启动烘干机燃烧3
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StartDryerHotButton_Click(object sender, RoutedEventArgs e)
{
try
{
Task.Run(() =>
{
SendPulseSignal("烘干机燃烧启动");
});
}
catch (Exception ex)
{
_logger.LogError($"烘干机燃烧启动:{ex.Message}");
}
}
/// <summary>
/// 停止烘干机螺旋
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StopDryerSpiralButton_Click(object sender, RoutedEventArgs e)
{
try
{
Task.Run(() =>
{
SendPulseSignal("烘干机螺旋停止");
});
}
catch (Exception ex)
{
_logger.LogError($"烘干机螺旋停止:{ex.Message}");
}
}
/// <summary>
/// 停止烘干机燃烧
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StopDryerHotButton_Click(object sender, RoutedEventArgs e)
{
try
{
Task.Run(() =>
{
SendPulseSignal("烘干机燃烧停止");
});
}
catch (Exception ex)
{
_logger.LogError($"烘干机燃烧停止:{ex.Message}");
}
}
/// <summary>
/// 停止烘干机风机
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void StopDryerFanButton_Click(object sender, RoutedEventArgs e)
{
try
{
Task.Run(() =>
{
SendPulseSignal("烘干机风机停止");
});
}
catch (Exception ex)
{
_logger.LogError($"烘干机风机停止:{ex.Message}");
}
}
}
}