Form_SystemSet.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Linq;
  5. using System.Net;
  6. using System.Windows.Forms;
  7. using StandardLibrary;
  8. namespace MainForm
  9. {
  10. public delegate void SystemSetMessageHandler(LogType logType, string message);
  11. public partial class Form_SystemSet : Form
  12. {
  13. private string FilePath = AppDomain.CurrentDomain.BaseDirectory + "Config.ini";
  14. public event SystemSetMessageHandler MessageEvent;
  15. private string currentRole = "";
  16. #region 窗体事件
  17. public Form_SystemSet()
  18. {
  19. InitializeComponent();
  20. }
  21. private void Form_SystemSet_Load(object sender, EventArgs e)
  22. {
  23. // 产品
  24. txtProject_code.Text = IniFile.INIGetStringValue(FilePath, "Product", "ProjectCode", ""); // 项⽬编码
  25. txtFactory_Code.Text = IniFile.INIGetStringValue(FilePath, "Product", "FactoryCode", ""); // ⼯⼚Id
  26. txtProcess_Section_Code.Text = IniFile.INIGetStringValue(FilePath, "Product", "ProcessSectionCode", ""); // ⼯段编码
  27. textBoxLineCode.Text = IniFile.INIGetStringValue(FilePath, "Product", "LineCode", ""); // 线体编码
  28. textBoxLineName.Text = IniFile.INIGetStringValue(FilePath, "Product", "LineName", ""); // 线体名称
  29. txtProgramName.Text = IniFile.INIGetStringValue(FilePath, "Product", "ProgramName", ""); // 程序名称
  30. // MES API配置
  31. chkIsUseMes.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsUseMES", "False"));
  32. textBoxServerHost.Text = IniFile.INIGetStringValue(FilePath, "MES", "ServerHost", GlobalContext.ConstServerHost);
  33. cbSendStationIn.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendStationIn", GlobalContext.ConstIsSend));
  34. cbSendProcessData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendProcessData", GlobalContext.ConstIsSend));
  35. cbSendCheckOneData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendCheckOneData", GlobalContext.ConstIsSend));
  36. cbSendWorkingData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendWorkingData", GlobalContext.ConstIsSend));
  37. cbSendAlarmData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendAlarmData", GlobalContext.ConstIsSend));
  38. chkIsUseMESRoute.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsUseMESRoute", GlobalContext.ConstIsSend)); // 启用MES边线(RouteCommunication.dll)
  39. // MQTT配置
  40. chkIsUseIot.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsUseIot", "False"));
  41. txtMqttIP.Text = IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTServerHost", "127.0.0.1");
  42. numMqttPort.Text = IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTServerPort", "0");
  43. chkMqttPassStation.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttSendProcessData", GlobalContext.ConstIsSend)); // 上传过站数据
  44. chkMqttDeviceState.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttDeviceState", GlobalContext.ConstIsSend)); // 上传设备状态
  45. chkMqttFaultLog.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttFaultLog", GlobalContext.ConstIsSend)); // 上传故障⽇志
  46. chkMqttSensorData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttSensorData", GlobalContext.ConstIsSend)); // 上传传感器数据
  47. chkMqttStationInputBegin.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttStationInputBegin", GlobalContext.ConstIsSend)); ; // 上传节拍⽇志
  48. chkMqttOperateLog.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttOperateLog", GlobalContext.ConstIsSend)); // 上传操作记录
  49. chkMqttEquiConfig.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttEquiConfig", GlobalContext.ConstIsSend)); // 上传装备配置
  50. chkMqttProcConfig.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttProcConfig", GlobalContext.ConstIsSend)); // 上传⼯艺配置
  51. // AGV配置
  52. chkIsUseAGV.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "AGV", "IsUseAGV", "False")); // 是否 启用AGV
  53. txtAGVHttpIP.Text = IniFile.INIGetStringValue(FilePath, "AGV", "AGVHttpHost", ""); // Http IP地址
  54. txtAGVMQTTIP.Text = IniFile.INIGetStringValue(FilePath, "AGV", "AGVMQTTHost", ""); // MQTT IP地址
  55. numAGVMQTTPort.Text = IniFile.INIGetStringValue(FilePath, "AGV", "AGVMQTTPort", ""); // MQTT端口
  56. txtTPortCode.Text = IniFile.INIGetStringValue(FilePath, "AGV", "AGVMQTTDeviceCode", ""); // MQTT PortCode
  57. // 机器IP配置
  58. bool boolS1 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC1", "false"));
  59. bool boolS2 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC2", "false"));
  60. bool boolS3 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC3", "false"));
  61. bool boolS4 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC4", "false"));
  62. bool boolS5 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC5", "false"));
  63. rdbS1.Checked = boolS1;
  64. rdbS2.Checked = boolS2;
  65. rdbS3.Checked = boolS3;
  66. rdbS4.Checked = boolS4;
  67. rdbS5.Checked = boolS5;
  68. txtPLCAddress1.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine1Address", GlobalContext.ConstMachine1Address);
  69. txtPLCAddress2.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine2Address", GlobalContext.ConstMachine2Address);
  70. txtPLCAddress3.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine3Address", GlobalContext.ConstMachine3Address);
  71. txtPLCAddress4.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine4Address", GlobalContext.ConstMachine4Address);
  72. txtPLCAddress5.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine5Address", GlobalContext.ConstMachine5Address);
  73. numPLCPort.Value = int.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "MachinePort", "0"));
  74. // 产品2
  75. if (boolS1)
  76. {
  77. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s1_work_station", "");
  78. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s1_device_code", "");
  79. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s1_station", "");
  80. }
  81. else if (boolS2)
  82. {
  83. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s2_work_station", "");
  84. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s2_device_code", "");
  85. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s3_station", "");
  86. }
  87. else if (boolS3)
  88. {
  89. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s3_work_station", "");
  90. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s3_device_code", "");
  91. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s3_station", "");
  92. }
  93. else if (boolS4)
  94. {
  95. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s4_work_station", "");
  96. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s4_device_code", "");
  97. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s4_station", "");
  98. }
  99. else if (boolS5)
  100. {
  101. txtWorkStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s5_work_station", "");
  102. txtDeviceCode.Text = IniFile.INIGetStringValue(FilePath, "Station", "s5_device_code", "");
  103. txtStation.Text = IniFile.INIGetStringValue(FilePath, "Station", "s5_station", "");
  104. }
  105. }
  106. #endregion 窗体事件
  107. /// <summary>
  108. /// 改变用户时更新页面
  109. /// </summary>
  110. /// <param name="user"></param>
  111. public void ForUserChangeToUpdate(User user)
  112. {
  113. currentRole = user.ToString();
  114. //switch (user.ToString())
  115. //{
  116. // case "Operator":
  117. // groupBox2.Enabled = false;
  118. // groupBox3.Enabled = false;
  119. // break;
  120. // case "Admin":
  121. // groupBox2.Enabled = true;
  122. // groupBox3.Enabled = false;
  123. // break;
  124. // case "SuperAdmin":
  125. // groupBox2.Enabled = true;
  126. // groupBox3.Enabled = true;
  127. // break;
  128. // default:
  129. // groupBox2.Enabled = true;
  130. // groupBox3.Enabled = true;
  131. // break;
  132. //}
  133. }
  134. /// <summary>
  135. /// 保存产线信息
  136. /// </summary>
  137. private void buttonConfirm_Click(object sender, EventArgs e)
  138. {
  139. try
  140. {
  141. IniFile.INIWriteValue(FilePath, "Product", "ProjectCode", txtProject_code.Text.Trim());
  142. IniFile.INIWriteValue(FilePath, "Product", "FactoryCode", txtFactory_Code.Text.Trim());
  143. IniFile.INIWriteValue(FilePath, "Product", "ProcessSectionCode", txtProcess_Section_Code.Text.Trim());
  144. IniFile.INIWriteValue(FilePath, "Product", "LineCode", textBoxLineCode.Text.Trim());
  145. IniFile.INIWriteValue(FilePath, "Product", "LineName", textBoxLineName.Text.Trim());
  146. IniFile.INIWriteValue(FilePath, "Product", "ProgramName", txtProgramName.Text.Trim());
  147. // 产品2
  148. if (rdbS1.Checked)
  149. {
  150. IniFile.INIWriteValue(FilePath, "Station", "s1_work_station", txtWorkStation.Text.Trim());
  151. IniFile.INIWriteValue(FilePath, "Station", "s1_device_code", txtDeviceCode.Text.Trim());
  152. IniFile.INIWriteValue(FilePath, "Station", "s1_station", txtStation.Text.Trim());
  153. }
  154. else if (rdbS2.Checked)
  155. {
  156. IniFile.INIWriteValue(FilePath, "Station", "s2_work_station", txtWorkStation.Text.Trim());
  157. IniFile.INIWriteValue(FilePath, "Station", "s2_device_code", txtDeviceCode.Text.Trim());
  158. IniFile.INIWriteValue(FilePath, "Station", "s2_station", txtStation.Text.Trim());
  159. }
  160. else if (rdbS3.Checked)
  161. {
  162. IniFile.INIWriteValue(FilePath, "Station", "s3_work_station", txtWorkStation.Text.Trim());
  163. IniFile.INIWriteValue(FilePath, "Station", "s3_device_code", txtDeviceCode.Text.Trim());
  164. IniFile.INIWriteValue(FilePath, "Station", "s3_station", txtStation.Text.Trim());
  165. }
  166. else if (rdbS4.Checked)
  167. {
  168. IniFile.INIWriteValue(FilePath, "Station", "s4_work_station", txtWorkStation.Text.Trim());
  169. IniFile.INIWriteValue(FilePath, "Station", "s4_device_code", txtDeviceCode.Text.Trim());
  170. IniFile.INIWriteValue(FilePath, "Station", "s4_station", txtStation.Text.Trim());
  171. }
  172. else if (rdbS5.Checked)
  173. {
  174. IniFile.INIWriteValue(FilePath, "Station", "s5_work_station", txtWorkStation.Text.Trim());
  175. IniFile.INIWriteValue(FilePath, "Station", "s5_device_code", txtDeviceCode.Text.Trim());
  176. IniFile.INIWriteValue(FilePath, "Station", "s5_station", txtStation.Text.Trim());
  177. }
  178. MessageBox.Show("参数保存成功!");
  179. GlobalContext.UpdateData();
  180. //记录修改日志
  181. List<string> productSetVlaue = new List<string>();
  182. productSetVlaue.Add(txtProject_code.Text.Trim());
  183. productSetVlaue.Add(txtFactory_Code.Text.Trim());
  184. productSetVlaue.Add(txtProcess_Section_Code.Text.Trim());
  185. productSetVlaue.Add(textBoxLineCode.Text.Trim());
  186. productSetVlaue.Add(textBoxLineName.Text.Trim());
  187. productSetVlaue.Add(txtProgramName.Text.Trim());
  188. productSetVlaue.Add(txtWorkStation.Text.Trim());
  189. productSetVlaue.Add(txtDeviceCode.Text.Trim());
  190. productSetVlaue.Add(txtStation.Text.Trim());
  191. String.Join(";", productSetVlaue);
  192. OnMessage(LogType.Info, currentRole + "修改系统值[产线信息]为[" + String.Join(";", productSetVlaue) + "]");
  193. }
  194. catch (Exception ex)
  195. {
  196. string str = ex.StackTrace;
  197. OnMessage(LogType.Info, "保存产线信息出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
  198. }
  199. }
  200. /// <summary>
  201. /// 保存MES配置
  202. /// </summary>
  203. private void button2_Click(object sender, EventArgs e)
  204. {
  205. try
  206. {
  207. // 是否 启用MES
  208. IniFile.INIWriteValue(FilePath, "MES", "IsUseMES", chkIsUseMes.Checked.ToString());
  209. IniFile.INIWriteValue(FilePath, "MES", "ServerHost", textBoxServerHost.Text.Trim().ToString());
  210. IniFile.INIWriteValue(FilePath, "MES", "IsSendStationIn", cbSendStationIn.Checked.ToString());
  211. IniFile.INIWriteValue(FilePath, "MES", "IsSendProcessData", cbSendProcessData.Checked.ToString());
  212. IniFile.INIWriteValue(FilePath, "MES", "IsSendCheckOneData", cbSendCheckOneData.Checked.ToString());
  213. IniFile.INIWriteValue(FilePath, "MES", "IsSendWorkingData", cbSendWorkingData.Checked.ToString());
  214. IniFile.INIWriteValue(FilePath, "MES", "IsSendAlarmData", cbSendAlarmData.Checked.ToString());
  215. IniFile.INIWriteValue(FilePath, "MES", "IsUseMESRoute", chkIsUseMESRoute.Checked.ToString()); // 启用MES边线(RouteCommunication.dll)
  216. MessageBox.Show("参数保存成功!");
  217. GlobalContext.UpdateData();
  218. //记录修改日志
  219. List<string> mesSetVlaue = new List<string>();
  220. mesSetVlaue.Add(chkIsUseMes.Checked.ToString());
  221. mesSetVlaue.Add(textBoxServerHost.Text);
  222. mesSetVlaue.Add(cbSendStationIn.Checked.ToString());
  223. mesSetVlaue.Add(cbSendProcessData.Checked.ToString());
  224. mesSetVlaue.Add(cbSendCheckOneData.Checked.ToString());
  225. mesSetVlaue.Add(cbSendWorkingData.Checked.ToString());
  226. mesSetVlaue.Add(cbSendAlarmData.Checked.ToString());
  227. mesSetVlaue.Add(chkIsUseMESRoute.Checked.ToString()); // 启用MES边线(RouteCommunication.dll)
  228. String.Join(";", mesSetVlaue);
  229. OnMessage(LogType.Info, currentRole + "修改系统值[MES配置]为[" + String.Join(";", mesSetVlaue) + "]");
  230. }
  231. catch (Exception ex)
  232. {
  233. string str = ex.StackTrace;
  234. OnMessage(LogType.Info, "保存MES配置出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
  235. }
  236. }
  237. /// <summary>
  238. /// 保存IOT配置
  239. /// </summary>
  240. private void btnIOTData_Click(object sender, EventArgs e)
  241. {
  242. try
  243. {
  244. IniFile.INIWriteValue(FilePath, "MQTT", "IsUseIot", chkIsUseIot.Checked.ToString());
  245. IniFile.INIWriteValue(FilePath, "MQTT", "MQTTServerHost", IPAddress.Parse(txtMqttIP.Text.Trim()).ToString());
  246. IniFile.INIWriteValue(FilePath, "MQTT", "MQTTServerPort", numMqttPort.Value.ToString());
  247. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttSendProcessData", chkMqttPassStation.Checked.ToString()); // 上传过站数据
  248. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttDeviceState", chkMqttDeviceState.Checked.ToString()); // 上传设备状态
  249. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttFaultLog", chkMqttFaultLog.Checked.ToString()); // 上传故障⽇志
  250. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttSensorData", chkMqttSensorData.Checked.ToString()); // 上传传感器数据
  251. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttStationInputBegin", chkMqttStationInputBegin.Checked.ToString()); // 上传节拍⽇志
  252. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttOperateLog", chkMqttOperateLog.Checked.ToString()); // 上传操作记录
  253. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttEquiConfig", chkMqttEquiConfig.Checked.ToString()); // 上传装备配置
  254. IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttProcConfig", chkMqttProcConfig.Checked.ToString()); // 上传⼯艺配置
  255. MessageBox.Show("参数保存成功!");
  256. GlobalContext.UpdateData();
  257. //记录修改日志
  258. List<string> mesSetVlaue = new List<string>();
  259. mesSetVlaue.Add(chkIsUseIot.Checked.ToString());
  260. mesSetVlaue.Add(txtMqttIP.Text.Trim());
  261. mesSetVlaue.Add(numMqttPort.Value.ToString());
  262. mesSetVlaue.Add(chkMqttPassStation.Checked.ToString());
  263. mesSetVlaue.Add(chkMqttDeviceState.Checked.ToString());
  264. mesSetVlaue.Add(chkMqttFaultLog.Checked.ToString());
  265. mesSetVlaue.Add(chkMqttSensorData.Checked.ToString());
  266. mesSetVlaue.Add(chkMqttStationInputBegin.Checked.ToString());
  267. mesSetVlaue.Add(chkMqttOperateLog.Checked.ToString());
  268. mesSetVlaue.Add(chkMqttEquiConfig.Checked.ToString());
  269. mesSetVlaue.Add(chkMqttProcConfig.Checked.ToString());
  270. String.Join(";", mesSetVlaue);
  271. OnMessage(LogType.Info, currentRole + "修改系统值[IOT配置]为[" + String.Join(";", mesSetVlaue) + "]");
  272. }
  273. catch (Exception ex)
  274. {
  275. string str = ex.StackTrace;
  276. OnMessage(LogType.Info, "保存IOT配置出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
  277. }
  278. }
  279. /// <summary>
  280. /// 保存AGV配置
  281. /// </summary>
  282. private void btnAGV_Click(object sender, EventArgs e)
  283. {
  284. try
  285. {
  286. IniFile.INIWriteValue(FilePath, "AGV", "IsUseAGV", chkIsUseAGV.Checked.ToString()); // 是否 启用AGV
  287. IniFile.INIWriteValue(FilePath, "AGV", "AGVHttpHost", IPAddress.Parse(txtAGVHttpIP.Text.Trim()).ToString()); // Http IP地址
  288. IniFile.INIWriteValue(FilePath, "AGV", "AGVMQTTHost", IPAddress.Parse(txtAGVMQTTIP.Text.Trim()).ToString()); // MQTT IP地址
  289. IniFile.INIWriteValue(FilePath, "AGV", "AGVMQTTPort", numAGVMQTTPort.Value.ToString()); // MQTT端口
  290. IniFile.INIWriteValue(FilePath, "AGV", "AGVMQTTDeviceCode", txtTPortCode.Text.ToString()); // MQTT PortCode
  291. MessageBox.Show("参数保存成功!");
  292. GlobalContext.UpdateData();
  293. //记录修改日志
  294. List<string> mesSetVlaue = new List<string>();
  295. mesSetVlaue.Add(chkIsUseAGV.Checked.ToString());
  296. mesSetVlaue.Add(txtAGVHttpIP.Text.Trim());
  297. mesSetVlaue.Add(txtAGVMQTTIP.Text.Trim());
  298. mesSetVlaue.Add(numAGVMQTTPort.Text.Trim());
  299. mesSetVlaue.Add(txtTPortCode.Text.Trim());
  300. String.Join(";", mesSetVlaue);
  301. OnMessage(LogType.Info, currentRole + "修改系统值[AGV配置]为[" + String.Join(";", mesSetVlaue) + "]");
  302. }
  303. catch (Exception ex)
  304. {
  305. string str = ex.StackTrace;
  306. OnMessage(LogType.Error, "保存AGV配置出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
  307. }
  308. }
  309. /// <summary>
  310. /// 保存设备配置
  311. /// </summary>
  312. private void button3_Click(object sender, EventArgs e)
  313. {
  314. try
  315. {
  316. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC1", rdbS1.Checked.ToString());
  317. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC2", rdbS2.Checked.ToString());
  318. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC3", rdbS3.Checked.ToString());
  319. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC4", rdbS4.Checked.ToString());
  320. IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC5", rdbS5.Checked.ToString());
  321. IniFile.INIWriteValue(FilePath, "Machine", "Machine1Address", IPAddress.Parse(txtPLCAddress1.Text.Trim()).ToString());
  322. IniFile.INIWriteValue(FilePath, "Machine", "Machine2Address", IPAddress.Parse(txtPLCAddress2.Text.Trim()).ToString());
  323. IniFile.INIWriteValue(FilePath, "Machine", "Machine3Address", IPAddress.Parse(txtPLCAddress3.Text.Trim()).ToString());
  324. IniFile.INIWriteValue(FilePath, "Machine", "Machine4Address", IPAddress.Parse(txtPLCAddress4.Text.Trim()).ToString());
  325. IniFile.INIWriteValue(FilePath, "Machine", "Machine5Address", IPAddress.Parse(txtPLCAddress5.Text.Trim()).ToString());
  326. IniFile.INIWriteValue(FilePath, "Machine", "MachinePort",numPLCPort.Value.ToString());
  327. MessageBox.Show("参数保存成功!");
  328. GlobalContext.UpdateData();
  329. //记录修改日志
  330. List<string> machineSetVlaue = new List<string>();
  331. machineSetVlaue.Add(rdbS1.Checked.ToString());
  332. machineSetVlaue.Add(rdbS2.Checked.ToString());
  333. machineSetVlaue.Add(rdbS3.Checked.ToString());
  334. machineSetVlaue.Add(rdbS4.Checked.ToString());
  335. machineSetVlaue.Add(rdbS5.Checked.ToString());
  336. machineSetVlaue.Add(txtPLCAddress1.Text.Trim());
  337. machineSetVlaue.Add(txtPLCAddress2.Text.Trim());
  338. machineSetVlaue.Add(txtPLCAddress3.Text.Trim());
  339. machineSetVlaue.Add(txtPLCAddress4.Text.Trim());
  340. machineSetVlaue.Add(txtPLCAddress5.Text.Trim());
  341. machineSetVlaue.Add(numPLCPort.Value.ToString());
  342. String.Join(";", machineSetVlaue);
  343. OnMessage(LogType.Info, currentRole + "修改系统值[设备配置]为[" + String.Join(";", machineSetVlaue) + "]");
  344. }
  345. catch (Exception ex)
  346. {
  347. string str = ex.StackTrace;
  348. OnMessage(LogType.Error, "保存设备配置出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
  349. }
  350. }
  351. /// <summary>
  352. /// 获取订单信息
  353. /// </summary>
  354. private void btnGetOrderInfo_Click(object sender, EventArgs e)
  355. {
  356. }
  357. //private void textBoxWC_KeyPress(object sender, KeyPressEventArgs e)
  358. //{
  359. // if (e.KeyChar == 13)
  360. // {
  361. // WorkOrderInfo workOrderInfo;
  362. // workOrderInfo = HttpUitls.GetWOData(textBoxWC.Text.Trim());
  363. // if (workOrderInfo != null)
  364. // {
  365. // textBoxWC.Text = workOrderInfo.sono;
  366. // textBoxBN.Text = workOrderInfo.splcode;
  367. // comboBoxProductModel.Text = workOrderInfo.prtno;
  368. // comboBoxKeyValue.Text = workOrderInfo.prodline;
  369. // }
  370. // else
  371. // {
  372. // textBoxWC.Text = string.Empty;
  373. // }
  374. // }
  375. //}
  376. /// <summary>
  377. /// 保存信息
  378. /// </summary>
  379. /// <param name="logType"></param>
  380. /// <param name="msg"></param>
  381. private void OnMessage(LogType logType, string msg)
  382. {
  383. MessageEvent?.Invoke(logType, msg);
  384. }
  385. }
  386. }