using CCDCount.DLL;
using CCDCount.DLL.AlarmTools;
using CCDCount.DLL.Tools;
using CCDCount.MODEL.CameraClass;
using CCDCount.MODEL.ConfigModel;
using CCDCount.MODEL.PlcModel;
using CCDCountWpf.Language;
using LogClass;
using MvCameraControl;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media.Imaging;
namespace CCDCountWpf
{
///
/// MainWindow.xaml 的交互逻辑
///
public partial class MainWindow : Window
{
#region 变量与实例
Uri ShowUri = null;
bool IsShow = false;
SystemMonitor monitor = new SystemMonitor();
Stopwatch SystemRunTime = new Stopwatch();
ConfigManager configManager = ConfigManager.Instance;
long InitRunTime;
#endregion
#region 窗体事件
///
/// 主窗体构造函数
///
public MainWindow()
{
Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
LOG.log("程序正在加载主界面", 6);
InitializeComponent();
//LOG.log("正在开启系统运行时间程序", 6);
//StartSystemRunTime();
SetupFullScreen();
LOG.log("绑定界面数据中", 6);
DataContext = ShowMessageBus.ShowBinding;
LOG.log("加载配置参数中", 6);
configManager.LoadConfigs();
LOG.log("初始化引用库", 6);
SDKSystem.Initialize();
LOG.log("初始化相机中", 6);
InitCameraIdentify();
LOG.log("启动界面更新线程中", 6);
StartUpdataShowDataThread();
LOG.log("相机列表显示", 6);
InitCamComboboxValue();
LOG.log("初始化PLC参数管理功能", 6);
InitPlcManger();
LOG.log("更新数据界面参数展示", 6);
UpdatePlcPara();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
LOG.log("开启生产界面",6);
MainPageBtn_Click(null, null);
LOG.log("生产界面开启完成", 6);
}
///
/// 退出按钮点击事件
///
///
///
private void ExitBtn_Click(object sender, RoutedEventArgs e)
{
if (MessageBox.Show("Do you want to exit the program?", "Exit confirmation", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
this.Close();
}
else
{
return;
}
}
///
/// 主界面按钮点击事件
///
///
///
private void MainPageBtn_Click(object sender, RoutedEventArgs e)
{
ShowUri = new Uri("WpfPage\\MainPage.xaml", UriKind.Relative);
ShowFrame.Navigate(ShowUri);
}
private void SettingBtn_Click(object sender, RoutedEventArgs e)
{
ShowUri = new Uri("WpfPage\\SettingPage.xaml", UriKind.Relative);
ShowFrame.Navigate(ShowUri);
}
private void ErrorMessageShowBtn_Click(object sender, RoutedEventArgs e)
{
ShowUri = new Uri("WpfPage\\MessagePage.xaml", UriKind.Relative);
ShowFrame.Navigate(ShowUri);
}
private void PlcSettingBtn_Click(object sender, RoutedEventArgs e)
{
if(PlcSettingMessageBus.pLCManagement.IsConnect)
{
ShowUri = new Uri("WpfPage\\PlcSettingPage.xaml", UriKind.Relative);
ShowFrame.Navigate(ShowUri);
}
else
{
var MessageResult = MessageBox.Show("尚未连接PLC,是否重连","重连确认",MessageBoxButton.YesNo);
if(MessageResult == MessageBoxResult.Yes)
{
InitPlcManger();
if (PlcSettingMessageBus.pLCManagement.IsConnect)
{
UpdatePlcPara();
ShowUri = new Uri("WpfPage\\PlcSettingPage.xaml", UriKind.Relative);
ShowFrame.Navigate(ShowUri);
}
else
{
MessageBox.Show("连接PLC失败,请检查PLC状态");
}
}
}
}
private void HistoryDataBtn_Click(object sender, RoutedEventArgs e)
{
ShowUri = new Uri("WpfPage\\HistoryDataPage.xaml", UriKind.Relative);
ShowFrame.Navigate(ShowUri);
}
private void UserMessageBtn_Click(object sender, RoutedEventArgs e)
{
if (MessageBus.NowLoginUserMessage != null)
{
if (!MessageBus.NowLoginUserMessage.IsAdmin)
{
MessageBox.Show("权限不足");
}
else
{
ShowUri = new Uri("WpfPage\\UserManagementPage.xaml", UriKind.Relative);
ShowFrame.Navigate(ShowUri);
}
}
else
{
MessageBox.Show("请先登录");
}
}
///
/// 窗体关闭事件
///
///
///
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
StopSystemRunTime();
configManager.SaveConfigs();
SDKSystem.Finalize();
if (MessageBus.NowSettingLoadMainThread != null)
{
MessageBus.NowSettingLoadMainThread.DisposeCamera();
}
StopUpdataShowDataThread();
Environment.Exit(0);
}
private void MenuBtn_Click(object sender, RoutedEventArgs e)
{
HeardPanel.Visibility = HeardPanel.Visibility == Visibility.Visible ? Visibility.Hidden : Visibility.Visible;
}
private void KeyBoardBtn_Click(object sender, RoutedEventArgs e)
{
OnScreenKeyboard.KeyBoardShow();
}
private void PlcOperationBtn_Click(object sender, RoutedEventArgs e)
{
if (PlcSettingMessageBus.pLCManagement.IsConnect)
{
ShowUri = new Uri("WpfPage\\PlcOperationPage.xaml", UriKind.Relative);
ShowFrame.Navigate(ShowUri);
}
else
{
var MessageResult = MessageBox.Show("尚未连接PLC,是否重连", "重连确认", MessageBoxButton.YesNo);
if (MessageResult == MessageBoxResult.Yes)
{
InitPlcManger();
if (PlcSettingMessageBus.pLCManagement.IsConnect)
{
UpdatePlcPara();
ShowUri = new Uri("WpfPage\\PlcOperationPage.xaml", UriKind.Relative);
ShowFrame.Navigate(ShowUri);
}
else
{
MessageBox.Show("连接PLC失败,请检查PLC状态");
}
}
}
}
private void AuditTrailShowBtn_Click(object sender, RoutedEventArgs e)
{
ShowUri = new Uri("WpfPage\\AuditTrailPage.xaml", UriKind.Relative);
ShowFrame.Navigate(ShowUri);
}
private void SwitchLanguageBtn_Click(object sender, RoutedEventArgs e)
{
MessageBus.LanguageIndex++;
LanguageManager.ChangeLanguage(LanguageManager.LanguageList[MessageBus.LanguageIndex % LanguageManager.LanguageList.Count]);
}
#endregion
#region 私有方法
private void InitCameraIdentify()
{
LOG.log("判断ConFig数量", 6);
if(configManager.SaveConfigModel == null)
{
MessageBox.Show("Camera has not been added yet. Please proceed to the configuration page to set up the camera");
//return;
}
LOG.log("判断当前主线程是否运行", 6);
if (MessageBus.NowSettingLoadMainThread != null)
{
MessageBus.NowSettingLoadMainThread.StopMianThread();
}
LOG.log("重新加载MainThread", 6);
MessageBus.NowSettingLoadMainThread = (new MainThreadClass(configManager.SaveConfigModel.ShuLiConfigClass, configManager.SaveConfigModel.CameraConfig));
MessageBus.NowSettingLoadMainThread.FormulationName = configManager.SaveConfigModel.ConfigName;
MessageBus.NowSettingLoadMainThread.IsLoadFormulation = configManager.SaveConfigModel.IsFormulation;
MessageBus.NowSettingLoadMainThread.ConnectModbus("127.0.0.1");
LOG.log("尝试通讯连接", 6);
//MessageBus.NowSettingLoadMainThread.ConnectModbus("192.168.0.88");
LOG.log("加载相机", 6);
MessageBus.NowSettingLoadMainThread.LoadCamera();
}
///
/// 启动更新显示数据线程
///
private void StartUpdataShowDataThread()
{
IsShow = true;
BitmapImage ThumbnailImage1 = null;
const int targetMsPerFrame = 100; // 20FPS=50ms
Stopwatch renderSW = new Stopwatch();
Stopwatch HeartSW = new Stopwatch();
Task.Run(async () =>
{
while (IsShow)
{
renderSW.Restart();
await Task.Run(() =>
{
UpdataShuLiShowData();
UpdateMonitorMessage();
UpdateFaultLogMessage();
UpdateFaultErrorMessage();
});
await Application.Current.Dispatcher.InvokeAsync(() =>
{
if (MessageBus.NowSettingLoadMainThread == null)
{
LOG.log(string.Format("{0}:当前未加载识别流程", "IdentifyCameraForm-StartShowImageThread"));
Thread.Sleep(100);
return;
}
else
{
//MessageBus.NowSettingLoadMainThread.GetShowImage(1000, out Bitmap image1);
MessageBus.NowSettingLoadMainThread.GetShowImage(1000, configManager.SaveConfigModel.CameraConfig.Width, out Bitmap image1);
if (image1 == null)
{
//LOG.log(string.Format("{0}:相机一获取图片为空", "IdentifyCameraForm-StartShowImageThread"));
return;
}
ThumbnailImage1 = ConvertToBitmapImage(image1);
ShowMessageBus.ShowBinding.BitmapImage = ThumbnailImage1;
}
if (MessageBus.NowSettingLoadMainThread != null)
{
if (MessageBus.NowSettingLoadMainThread.IsDebug)
{
Bitmap Splicebitmap = MessageBus.NowSettingLoadMainThread.GetCamImageOnce();
if (Splicebitmap != null)
{
ShowMessageBus.ShowBinding.DebugImage = ConvertToBitmapImage(Splicebitmap);
}
}
else
{
if (ThumbnailImage1 != null)
{
ShowMessageBus.ShowBinding.DebugImage = ThumbnailImage1;
}
}
}
});
//进行精准20帧控制
int elapsed = (int)renderSW.ElapsedMilliseconds;
//Console.WriteLine(elapsed);
if (elapsed < targetMsPerFrame)
{
//Console.WriteLine($"主显示线程休眠,休眠时间:{targetMsPerFrame - elapsed}");
Thread.Sleep(targetMsPerFrame - elapsed);
}
//Thread.Sleep(50);
}
});
Task.Run(async () =>
{
while (true)
{
HeartSW.Restart();
if (PlcSettingMessageBus.pLCManagement!=null)
{
if(!PlcSettingMessageBus.pLCManagement.HeartMessage())
{
SystemAlarm.AlarmAlert(AlarmMessageList.心跳异常,
"Heart Error",
"心跳异常",
"MainWindows-StartUpdataShowDataThread");
SystemAlarm.AlarmAlert(AlarmMessageList.PLC通讯连接失败,
"PLC communication connection failed",
"PLC通讯连接失败",
"MainWindows-StartUpdataShowDataThread");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.心跳异常);
SystemAlarm.AlarmCancel(AlarmMessageList.PLC通讯连接失败);
}
}
UpdatePlcAlarmMessage();
HeartSW.Stop();
int elapsed = (int)HeartSW.ElapsedMilliseconds;
if (elapsed < targetMsPerFrame)
{
await Task.Delay(500 - elapsed);
}
}
});
}
///
/// 停止更新显示数据线程
///
private void StopUpdataShowDataThread()
{
IsShow = false;
}
///
/// 更新数粒显示数据
///
private void UpdataShuLiShowData()
{
if (MessageBus.NowSettingLoadMainThread == null) return;
if (MessageBus.NowSettingLoadMainThread.ShuLiState)
{
Application.Current.Dispatcher.Invoke(() =>
{
ShowMessageBus.ShowBinding.CameraStaticColor = MessageBus.NowSettingLoadMainThread.CameraRunStatic == true
? System.Windows.Media.Brushes.Green : System.Windows.Media.Brushes.Red;
ShowMessageBus.ShowBinding.CamRunStatic = MessageBus.NowSettingLoadMainThread.CameraRunStatic == true
? "Run" : "Stop";
});
}
else
{
Application.Current.Dispatcher.Invoke(() =>
{
ShowMessageBus.ShowBinding.CameraStaticColor = System.Windows.Media.Brushes.Yellow;
ShowMessageBus.ShowBinding.CamRunStatic = "Vision obstruction";
});
}
ShowMessageBus.ShowBinding.AllActiveNum = MessageBus.NowSettingLoadMainThread.HistoryActiveNum.ToString();
ShowMessageBus.ShowBinding.AllOkNum = MessageBus.NowSettingLoadMainThread.OkHistoryNum.ToString();
ShowMessageBus.ShowBinding.AllNgNum = MessageBus.NowSettingLoadMainThread.NgHistoryNum.ToString();
ShowMessageBus.ShowBinding.ShuLiSpeed = MessageBus.NowSettingLoadMainThread.GetOneSecondActiveNum().ToString();
PlcSettingMessageBus.pLCManagement.ReadBottingCount(out ushort BottingCount);
ShowMessageBus.ShowBinding.BottingCountSpeed = PlcSettingMessageBus.pLCManagement.BottingSpeed.ToString();
ShowMessageBus.ShowBinding.BottingCount = BottingCount;
}
///
/// 更新监控信息
///
private void UpdateMonitorMessage()
{
ShowMessageBus.ShowBinding.RamMonitor = monitor.GetAvailableMemory() > 1024 ? $"可用内存: {monitor.GetAvailableMemory() / 1024:0.00}GB" : $"可用内存: {monitor.GetAvailableMemory()}MB";
ShowMessageBus.ShowBinding.CPUMonitor = $"CPU: {monitor.GetCpuUsage():0.00}%";
}
///
/// 更新故障日志信息
///
private void UpdateFaultLogMessage()
{
ShowMessageBus.ShowBinding.ErrMessageShowList = FaultLog.GetAllErrMessage().OrderByDescending(o=>o.DateTime).Take(1000).ToList();
}
private void UpdateFaultErrorMessage()
{
SystemAlarm.AllVisionAlarmCancel(30000);
ShowMessageBus.ShowBinding.AlarmMessShowList = SystemAlarm.GetAlarm();
}
private void UpdatePlcAlarmMessage()
{
if(PlcSettingMessageBus.pLCManagement==null) return;
PlcAlarmModelClass alarm = PlcSettingMessageBus.pLCManagement.ReadAllAlarm();
if (alarm != null)
{
if (alarm.PressSwitch)
{
SystemAlarm.AlarmAlert(AlarmMessageList.气压压力检测开关报警,
"PressSwitch",
"气压压力检测开关报警",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.气压压力检测开关报警);
}
if (alarm.E_Stop)
{
SystemAlarm.AlarmAlert(AlarmMessageList.急停开关按下报警,
"E_Stop",
"急停开关按下报警",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.急停开关按下报警);
}
if (alarm.MachineUpLimit)
{
SystemAlarm.AlarmAlert(AlarmMessageList.触发上限位报警,
"MachineUpLimit",
"触发上限位报警",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.触发上限位报警);
}
if (alarm.MachineDownLimit)
{
SystemAlarm.AlarmAlert(AlarmMessageList.触发下限位报警,
"MachineDownLimit",
"触发下限位报警",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.触发下限位报警);
}
if (alarm.MachineInverterError)
{
SystemAlarm.AlarmAlert(AlarmMessageList.升降变频器报警,
"MachineInverterError",
"升降变频器报警",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.升降变频器报警);
}
if (alarm.BeltsInverterError)
{
SystemAlarm.AlarmAlert(AlarmMessageList.传送带变频器报警,
"BeltsInverterError",
"传送带变频器报警",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.传送带变频器报警);
}
if(alarm.WaitingForReset)
{
SystemAlarm.AlarmAlert(AlarmMessageList.等待复位,
"WaitingForReset",
"等待复位",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.等待复位);
}
if (alarm.DoorOpenAlarm)
{
SystemAlarm.AlarmAlert(AlarmMessageList.门开报警,
"DoorOpenAlarm",
"门开报警",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.门开报警);
}
if (alarm.FillingValveMotorl)
{
SystemAlarm.AlarmAlert(AlarmMessageList.罐装阀伺服报警,
"FillingValveMotorl",
"罐装阀伺服报警",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.罐装阀伺服报警);
}
if (alarm.MaterialShortageShutdown)
{
SystemAlarm.AlarmAlert(AlarmMessageList.设备缺料停机,
"MaterialShortageShutdown",
"设备缺料停机",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.设备缺料停机);
}
if (alarm.InBottleScrewMotorlError)
{
SystemAlarm.AlarmAlert(AlarmMessageList.传动轴伺服报警,
"InBottleScrewMotorlError",
"传动轴伺服报警",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.传动轴伺服报警);
}
if (alarm.BottleJamSignal)
{
SystemAlarm.AlarmAlert(AlarmMessageList.堵瓶停机,
"BottleJamSignal",
"堵瓶停机",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.堵瓶停机);
}
if (alarm.MissingBottleSignal)
{
SystemAlarm.AlarmAlert(AlarmMessageList.缺瓶停机,
"MissingBottleSignal",
"缺瓶停机",
"MainWindow-UpdatePlcAlarmMessage");
}
else
{
SystemAlarm.AlarmCancel(AlarmMessageList.缺瓶停机);
}
}
}
// Bitmap 转 BitmapImage 的辅助方法
private BitmapImage ConvertToBitmapImage(Bitmap bitmap)
{
using (MemoryStream memory = new MemoryStream())
{
bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Png);
memory.Position = 0;
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.DecodePixelWidth = 1200; // 设置目标分辨率宽度
bitmapImage.DecodePixelHeight = 600; // 保持宽高比
bitmapImage.StreamSource = memory;
bitmapImage.EndInit();
return bitmapImage;
}
}
///
/// 初始化相机选择框
///
private void InitCamComboboxValue()
{
MessageBus.CameraClass.GetCameraList(out List CameraInfoList);
if (CameraInfoList.Count > 0)
{
ShowMessageBus.ShowBinding.CameraItems.Clear();
ShowMessageBus.ShowBinding.CameraItems.Add(new CameraCoboxItem() { Name = "请选择相机", SNValue = "" });
foreach (var item in CameraInfoList)
{
ShowMessageBus.ShowBinding.CameraItems.Add(new CameraCoboxItem()
{
Name = item.DeviceName + "_" + item.DeviceSN,
SNValue = item.DeviceSN
});
}
}
}
///
/// 初始化PLC管理(包括PLC的数据信息更新线程)
///
public void InitPlcManger()
{
PlcSettingMessageBus.pLCManagement = new PLCManagementClass("127.0.0.1");
//PlcSettingMessageBus.pLCManagement = new PLCManagementClass("192.168.0.88");
}
private void UpdatePlcPara()
{
var ParaValue = PlcSettingMessageBus.pLCManagement.ReadAllPara();
if (ParaValue == null) return;
//PlcSettingMessageBus.PlcMessageShowBindage.FillingModel =
// ParaValue.FillingMode;
PlcSettingMessageBus.PlcMessageShowBindage.BeltsSpeed =
ParaValue.BeltsSpeed;
PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable1H_FillingSpeed =
ParaValue.ShakeTable1H_FillingSpeed;
PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable2H_FillingSpeed =
ParaValue.ShakeTable2H_FillingSpeed;
PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable3H_FillingSpeed =
ParaValue.ShakeTable3H_FillingSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable1M_FillingSpeed =
// ParaValue.ShakeTable1M_FillingSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable2M_FillingSpeed =
// ParaValue.ShakeTable2M_FillingSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable3M_FillingSpeed =
// ParaValue.ShakeTable3M_FillingSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable1L_FillingSpeed =
// ParaValue.ShakeTable1L_FillingSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable2L_FillingSpeed =
// ParaValue.ShakeTable2L_FillingSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable3L_FillingSpeed =
// ParaValue.ShakeTable3L_FillingSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable1H_CacheSpeed =
// ParaValue.ShakeTable1H_CacheSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable2H_CacheSpeed =
// ParaValue.ShakeTable2H_CacheSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable3H_CacheSpeed =
// ParaValue.ShakeTable3H_CacheSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable1M_CacheSpeed =
// ParaValue.ShakeTable1M_CacheSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable2M_CacheSpeed =
// ParaValue.ShakeTable2M_CacheSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable3M_CacheSpeed =
// ParaValue.ShakeTable3M_CacheSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable1L_CacheSpeed =
// ParaValue.ShakeTable1L_CacheSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable2L_CacheSpeed =
// ParaValue.ShakeTable2L_CacheSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable3L_CacheSpeed =
// ParaValue.ShakeTable3L_CacheSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.FillingH_SpeedRatio =
// ParaValue.FillingH_SpeedRatio;
//PlcSettingMessageBus.PlcMessageShowBindage.FillingM_SpeedRatio =
// ParaValue.FillingM_SpeedRatio;
//PlcSettingMessageBus.PlcMessageShowBindage.FillingL_SpeedRatio =
// ParaValue.FillingL_SpeedRatio;
//PlcSettingMessageBus.PlcMessageShowBindage.CacheH_SpeedRatio =
// ParaValue.CacheH_SpeedRatio;
//PlcSettingMessageBus.PlcMessageShowBindage.CacheM_SpeedRatio =
// ParaValue.CacheM_SpeedRatio;
//PlcSettingMessageBus.PlcMessageShowBindage.CacheL_SpeedRatio =
// ParaValue.CacheL_SpeedRatio;
PlcSettingMessageBus.PlcMessageShowBindage.ScrewJogSpeed =
ParaValue.ScrewJogSpeed.ToString();
PlcSettingMessageBus.PlcMessageShowBindage.InBottleSpeed =
ParaValue.InBottleSpeed.ToString();
PlcSettingMessageBus.PlcMessageShowBindage.BottlePosSpeed =
ParaValue.BottlePosSpeed.ToString();
PlcSettingMessageBus.PlcMessageShowBindage.BottlePosPosition =
ParaValue.BottlePosPosition.ToString();
PlcSettingMessageBus.PlcMessageShowBindage.FillingValveOpenSpeed =
ParaValue.FillingValveOpenSpeed.ToString();
PlcSettingMessageBus.PlcMessageShowBindage.FillingValveOpenPosition =
ParaValue.FillingValveOpenPosition.ToString();
PlcSettingMessageBus.PlcMessageShowBindage.FillingValveCloseSpeed =
ParaValue.FillingValveCloseSpeed.ToString();
PlcSettingMessageBus.PlcMessageShowBindage.FillingValveClosePosition =
ParaValue.FillingValveClosePosition.ToString();
//PlcSettingMessageBus.PlcMessageShowBindage.FillingValveCacheSpeed =
// ParaValue.FillingValveCacheSpeed.ToString();
//PlcSettingMessageBus.PlcMessageShowBindage.FillingValveCachePosition =
// ParaValue.FillingValueCachePosition.ToString();
PlcSettingMessageBus.PlcMessageShowBindage.FillingValveJogSpeed =
ParaValue.FillingValueJogSpeed.ToString();
PlcSettingMessageBus.PlcMessageShowBindage.MachineDelayFunneDownTime =
ParaValue.MachineDelayFunneDownTime;
PlcSettingMessageBus.PlcMessageShowBindage.MachineDelayFunneUpTime =
ParaValue.MachineDelayFunneUpTime;
PlcSettingMessageBus.PlcMessageShowBindage.MachineDelayFillingValveOpenTime =
ParaValue.MachineDelayFillingValveOpenTime;
PlcSettingMessageBus.PlcMessageShowBindage.MachineDelayFillingValveCloseTime =
ParaValue.MachineDelayFillingValveCloseTime;
PlcSettingMessageBus.PlcMessageShowBindage.MachineDelayInBottleTime =
ParaValue.MachineDelayInBottleTime;
PlcSettingMessageBus.PlcMessageShowBindage.BottValueSet =
ParaValue.BottValueSet;
PlcSettingMessageBus.PlcMessageShowBindage.ValveDelytime =
ParaValue.ValveDelytime;
PlcSettingMessageBus.PlcMessageShowBindage.CacheShutdownValue =
ParaValue.CacheShutdownValue;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable1_TestSpeed =
// ParaValue.ShakeTable1_TestSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable2_TestSpeed =
// ParaValue.ShakeTable2_TestSpeed;
//PlcSettingMessageBus.PlcMessageShowBindage.ShakeTable3_TestSpeed =
// ParaValue.ShakeTable3_TestSpeed;
PlcSettingMessageBus.PlcMessageShowBindage.MissingDelaytime =
ParaValue.MissingDelaytime;
PlcSettingMessageBus.PlcMessageShowBindage.BottleJamDelaytime =
ParaValue.BottleJamDelaytime;
PlcSettingMessageBus.PlcMessageShowBindage.EliminateCylinderDelayTime =
ParaValue.EliminateCylinderDelayTime;
PlcSettingMessageBus.PlcMessageShowBindage.EliminateCylinderHoldingTime =
ParaValue.EliminateCylinderHoldingTime;
PlcSettingMessageBus.PlcMessageShowBindage.MaterialShortageStoppageDelayTime =
ParaValue.MaterialShortageStoppageDelayTime;
}
private void StartSystemRunTime()
{
string localDataPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string systemRunTimePath = Path.Combine(localDataPath, "CCDCount\\SystemRunTime.XML");
if (File.Exists(systemRunTimePath))
{
var systemMessage = XmlStorage.DeserializeFromXml(systemRunTimePath);
InitRunTime = systemMessage.SystemRunTime;
TimeSpan timeSpan = TimeSpan.FromTicks(InitRunTime);
}
SystemRunTime.Start();
}
private void StopSystemRunTime()
{
string localDataPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string systemruntimefoundPath = Path.Combine(localDataPath, "CCDCount");
if (!Directory.Exists(systemruntimefoundPath))
{
Directory.CreateDirectory(systemruntimefoundPath);
}
string systemRunTimePath = Path.Combine(systemruntimefoundPath, "SystemRunTime.XML");
SystemRunTime.Stop();
long ticks = SystemRunTime.ElapsedTicks;
XmlStorage.SerializeToXml(new SystemMessageConfigModel()
{
SystemRunTime = ticks + InitRunTime
}, systemRunTimePath);
}
private void SetupFullScreen()
{
// 隐藏标题栏和边框
this.WindowStyle = WindowStyle.None;
// 禁止调整大小
this.ResizeMode = ResizeMode.NoResize;
// 设置为最顶层窗口
//this.Topmost = true;
// 最大化窗口
this.WindowState = WindowState.Maximized;
// 隐藏任务栏(可选)
this.Top = 0;
this.Left = 0;
this.Width = SystemParameters.PrimaryScreenWidth;
this.Height = SystemParameters.PrimaryScreenHeight;
}
#endregion
}
}