MainWindow.xaml.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
  1. using CCDCount.DLL;
  2. using CCDCount.DLL.Tools;
  3. using CCDCount.MODEL.CameraClass;
  4. using CCDCount.MODEL.ConfigModel;
  5. using CCDCount.MODEL.SqlDataModel;
  6. using LogClass;
  7. using MvCameraControl;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Diagnostics;
  11. using System.Drawing;
  12. using System.Globalization;
  13. using System.IO;
  14. using System.Linq;
  15. using System.Threading;
  16. using System.Threading.Tasks;
  17. using System.Windows;
  18. using System.Windows.Data;
  19. using System.Windows.Media.Imaging;
  20. using System.Xml.Serialization;
  21. namespace CCDCountWpf
  22. {
  23. /// <summary>
  24. /// MainWindow.xaml 的交互逻辑
  25. /// </summary>
  26. public partial class MainWindow : Window
  27. {
  28. #region 变量与实例
  29. Uri ShowUri = null;
  30. List<SaveConfigModel> Configs = null;
  31. bool IsShow = false;
  32. bool IsPLCShow = false;
  33. SystemMonitor monitor = new SystemMonitor();
  34. #endregion
  35. #region 窗体事件
  36. /// <summary>
  37. /// 主窗体构造函数
  38. /// </summary>
  39. public MainWindow()
  40. {
  41. InitializeComponent();
  42. OnScreenKeyboard.KillTabTipProcess();
  43. DataContext = ShowMessageBus.ShowBinding;
  44. if (File.Exists(".\\Config\\CCDCountConfig.xml"))
  45. {
  46. Configs = XmlStorage.DeserializeFromXml<List<SaveConfigModel>>(".\\Config\\CCDCountConfig.xml");
  47. }
  48. SDKSystem.Initialize();
  49. FaultLog.FaultError += ShowErrorMesPage;
  50. InitCameraIdentify();
  51. StartUpdataShowDataThread();
  52. InitCamComboboxValue();
  53. InitPlcManger();
  54. UpdatePlcPara();
  55. }
  56. private void Window_Loaded(object sender, RoutedEventArgs e)
  57. {
  58. MainPageBtn_Click(null, null);
  59. }
  60. /// <summary>
  61. /// 退出按钮点击事件
  62. /// </summary>
  63. /// <param name="sender"></param>
  64. /// <param name="e"></param>
  65. private void ExitBtn_Click(object sender, RoutedEventArgs e)
  66. {
  67. this.Close();
  68. }
  69. /// <summary>
  70. /// 主界面按钮点击事件
  71. /// </summary>
  72. /// <param name="sender"></param>
  73. /// <param name="e"></param>
  74. private void MainPageBtn_Click(object sender, RoutedEventArgs e)
  75. {
  76. ShowUri = new Uri("WpfPage\\MainPage.xaml", UriKind.Relative);
  77. ShowFrame.Navigate(ShowUri);
  78. }
  79. private void SettingBtn_Click(object sender, RoutedEventArgs e)
  80. {
  81. ShowUri = new Uri("WpfPage\\SettingPage.xaml", UriKind.Relative);
  82. ShowFrame.Navigate(ShowUri);
  83. }
  84. private void ErrorMessageShowBtn_Click(object sender, RoutedEventArgs e)
  85. {
  86. ShowUri = new Uri("WpfPage\\MessagePage.xaml", UriKind.Relative);
  87. ShowFrame.Navigate(ShowUri);
  88. }
  89. private void PlcSettingBtn_Click(object sender, RoutedEventArgs e)
  90. {
  91. if(PlcSettingMessageBus.pLCManagement.IsConnect)
  92. {
  93. ShowUri = new Uri("WpfPage\\PlcSettingPage.xaml", UriKind.Relative);
  94. ShowFrame.Navigate(ShowUri);
  95. }
  96. else
  97. {
  98. var MessageResult = MessageBox.Show("尚未连接PLC,是否重连","重连确认",MessageBoxButton.YesNo);
  99. if(MessageResult == MessageBoxResult.Yes)
  100. {
  101. InitPlcManger();
  102. if (PlcSettingMessageBus.pLCManagement.IsConnect)
  103. {
  104. ShowUri = new Uri("WpfPage\\PlcSettingPage.xaml", UriKind.Relative);
  105. ShowFrame.Navigate(ShowUri);
  106. }
  107. else
  108. {
  109. MessageBox.Show("连接PLC失败,请检查PLC状态");
  110. }
  111. }
  112. }
  113. }
  114. private void HistoryDataBtn_Click(object sender, RoutedEventArgs e)
  115. {
  116. ShowUri = new Uri("WpfPage\\HistoryDataPage.xaml", UriKind.Relative);
  117. ShowFrame.Navigate(ShowUri);
  118. }
  119. private void UserMessageBtn_Click(object sender, RoutedEventArgs e)
  120. {
  121. if (MessageBus.NowLoginUserMessage != null)
  122. {
  123. if (!MessageBus.NowLoginUserMessage.IsAdmin)
  124. {
  125. MessageBox.Show("权限不足");
  126. }
  127. else
  128. {
  129. ShowUri = new Uri("WpfPage\\UserManagementPage.xaml", UriKind.Relative);
  130. ShowFrame.Navigate(ShowUri);
  131. }
  132. }
  133. else
  134. {
  135. MessageBox.Show("请先登录");
  136. }
  137. }
  138. /// <summary>
  139. /// 窗体关闭事件
  140. /// </summary>
  141. /// <param name="sender"></param>
  142. /// <param name="e"></param>
  143. private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
  144. {
  145. SaveConfig();
  146. SDKSystem.Finalize();
  147. if (MessageBus.MainThreadS.Count != 0)
  148. {
  149. foreach (var item in MessageBus.MainThreadS)
  150. {
  151. item.DisposeCamera();
  152. }
  153. }
  154. OnScreenKeyboard.KillTabTipProcess();
  155. StopUpdataShowDataThread();
  156. FaultLog.FaultError -= ShowErrorMesPage;
  157. Environment.Exit(0);
  158. }
  159. #endregion
  160. #region 私有方法
  161. private void InitCameraIdentify()
  162. {
  163. if (Configs.Count == 0)
  164. {
  165. MessageBox.Show("尚未添加相机,请前往配置页面配置相机");
  166. return;
  167. }
  168. if (MessageBus.MainThreadS.Count != 0)
  169. {
  170. foreach (var item in MessageBus.MainThreadS)
  171. {
  172. item.StopMianThread();
  173. }
  174. }
  175. MessageBus.MainThreadS = new List<MainThreadClass>();
  176. for (int i = 0; i < Configs.Count; i++)
  177. {
  178. MessageBus.MainThreadS.Add(new MainThreadClass(Configs[i].ShuLiConfigClass, Configs[i].CameraConfig));
  179. MessageBus.MainThreadS[i].FormulationName = Configs[i].ConfigName;
  180. MessageBus.MainThreadS[i].IsLoadFormulation = Configs[i].IsFormulation;
  181. //MessageBus.MainThreadS[i].ConnectModbus("127.0.0.1");
  182. MessageBus.MainThreadS[i].ConnectModbus("192.168.1.88");
  183. MessageBus.MainThreadS[i].LoadCamera();
  184. }
  185. }
  186. /// <summary>
  187. /// 启动更新显示数据线程
  188. /// </summary>
  189. private void StartUpdataShowDataThread()
  190. {
  191. IsShow = true;
  192. BitmapImage ThumbnailImage1 = null;
  193. BitmapImage ThumbnailImage2 = null;
  194. BitmapImage ThumbnailImage3 = null;
  195. BitmapImage ThumbnailImage4 = null;
  196. const int targetMsPerFrame = 100; // 20FPS=50ms
  197. Stopwatch renderSW = new Stopwatch();
  198. Task.Run(async () =>
  199. {
  200. while (IsShow)
  201. {
  202. renderSW.Restart();
  203. await Task.Run(() =>
  204. {
  205. UpdataShuLiShowData();
  206. UpdateMonitorMessage();
  207. UpdateFaultLogMessage();
  208. });
  209. await Application.Current.Dispatcher.InvokeAsync(() =>
  210. {
  211. if (MessageBus.MainThreadS.Count == 0)
  212. {
  213. LOG.log(string.Format("{0}:当前未加载识别流程", "IdentifyCameraForm-StartShowImageThread"));
  214. Thread.Sleep(100);
  215. return;
  216. }
  217. if(MessageBus.MainThreadS.Count>=1)
  218. {
  219. MessageBus.MainThreadS[0].GetShowImage(2000, out Bitmap image1);
  220. if (image1 == null)
  221. {
  222. LOG.log(string.Format("{0}:相机一获取图片为空", "IdentifyCameraForm-StartShowImageThread"));
  223. return;
  224. }
  225. ThumbnailImage1 = ConvertToBitmapImage(image1);
  226. }
  227. if (MessageBus.MainThreadS.Count >= 2)
  228. {
  229. MessageBus.MainThreadS[1].GetShowImage(2000, out Bitmap image2);
  230. if (image2 == null)
  231. {
  232. LOG.log(string.Format("{0}:相机二获取图片为空", "IdentifyCameraForm-StartShowImageThread"));
  233. return;
  234. }
  235. ThumbnailImage2 = ConvertToBitmapImage(image2);
  236. }
  237. if (MessageBus.MainThreadS.Count >= 3)
  238. {
  239. MessageBus.MainThreadS[2].GetShowImage(2000, out Bitmap image3);
  240. if (image3 == null)
  241. {
  242. LOG.log(string.Format("{0}:相机三获取图片为空", "IdentifyCameraForm-StartShowImageThread"));
  243. return;
  244. }
  245. ThumbnailImage3 = ConvertToBitmapImage(image3);
  246. }
  247. if (MessageBus.MainThreadS.Count >= 4)
  248. {
  249. MessageBus.MainThreadS[3].GetShowImage(2000, out Bitmap image3);
  250. if (image3 == null)
  251. {
  252. LOG.log(string.Format("{0}:相机四获取图片为空", "IdentifyCameraForm-StartShowImageThread"));
  253. return;
  254. }
  255. ThumbnailImage3 = ConvertToBitmapImage(image3);
  256. }
  257. if (ThumbnailImage1 != null)
  258. {
  259. ShowMessageBus.ShowBinding.ThumbnailImage1 = ThumbnailImage1;
  260. if(MessageBus.NowLoadCameraIndex == 0)
  261. ShowMessageBus.ShowBinding.BitmapImage = ThumbnailImage1;
  262. }
  263. if (ThumbnailImage2 != null)
  264. {
  265. ShowMessageBus.ShowBinding.ThumbnailImage2 = ThumbnailImage2;
  266. if (MessageBus.NowLoadCameraIndex == 1)
  267. ShowMessageBus.ShowBinding.BitmapImage = ThumbnailImage2;
  268. }
  269. if (ThumbnailImage3 != null)
  270. {
  271. ShowMessageBus.ShowBinding.ThumbnailImage3 = ThumbnailImage3;
  272. if (MessageBus.NowLoadCameraIndex == 2)
  273. ShowMessageBus.ShowBinding.BitmapImage = ThumbnailImage3;
  274. }
  275. if (ThumbnailImage4 != null)
  276. {
  277. ShowMessageBus.ShowBinding.ThumbnailImage4 = ThumbnailImage4;
  278. if (MessageBus.NowLoadCameraIndex == 3)
  279. ShowMessageBus.ShowBinding.BitmapImage = ThumbnailImage4;
  280. }
  281. if (MessageBus.NowLoadCameraIndex != -1)
  282. {
  283. if (MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].IsDebug)
  284. {
  285. Bitmap Splicebitmap = MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].GetCamImageOnce();
  286. if (Splicebitmap != null)
  287. {
  288. ShowMessageBus.ShowBinding.DebugImage = ConvertToBitmapImage(Splicebitmap);
  289. }
  290. }
  291. else
  292. {
  293. switch (MessageBus.NowLoadCameraIndex)
  294. {
  295. case 0:
  296. if (ThumbnailImage1 != null)
  297. {
  298. ShowMessageBus.ShowBinding.DebugImage = ThumbnailImage1;
  299. }
  300. break;
  301. case 1:
  302. if (ThumbnailImage2 != null)
  303. {
  304. ShowMessageBus.ShowBinding.DebugImage = ThumbnailImage2;
  305. }
  306. break;
  307. case 2:
  308. if (ThumbnailImage3 != null)
  309. {
  310. ShowMessageBus.ShowBinding.DebugImage = ThumbnailImage3;
  311. }
  312. break;
  313. case 3:
  314. if (ThumbnailImage4 != null)
  315. {
  316. ShowMessageBus.ShowBinding.DebugImage = ThumbnailImage4;
  317. }
  318. break;
  319. }
  320. }
  321. }
  322. });
  323. //进行精准20帧控制
  324. int elapsed = (int)renderSW.ElapsedMilliseconds;
  325. //Console.WriteLine(elapsed);
  326. if (elapsed < targetMsPerFrame)
  327. {
  328. //Console.WriteLine($"主显示线程休眠,休眠时间:{targetMsPerFrame - elapsed}");
  329. Thread.Sleep(targetMsPerFrame - elapsed);
  330. }
  331. //Thread.Sleep(50);
  332. }
  333. });
  334. }
  335. /// <summary>
  336. /// 停止更新显示数据线程
  337. /// </summary>
  338. private void StopUpdataShowDataThread()
  339. {
  340. IsShow = false;
  341. }
  342. /// <summary>
  343. /// 停止PLC数据显示线程
  344. /// </summary>
  345. public void StopPLCUpdateShowDataThread()
  346. {
  347. IsPLCShow = false;
  348. }
  349. /// <summary>
  350. /// 更新数粒显示数据
  351. /// </summary>
  352. private void UpdataShuLiShowData()
  353. {
  354. if (MessageBus.MainThreadS.Count == 0) return;
  355. if(MessageBus.NowLoadCameraIndex == -1) return;
  356. if (MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].ShuLiState)
  357. {
  358. Application.Current.Dispatcher.Invoke(() =>
  359. {
  360. ShowMessageBus.ShowBinding.CameraStaticColor = MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].CameraRunStatic == true
  361. ? System.Windows.Media.Brushes.Green : System.Windows.Media.Brushes.Red;
  362. ShowMessageBus.ShowBinding.CamRunStatic = MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].CameraRunStatic == true
  363. ? "运行中" : "未运行";
  364. });
  365. }
  366. else
  367. {
  368. Application.Current.Dispatcher.Invoke(() =>
  369. {
  370. ShowMessageBus.ShowBinding.CameraStaticColor = System.Windows.Media.Brushes.Yellow;
  371. ShowMessageBus.ShowBinding.CamRunStatic = "视野遮挡";
  372. });
  373. }
  374. ShowMessageBus.ShowBinding.AllActiveNum = MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].HistoryActiveNum.ToString();
  375. ShowMessageBus.ShowBinding.AllOkNum = MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].OkHistoryNum.ToString();
  376. ShowMessageBus.ShowBinding.AllNgNum = MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].NgHistoryNum.ToString();
  377. ShowMessageBus.ShowBinding.ShuLiSpeed = MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].GetOneSecondActiveNum().ToString();
  378. }
  379. /// <summary>
  380. /// 更新监控信息
  381. /// </summary>
  382. private void UpdateMonitorMessage()
  383. {
  384. ShowMessageBus.ShowBinding.RamMonitor = monitor.GetAvailableMemory() > 1024 ? $"可用内存: {monitor.GetAvailableMemory() / 1024:0.00}GB" : $"可用内存: {monitor.GetAvailableMemory()}MB";
  385. ShowMessageBus.ShowBinding.CPUMonitor = $"CPU: {monitor.GetCpuUsage():0.00}%";
  386. }
  387. /// <summary>
  388. /// 更新故障日志信息
  389. /// </summary>
  390. private void UpdateFaultLogMessage()
  391. {
  392. ShowMessageBus.ShowBinding.ErrMessageShowList = FaultLog.GetAllErrMessage();
  393. }
  394. // Bitmap 转 BitmapImage 的辅助方法
  395. private BitmapImage ConvertToBitmapImage(Bitmap bitmap)
  396. {
  397. using (MemoryStream memory = new MemoryStream())
  398. {
  399. bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Png);
  400. memory.Position = 0;
  401. var bitmapImage = new BitmapImage();
  402. bitmapImage.BeginInit();
  403. bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
  404. bitmapImage.DecodePixelWidth = 1200; // 设置目标分辨率宽度
  405. bitmapImage.DecodePixelHeight = 600; // 保持宽高比
  406. bitmapImage.StreamSource = memory;
  407. bitmapImage.EndInit();
  408. return bitmapImage;
  409. }
  410. }
  411. /// <summary>
  412. /// 初始化相机选择框
  413. /// </summary>
  414. private void InitCamComboboxValue()
  415. {
  416. MessageBus.CameraClass.GetCameraList(out List<CameraInfoClass> CameraInfoList);
  417. if (CameraInfoList.Count > 0)
  418. {
  419. ShowMessageBus.ShowBinding.CameraItems.Clear();
  420. ShowMessageBus.ShowBinding.CameraItems.Add(new CameraCoboxItem() { Name = "请选择相机", SNValue = "" });
  421. foreach (var item in CameraInfoList)
  422. {
  423. ShowMessageBus.ShowBinding.CameraItems.Add(new CameraCoboxItem()
  424. {
  425. Name = item.DeviceName + "_" + item.DeviceSN,
  426. SNValue = item.DeviceSN
  427. });
  428. }
  429. }
  430. }
  431. /// <summary>
  432. /// FaultLog的报警回调方法
  433. /// </summary>
  434. /// <param name="e"></param>
  435. private void ShowErrorMesPage(ErrorMesDataEventModelClass e)
  436. {
  437. ShowMessageBus.ShowBinding.ShowErrMessage = e.ErrorMesData.Message;
  438. //ShowUri = new Uri("WpfPage\\MessagePage.xaml", UriKind.Relative);
  439. //try
  440. //{
  441. // ShowFrame.Navigate(ShowUri);
  442. //}
  443. //catch (Exception)
  444. //{
  445. // Console.WriteLine("MianWindows-ShowErrorMesPage:显示错误信息页面失败");
  446. //}
  447. }
  448. /// <summary>
  449. /// 保存配置
  450. /// </summary>
  451. private void SaveConfig()
  452. {
  453. List<SaveConfigModel> SaveConfig = new List<SaveConfigModel>();
  454. if (MessageBus.MainThreadS.Count <= 0)
  455. {
  456. return;
  457. }
  458. foreach (var item in MessageBus.MainThreadS)
  459. {
  460. SaveConfig.Add(new SaveConfigModel()
  461. {
  462. CameraConfig = item.cameraConfig,
  463. ShuLiConfigClass = item.shuLiConfig,
  464. IsFormulation = item.IsLoadFormulation,
  465. ConfigName = item.FormulationName
  466. });
  467. }
  468. if (!Directory.Exists(".\\Config\\")) Directory.CreateDirectory(".\\Config\\");
  469. {
  470. XmlStorage.SerializeToXml(SaveConfig, ".\\Config\\CCDCountConfig.xml");
  471. }
  472. }
  473. /// <summary>
  474. /// 初始化PLC管理(包括PLC的数据信息更新线程)
  475. /// </summary>
  476. public void InitPlcManger()
  477. {
  478. //PlcSettingMessageBus.pLCManagement = new PLCManagementClass("127.0.0.1");
  479. PlcSettingMessageBus.pLCManagement = new PLCManagementClass("192.168.1.88");
  480. if (PlcSettingMessageBus.pLCManagement.IsConnect)
  481. {
  482. IsPLCShow = true;
  483. const int targetMsPerFrame = 100; // 20FPS=50ms
  484. Stopwatch renderSW = new Stopwatch();
  485. Task.Run(async () =>
  486. {
  487. while (IsPLCShow)
  488. {
  489. await Task.Run(() =>
  490. {
  491. UpdatePlcState();
  492. });
  493. await Application.Current.Dispatcher.InvokeAsync(() =>
  494. {
  495. });
  496. //进行精准20帧控制
  497. int elapsed = (int)renderSW.ElapsedMilliseconds;
  498. //Console.WriteLine(elapsed);
  499. if (elapsed < targetMsPerFrame)
  500. {
  501. //Console.WriteLine($"主显示线程休眠,休眠时间:{targetMsPerFrame - elapsed}");
  502. Thread.Sleep(targetMsPerFrame - elapsed);
  503. }
  504. //Thread.Sleep(50);
  505. }
  506. });
  507. }
  508. }
  509. private void UpdatePlcState()
  510. {
  511. var plcData = PlcSettingMessageBus.pLCManagement.ReadAllState();
  512. if (plcData == null) return;
  513. PlcSettingMessageBus.PlcMessageShowBindage.EnableCompletion =
  514. plcData.EnableCompletion;
  515. PlcSettingMessageBus.PlcMessageShowBindage.ReturnToZeroCompletion =
  516. plcData.ReturnToZeroCompletion;
  517. PlcSettingMessageBus.PlcMessageShowBindage.StopCompletion =
  518. plcData.StopCompletion;
  519. PlcSettingMessageBus.PlcMessageShowBindage.SpeedRunning =
  520. plcData.SpeedRunning;
  521. PlcSettingMessageBus.PlcMessageShowBindage.ReturnToZero =
  522. plcData.ReturnToZero;
  523. PlcSettingMessageBus.PlcMessageShowBindage.TransferValveOpenCompletion =
  524. plcData.TransferValveOpenCompletion;
  525. PlcSettingMessageBus.PlcMessageShowBindage.TransferValveCloseCompletion =
  526. plcData.TransferValveCloseCompletion;
  527. PlcSettingMessageBus.PlcMessageShowBindage.AllowsDataExchange =
  528. plcData.AllowsDataExchange;
  529. PlcSettingMessageBus.PlcMessageShowBindage.Enable =
  530. plcData.Enable;
  531. PlcSettingMessageBus.PlcMessageShowBindage.PauseDataExchange =
  532. plcData.PauseDataExchange;
  533. PlcSettingMessageBus.PlcMessageShowBindage.CacheCountDelayed =
  534. plcData.CacheCountDelayed;
  535. PlcSettingMessageBus.PlcMessageShowBindage.BottleFeedingWheelEnableCompletion =
  536. plcData.BottleFeedingWheelEnableCompletion;
  537. PlcSettingMessageBus.PlcMessageShowBindage.BottleFeedingWheelStopCompletion =
  538. plcData.BottleFeedingWheelStopCompletion;
  539. }
  540. private void UpdatePlcPara()
  541. {
  542. var ParaValue = PlcSettingMessageBus.pLCManagement.ReadAllPara();
  543. if (ParaValue == null) return;
  544. PlcSettingMessageBus.PlcMessageShowBindage.SpeedModeRunningSpeed =
  545. ParaValue.SpeedModeRunningSpeed.ToString();
  546. PlcSettingMessageBus.PlcMessageShowBindage.JogSpeed =
  547. ParaValue.JogSpeed.ToString();
  548. PlcSettingMessageBus.PlcMessageShowBindage.BottValueSet =
  549. ParaValue.BottValueSet;
  550. PlcSettingMessageBus.PlcMessageShowBindage.TransferValveOpeningSpeed =
  551. ParaValue.TransferValveOpeningSpeed.ToString();
  552. PlcSettingMessageBus.PlcMessageShowBindage.TransferValveOpeningTime =
  553. ParaValue.TransferValveOpeningTime;
  554. PlcSettingMessageBus.PlcMessageShowBindage.BottingDecelerationValue =
  555. ParaValue.BottingDecelerationValue;
  556. PlcSettingMessageBus.PlcMessageShowBindage.CacheDecelerationValue =
  557. ParaValue.CacheDecelerationValue;
  558. PlcSettingMessageBus.PlcMessageShowBindage.CacheCountDelayTiming =
  559. ParaValue.CacheCountDelayTiming;
  560. PlcSettingMessageBus.PlcMessageShowBindage.CacheShutdownValue =
  561. ParaValue.CacheShutdownValue;
  562. PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue =
  563. ParaValue.BottingMaterialCylinderVibrationTableHighSpeedValue;
  564. PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue =
  565. ParaValue.BottingFilterVibrationTableHighSpeedValue;
  566. PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue =
  567. ParaValue.BottingCountVibrationTableHighSpeedValue;
  568. PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableDecelerationSpeedValue =
  569. ParaValue.BottingMaterialCylinderVibrationTableDecelerationSpeedValue;
  570. PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableDecelerationSpeedValue =
  571. ParaValue.BottingFilterVibrationTableDecelerationSpeedValue;
  572. PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableDecelerationSpeedValue =
  573. ParaValue.BottingCountVibrationTableDecelerationSpeedValue;
  574. PlcSettingMessageBus.PlcMessageShowBindage.CacheMaterialCylinderVibrationTableHighSpeedValue =
  575. ParaValue.CacheMaterialCylinderVibrationTableHighSpeedValue;
  576. PlcSettingMessageBus.PlcMessageShowBindage.CacheFilterVibrationTableHighSpeedValue =
  577. ParaValue.CacheFilterVibrationTableHighSpeedValue;
  578. PlcSettingMessageBus.PlcMessageShowBindage.CacheCountVibrationTableHighSpeedValue =
  579. ParaValue.CacheCountVibrationTableHighSpeedValue;
  580. PlcSettingMessageBus.PlcMessageShowBindage.CacheMaterialCylinderVibrationTableDecelerationSpeedValue =
  581. ParaValue.CacheMaterialCylinderVibrationTableDecelerationSpeedValue;
  582. PlcSettingMessageBus.PlcMessageShowBindage.CacheMaterialCylinderVibrationTableHighSpeedValue =
  583. ParaValue.CacheMaterialCylinderVibrationTableHighSpeedValue;
  584. PlcSettingMessageBus.PlcMessageShowBindage.CacheCountVibrationTableDecelerationSpeedValue =
  585. ParaValue.CacheCountVibrationTableDecelerationSpeedValue;
  586. PlcSettingMessageBus.PlcMessageShowBindage.GateOpeningDelay =
  587. ParaValue.GateOpeningDelay;
  588. PlcSettingMessageBus.PlcMessageShowBindage.ReturnToZeroOffsetValue =
  589. ParaValue.ReturnToZeroOffsetValue.ToString();
  590. PlcSettingMessageBus.PlcMessageShowBindage.ReturnToZeroOffsetSpeed =
  591. ParaValue.ReturnToZeroOffsetSpeed.ToString();
  592. PlcSettingMessageBus.PlcMessageShowBindage.TransferValveClosingSpeed =
  593. ParaValue.TransferValveClosingSpeed.ToString();
  594. PlcSettingMessageBus.PlcMessageShowBindage.TransferValveOpenPosition =
  595. ParaValue.TransferValveOpenPosition.ToString();
  596. PlcSettingMessageBus.PlcMessageShowBindage.TransferValveClosePosition =
  597. ParaValue.TransferValveClosePosition.ToString();
  598. PlcSettingMessageBus.PlcMessageShowBindage.AirValveOpeningDelay =
  599. ParaValue.AirValveOpeningDelay;
  600. PlcSettingMessageBus.PlcMessageShowBindage.BottlingShutdownValue =
  601. ParaValue.BottlingShutdownValue;
  602. PlcSettingMessageBus.PlcMessageShowBindage.BottlingShutdownTime =
  603. ParaValue.BottlingShutdownTime;
  604. PlcSettingMessageBus.PlcMessageShowBindage.BottleFeedingWheelRunningSpeed =
  605. ParaValue.BottleFeedingWheelRunningSpeed.ToString();
  606. PlcSettingMessageBus.PlcMessageShowBindage.BottleFeedingWheelJogRunningSpeed =
  607. ParaValue.BottleFeedingWheelJogRunningSpeed.ToString();
  608. PlcSettingMessageBus.PlcMessageShowBindage.BottleFeedingWheelReturnToZeroOffsetValue =
  609. ParaValue.BottleFeedingWheelReturnToZeroOffsetValue.ToString();
  610. PlcSettingMessageBus.PlcMessageShowBindage.BottleFeedingWheelReturnToZeroSpeed =
  611. ParaValue.BottleFeedingWheelReturnToZeroSpeed.ToString();
  612. PlcSettingMessageBus.PlcMessageShowBindage.BottleFeedingWheelPositionLength =
  613. ParaValue.BottleFeedingWheelPositionLength.ToString();
  614. PlcSettingMessageBus.PlcMessageShowBindage.BottleFeedingWheelPauseTime =
  615. ParaValue.BottleFeedingWheelPauseTime;
  616. PlcSettingMessageBus.PlcMessageShowBindage.DelayBlanking =
  617. ParaValue.DelayBlanking;
  618. }
  619. #endregion
  620. private void MenuBtn_Click(object sender, RoutedEventArgs e)
  621. {
  622. HeardPanel.Visibility = HeardPanel.Visibility == Visibility.Visible?Visibility.Hidden:Visibility.Visible;
  623. }
  624. private void KeyBoardBtn_Click(object sender, RoutedEventArgs e)
  625. {
  626. OnScreenKeyboard.Show();
  627. }
  628. }
  629. }