PageTotalEquipmentControl.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Runtime.CompilerServices;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. using HZY.Framework.DependencyInjection;
  12. using Microsoft.Extensions.Logging;
  13. using Sunny.UI;
  14. using LogLevel = Microsoft.Extensions.Logging.LogLevel;
  15. namespace Scada.Page
  16. {
  17. public partial class PageTotalEquipmentControl : UIPage, ISingletonSelfDependency
  18. {
  19. private ILogger<PageTotalEquipmentControl> _logger;
  20. public PageTotalEquipmentControl(ILogger<PageTotalEquipmentControl> logger)
  21. {
  22. _logger = logger;
  23. InitializeComponent();
  24. }
  25. private void btn_Start_Common_Click(object sender, EventArgs e)
  26. {
  27. UISymbolButton uISymbolButton = sender as UISymbolButton;
  28. if (!Globals.SiemensClient.Connected)
  29. {
  30. UIMessageTip.ShowWarning("请先连接到西门子PLC");
  31. return;
  32. }
  33. if (Globals.PlcWrite(uISymbolButton.TagString, true))
  34. {
  35. UIMessageTip.ShowOk("写入成功");
  36. ShowLog($"{uISymbolButton.TagString} 写入成功");
  37. }
  38. else
  39. {
  40. UIMessageTip.ShowError("写入失败");
  41. ShowLog($"{uISymbolButton.TagString} 写入失败", LogLevel.Warning);
  42. }
  43. }
  44. private void ShowLog(string log, LogLevel logLevel = LogLevel.Information)
  45. {
  46. this.txt_Log.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "=>" + log + Environment.NewLine);
  47. switch (logLevel)
  48. {
  49. case LogLevel.Information:
  50. _logger.LogInformation(log);
  51. break;
  52. case LogLevel.Warning:
  53. _logger.LogWarning(log);
  54. break;
  55. case LogLevel.Error:
  56. _logger.LogError(log);
  57. break;
  58. default:
  59. break;
  60. }
  61. }
  62. private void btn_DryRun_ClickEvent(object sender, EventArgs e)
  63. {
  64. if (!Globals.SiemensClient.Connected)
  65. {
  66. UIMessageTip.ShowWarning("请先连接到西门子PLC");
  67. return;
  68. }
  69. if (Globals.PlcWrite(this.btn_DryRun.VariableName, !this.btn_DryRun.CounterButtonState))
  70. {
  71. this.btn_DryRun.CounterButtonState = !this.btn_DryRun.CounterButtonState;
  72. UIMessageTip.ShowOk("写入成功");
  73. ShowLog($"{btn_DryRun.VariableName} 写入成功");
  74. }
  75. else
  76. {
  77. UIMessageTip.ShowError("写入失败");
  78. ShowLog($"{btn_DryRun.VariableName} 写入失败", LogLevel.Warning);
  79. }
  80. }
  81. private void device_Common_ClickEvent(object sender, EventArgs e)
  82. {
  83. UserDeviceUnitControl userDeviceUnit = sender as UserDeviceUnitControl;
  84. if (!Globals.SiemensClient.Connected)
  85. {
  86. userDeviceUnit.State = false;
  87. UIMessageTip.ShowWarning("请先连接到西门子PLC");
  88. return;
  89. }
  90. bool state = userDeviceUnit.State;
  91. string variableName = state ? userDeviceUnit.OpenVariableName : userDeviceUnit.CloseVariableName;
  92. if (Globals.PlcWrite(variableName, state))
  93. {
  94. UIMessageTip.ShowOk("写入成功");
  95. ShowLog($"{variableName} 写入成功");
  96. }
  97. else
  98. {
  99. UIMessageTip.ShowError("写入失败");
  100. ShowLog($"{variableName} 写入失败", LogLevel.Warning);
  101. }
  102. }
  103. }
  104. }