PageTotalEquipmentControl.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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. LogExtension.ShowMessage = ShowLog;
  25. }
  26. protected override CreateParams CreateParams
  27. {
  28. get
  29. {
  30. CreateParams paras = base.CreateParams;
  31. paras.ExStyle |= 0x02000000;
  32. return paras;
  33. }
  34. }
  35. private void btn_Start_Common_Click(object sender, EventArgs e)
  36. {
  37. UISymbolButton uISymbolButton = sender as UISymbolButton;
  38. if (!Globals.SiemensClient.Connected)
  39. {
  40. UIMessageTip.ShowWarning("请先连接到西门子PLC");
  41. return;
  42. }
  43. if (Globals.PlcWrite(uISymbolButton.TagString, true))
  44. {
  45. UIMessageTip.ShowOk("写入成功");
  46. ShowLog($"{uISymbolButton.TagString} 写入成功");
  47. }
  48. else
  49. {
  50. UIMessageTip.ShowError("写入失败");
  51. ShowLog($"{uISymbolButton.TagString} 写入失败", LogLevel.Warning);
  52. }
  53. }
  54. private void ShowLog(string log, LogLevel logLevel = LogLevel.Information)
  55. {
  56. this.txt_Log.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "=>" + log + Environment.NewLine);
  57. switch (logLevel)
  58. {
  59. case LogLevel.Information:
  60. _logger.LogInformation(log);
  61. break;
  62. case LogLevel.Warning:
  63. _logger.LogWarning(log);
  64. break;
  65. case LogLevel.Error:
  66. _logger.LogError(log);
  67. break;
  68. default:
  69. break;
  70. }
  71. }
  72. private void btn_DryRun_ClickEvent(object sender, EventArgs e)
  73. {
  74. if (!Globals.SiemensClient.Connected)
  75. {
  76. UIMessageTip.ShowWarning("请先连接到西门子PLC");
  77. return;
  78. }
  79. if (Globals.PlcWrite(this.btn_DryRun.VariableName, !this.btn_DryRun.CounterButtonState))
  80. {
  81. this.btn_DryRun.CounterButtonState = !this.btn_DryRun.CounterButtonState;
  82. UIMessageTip.ShowOk("写入成功");
  83. ShowLog($"{btn_DryRun.VariableName} 写入成功");
  84. }
  85. else
  86. {
  87. UIMessageTip.ShowError("写入失败");
  88. ShowLog($"{btn_DryRun.VariableName} 写入失败", LogLevel.Warning);
  89. }
  90. }
  91. private void device_Common_ClickEvent(object sender, EventArgs e)
  92. {
  93. UserDeviceUnitControl userDeviceUnit = sender as UserDeviceUnitControl;
  94. if (!Globals.SiemensClient.Connected)
  95. {
  96. userDeviceUnit.State = false;
  97. UIMessageTip.ShowWarning("请先连接到西门子PLC");
  98. return;
  99. }
  100. bool state = userDeviceUnit.State;
  101. string variableName = state ? userDeviceUnit.OpenVariableName : userDeviceUnit.CloseVariableName;
  102. if (Globals.PlcWrite(variableName, state))
  103. {
  104. UIMessageTip.ShowOk("写入成功");
  105. ShowLog($"{variableName} 写入成功");
  106. }
  107. else
  108. {
  109. UIMessageTip.ShowError("写入失败");
  110. ShowLog($"{variableName} 写入失败", LogLevel.Warning);
  111. }
  112. }
  113. }
  114. }