GlobalContext.cs 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. using MainForm.ClassFile.ProjectClass;
  2. using MainForm.DbHelper;
  3. using MainForm.Models;
  4. using StandardLibrary;
  5. using System;
  6. using System.Data;
  7. namespace MainForm
  8. {
  9. /// <summary>
  10. /// 全局变量
  11. /// </summary>
  12. public class GlobalContext
  13. {
  14. #region 变量
  15. //消息委托和事件
  16. public static Action Set; // 更新UI的委托方法
  17. public static Action Save; // 保存的委托方法
  18. public static Action Close; // 关闭的委托方法
  19. /// <summary>
  20. /// 日志文件保存位置
  21. /// </summary>
  22. public static string FilePath = AppDomain.CurrentDomain.BaseDirectory + "Config.ini";
  23. public static string MainDir = @"D:\MESFile\";
  24. public static string WorkLogDir = MainDir + @"WorkLog\"; // 运行日志
  25. public static string PlcLogDir = MainDir + @"PLCLog\"; // plc写入日志
  26. public static string MqttLogDir = MainDir + @"MqttLog\"; // mqtt日志
  27. public static string ProcessDataDir = MainDir + @"ProcessData\"; // 加工数据日志
  28. public static string OneCheckDataDir = MainDir + @"OneCheckData\"; // 点检数据日志
  29. public static string SQLLogDir = MainDir + @"SQLLog\"; // sql日志
  30. public static string DBDir = @"D:\LocalDataBase\";
  31. public static string MqttServerPath = AppDomain.CurrentDomain.BaseDirectory + @"\ThingsMode\MqttServer.exe";
  32. public static string MqttServerName = "MqttServer";
  33. /// <summary>
  34. /// 点检数据文件
  35. /// </summary>
  36. public static string CheckOneDataPath = AppDomain.CurrentDomain.BaseDirectory + "CheckOneData.ini";
  37. // 产线及产品信息
  38. public static string Project_Code; // 项⽬编码
  39. public static string Factory_Code; // ⼯⼚编码
  40. public static string Process_Section_Code; // ⼯段编码
  41. public static string LineCode; // 线体编码
  42. public static string LineName; // 线体名称
  43. public static string ProgramName; // 程序名
  44. public static string WorkOrderCode; // 车间订单号
  45. public static string BatchNumber; // 批次号(splcode)
  46. public static string Mtltmrk; // 产品型号(mtltmrk)
  47. //OP10
  48. public static string S1_work_station; // [S1] ⼯站
  49. public static string S1_device_code; // [S1] 装备编码
  50. public static string S1_station; // [S1] ⼯位编码
  51. //OP20
  52. public static string S2_work_station; // [S2] ⼯站
  53. public static string S2_device_code; // [S2] 装备编码
  54. public static string S2_station; // [S2] ⼯位编码
  55. //OP30
  56. public static string S3_1_work_station; // [S3_1] ⼯站
  57. public static string S3_1_device_code; // [S3_1] 装备编码
  58. public static string S3_1_station; // [S3_1] ⼯位编码
  59. public static string S3_2_work_station; // [S3_2] ⼯站
  60. public static string S3_2_device_code; // [S3_2] 装备编码
  61. public static string S3_2_station; // [S3_2] ⼯位编码
  62. //OP40
  63. public static string S4_work_station; // [S4] ⼯站
  64. public static string S4_device_code; // [S4] 装备编码
  65. public static string S4_station; // [S4] ⼯位编码
  66. //OP50
  67. public static string S5_work_station; // [S5] ⼯站
  68. public static string S5_device_code; // [S5] 装备编码
  69. public static string S5_station; // [S5] ⼯位编码
  70. //OP60
  71. public static string S6_work_station; // [S6] ⼯站
  72. public static string S6_device_code; // [S6] 装备编码
  73. public static string S6_station; // [S6] ⼯位编码
  74. //OP70
  75. public static string S7_1_work_station; // [S7_1] ⼯站
  76. public static string S7_1_device_code; // [S7_1] 装备编码
  77. public static string S7_1_station; // [S7_1] ⼯位编码
  78. public static string S7_2_work_station; // [S7_2] ⼯站
  79. public static string S7_2_device_code; // [S7_2] 装备编码
  80. public static string S7_2_station; // [S7_2] ⼯位编码
  81. //OP80
  82. public static string S8_work_station; // [S8] ⼯站
  83. public static string S8_device_code; // [S8] 装备编码
  84. public static string S8_station; // [S8] ⼯位编码
  85. //OP90
  86. public static string S9_work_station; // [S9] ⼯站
  87. public static string S9_device_code; // [S9] 装备编码
  88. public static string S9_station; // [S9] ⼯位编码
  89. // 设备
  90. //public static string PCAddress="192.168.1.244";
  91. public static bool IsUsePLC1;
  92. public static bool IsUsePLC2;
  93. public static bool IsUsePLC3;
  94. public static bool IsUsePLC4;
  95. public static bool IsUsePLC5;
  96. public static bool IsUsePLC6;
  97. public static bool IsUsePLC7;
  98. public static bool IsUsePLC8;
  99. public static bool IsUsePLC9;
  100. public static string Machine1Address;
  101. public static string Machine2Address;
  102. public static string Machine3Address;
  103. public static string Machine4Address;
  104. public static string Machine5Address;
  105. public static string Machine6Address;
  106. public static string Machine7Address;
  107. public static string Machine8Address;
  108. public static string Machine9Address;
  109. public static string PCAddress;
  110. public static int MachinePort;
  111. // MES
  112. public static string MESAppId; // 应用ID;mes_test
  113. public static string MESAppKey; // API接口名称;mes
  114. public static string MESUserId; // 用户ID
  115. public static string ServerHost; // 主服务器IP
  116. public static string StationInMESUrl; // 入站接口Url
  117. public static string StationOutMESUrl; // 出站接口Url
  118. public static bool IsSendStationIn; // 启用上传进站
  119. public static bool IsSendProcessData; // 启用上传出站
  120. public static bool IsSendCheckOneData; // 启用上传点检
  121. public static bool IsSendWorkingData; // 启用上传状态
  122. public static bool IsSendAlarmData; // 启用上传报警
  123. public static bool IsUseMESRoute; // 启用边线MES软件
  124. // IOT - MQTT
  125. public static bool IOTIsConnect1; // IOT-MQTT连接状态
  126. public static string MQTTServerHost; // 服务器IP
  127. public static int MQTTServerPort; // 服务器Port
  128. public static bool IsMqttSendProcessData; // 上传过站数据
  129. public static bool IsMqttDeviceState; // 上传设备状态
  130. public static bool IsMqttFaultLog; // 上传故障⽇志
  131. public static bool IsMqttSensorData; // 上传传感器数据
  132. public static bool IsMqttStationInputBegin; // 上传节拍⽇志
  133. public static bool IsMqttOperateLog; // 上传操作记录
  134. public static bool IsMqttEquiConfig; // 上传装备配置
  135. public static bool IsMqttProcConfig; // 上传⼯艺配置
  136. // IOT-AGV
  137. public static bool IsUseAGV; // 是否 启用AGV
  138. public static string AGVHttpHost; // Http IP地址
  139. public static string AGVMQTTHost; // MQTT IP地址
  140. public static string AGVMQTTPort; // MQTT端口
  141. // MES进出站 配置信息
  142. public static string S1_MachineId; // 工站1 - 壳体清洁上料装备
  143. public static string S1_StationId; // 工站1 - 壳体清洁上料装备
  144. public static string S2_MachineId; // 工站2 - 上盖板上料装备
  145. public static string S2_StationId; // 工站2 - 上盖板上料装备
  146. public static string S3_MachineId; // 工站3 - 点散热胶装备
  147. public static string S3_StationId; // 工站3 - 点散热胶装备
  148. public static string S4_MachineId; // 工站4 - 胶线检测装备
  149. public static string S4_StationId; // 工站4 - 胶线检测装备
  150. public static string S5_MachineId; // 工站5 - ADD板上料组装装备
  151. public static string S5_StationId; // 工站5 - ADD板上料组装装备
  152. public static string S6_MachineId; // 工站6 - 组上盖板装备
  153. public static string S6_StationId; // 工站6 - 组上盖板装备
  154. public static string S7_MachineId; // 工站7 - 上盖板锁螺丝装备
  155. public static string S7_StationId; // 工站7 - 上盖板锁螺丝装备
  156. public static string S8_MachineId; // 工站8 - NG下料装备
  157. public static string S8_StationId; // 工站8 - NG下料装备
  158. public static string S9_MachineId; // 工站9 - 产品下料装备
  159. public static string S9_StationId; // 工站9 - 产品下料装备
  160. // 本地数据库
  161. public static string Server;
  162. public static string User;
  163. public static string PassWord;
  164. //其它
  165. public static string CurrentUser = "";
  166. public static string MacStr = "";
  167. #region 是否可连接PLC-用户手动控制用(后加)
  168. public static bool _IsCon_Funs1 = true;
  169. public static bool _IsCon_Funs2 = true;
  170. public static bool _IsCon_Funs3 = true;
  171. public static bool _IsCon_Funs4 = true;
  172. public static bool _IsCon_Funs5 = true;
  173. public static bool _IsCon_Funs6 = true;
  174. public static bool _IsCon_Funs7 = true;
  175. public static bool _IsCon_Funs8 = true;
  176. public static bool _IsCon_Funs9 = true;
  177. public static bool _IsCon_plc1Heat = true;
  178. public static bool _IsCon_plc1Alarm = true;
  179. #endregion 是否可连接PLC-用户手动控制用(后加)
  180. #endregion 变量
  181. #region 常量
  182. //产品常量
  183. public const string ConstLineCode = "A1";
  184. public const string ConstLineName = "A1产线";
  185. public const string ConstProgramName = "A1程序名";
  186. public const string ConstSono = " ";
  187. public const string ConstWorkOrderCode = " ";
  188. public const string ConstBatchNumber = " ";
  189. public const string ConstMtltmrk = " ";
  190. public const string ConstSupplierCode = " ";
  191. //设备常量
  192. public const string ConstMachine1Address = "192.168.1.11";
  193. public const string ConstMachine2Address = "192.168.1.21";
  194. public const string ConstMachine3Address = "192.168.1.31";
  195. public const string ConstMachine4Address = "192.168.1.41";
  196. public const string ConstMachine5Address = "192.168.1.51";
  197. public const string ConstMachine6Address = "192.168.1.61";
  198. public const string ConstMachine7Address = "192.168.1.71";
  199. public const string ConstMachine8Address = "192.168.1.81";
  200. public const string ConstMachine9Address = "192.168.1.91";
  201. public const string ConstPcAddress = "192.168.1.10";
  202. public const string ConstMachinePort = "502";
  203. //MES常量
  204. public const string ConstServerHost = "10.1.19.33:8080";
  205. public const string ConstIsSendStationIn = "false";
  206. public const string ConstIsSendProcessData = "false";
  207. public const string ConstIsSendCheckOneData = "false";
  208. public const string ConstIsSendWorkingData = "false";
  209. public const string ConstIsSendAlarmData = "false";
  210. #endregion 常量
  211. public GlobalContext()
  212. {
  213. UpdateData();
  214. }
  215. /// <summary>
  216. /// 更新全局变量
  217. /// </summary>
  218. public static void UpdateData()
  219. {
  220. try
  221. {
  222. // 产线及产品信息
  223. Project_Code = IniFile.INIGetStringValue(FilePath, "Product", "ProjectCode", "");
  224. Factory_Code = IniFile.INIGetStringValue(FilePath, "Product", "FactoryCode", "");
  225. Process_Section_Code = IniFile.INIGetStringValue(FilePath, "Product", "ProcessSectionCode", "");
  226. LineCode = IniFile.INIGetStringValue(FilePath, "Product", "LineCode", ConstLineCode);
  227. LineName = IniFile.INIGetStringValue(FilePath, "Product", "LineName", ConstLineName);
  228. ProgramName = IniFile.INIGetStringValue(FilePath, "Product", "ProgramName", ConstProgramName);
  229. WorkOrderCode = IniFile.INIGetStringValue(FilePath, "Product", "WorkOrderCode", ConstWorkOrderCode); // 车间订单号
  230. BatchNumber = IniFile.INIGetStringValue(FilePath, "Product", "BatchNumber", ConstBatchNumber); // 批次号(splcode)
  231. Mtltmrk = IniFile.INIGetStringValue(FilePath, "Product", "Mtltmrk", ConstMtltmrk); ; // 产品型号(mtltmrk)
  232. //OP10 工位信息
  233. S1_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s1_work_station", ""); // [S1] ⼯站
  234. S1_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s1_device_code", ""); // [S1] 装备编码
  235. S1_station = IniFile.INIGetStringValue(FilePath, "Station", "s1_station", ""); // [S1] ⼯位编码
  236. //OP20
  237. S2_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s2_work_station", ""); // [S2] ⼯站
  238. S2_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s2_device_code", ""); // [S2] 装备编码
  239. S2_station = IniFile.INIGetStringValue(FilePath, "Station", "s2_station", ""); // [S2] ⼯位编码
  240. //OP30 Left
  241. S3_1_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_work_station", ""); // [S3_1] ⼯站
  242. S3_1_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_device_code", ""); // [S3_1] 装备编码
  243. S3_1_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_station", ""); // [S3_1] ⼯位编码
  244. //OP30 Right
  245. S3_2_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_2_work_station", ""); // [S3_2] ⼯站
  246. S3_2_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s3_2_device_code", ""); // [S3_2] 装备编码
  247. S3_2_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_2_station", ""); // [S3_2] ⼯位编码
  248. //OP40
  249. S4_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s4_work_station", ""); // [S4] ⼯站
  250. S4_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s4_device_code", ""); // [S4] 装备编码
  251. S4_station = IniFile.INIGetStringValue(FilePath, "Station", "s4_station", ""); // [S4] ⼯位编码
  252. //OP50
  253. S5_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s5_work_station", ""); // [S5] ⼯站
  254. S5_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s5_device_code", ""); // [S5] 装备编码
  255. S5_station = IniFile.INIGetStringValue(FilePath, "Station", "s5_station", ""); // [S5] ⼯位编码
  256. //OP60
  257. S6_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s6_work_station", ""); // [S6] ⼯站
  258. S6_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s6_device_code", ""); // [S6] 装备编码
  259. S6_station = IniFile.INIGetStringValue(FilePath, "Station", "s6_station", ""); // [S6] ⼯位编码
  260. //OP70
  261. S7_1_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s7_1_work_station", ""); // [S7_1] ⼯站
  262. S7_1_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s7_1_device_code", ""); // [S7_1] 装备编码
  263. S7_1_station = IniFile.INIGetStringValue(FilePath, "Station", "s7_1_station", ""); // [S7_1] ⼯位编码
  264. S7_2_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s7_2_work_station", ""); // [S7_2] ⼯站
  265. S7_2_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s7_2_device_code", ""); // [S7_2] 装备编码
  266. S7_2_station = IniFile.INIGetStringValue(FilePath, "Station", "s7_2_station", ""); // [S7_2] ⼯位编码
  267. //OP80
  268. S8_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s8_work_station", ""); // [S8] ⼯站
  269. S8_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s8_device_code", ""); // [S8] 装备编码
  270. S8_station = IniFile.INIGetStringValue(FilePath, "Station", "s8_station", ""); // [S8] ⼯位编码
  271. //OP90
  272. S9_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s9_work_station", ""); // [S9] ⼯站
  273. S9_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s9_device_code", ""); // [S9] 装备编码
  274. S9_station = IniFile.INIGetStringValue(FilePath, "Station", "s9_station", ""); // [S9] ⼯位编码
  275. // 设备
  276. IsUsePLC1 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC1", "false"));
  277. IsUsePLC2 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC2", "false"));
  278. IsUsePLC3 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC3", "false"));
  279. IsUsePLC4 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC4", "false"));
  280. IsUsePLC5 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC5", "false"));
  281. IsUsePLC6 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC6", "false"));
  282. IsUsePLC7 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC7", "false"));
  283. IsUsePLC8 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC8", "false"));
  284. IsUsePLC9 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC9", "false"));
  285. Machine1Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine1Address", ConstMachine1Address);
  286. Machine2Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine2Address", ConstMachine2Address);
  287. Machine3Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine3Address", ConstMachine3Address);
  288. Machine4Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine4Address", ConstMachine4Address);
  289. Machine5Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine5Address", ConstMachine5Address);
  290. Machine6Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine6Address", ConstMachine6Address);
  291. Machine7Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine7Address", ConstMachine7Address);
  292. Machine8Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine8Address", ConstMachine8Address);
  293. Machine9Address = IniFile.INIGetStringValue(FilePath, "Machine", "Machine9Address", ConstMachine9Address);
  294. PCAddress = IniFile.INIGetStringValue(FilePath, "Machine", "PcAddress", ConstPcAddress);
  295. MachinePort = int.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "MachinePort", ConstMachinePort));
  296. // MES
  297. MESAppId = IniFile.INIGetStringValue(FilePath, "MES", "MESAppId", "mes_test");
  298. MESAppKey = IniFile.INIGetStringValue(FilePath, "MES", "MESAppKey", "mes");
  299. MESUserId = IniFile.INIGetStringValue(FilePath, "MES", "MESUserId", "mes_userid");
  300. ServerHost = IniFile.INIGetStringValue(FilePath, "MES", "ServerHost", ConstServerHost);
  301. StationInMESUrl = IniFile.INIGetStringValue(FilePath, "MES", "StationInMESUrl", "");
  302. StationInMESUrl = string.Format(StationInMESUrl, ServerHost);
  303. StationOutMESUrl = IniFile.INIGetStringValue(FilePath, "MES", "StationOutMESUrl", "");
  304. StationOutMESUrl = string.Format(StationOutMESUrl, ServerHost);
  305. IsSendStationIn = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendStationIn", ConstIsSendStationIn));
  306. IsSendProcessData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendProcessData", ConstIsSendProcessData));
  307. IsSendCheckOneData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendCheckOneData", ConstIsSendCheckOneData));
  308. IsSendWorkingData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendWorkingData", ConstIsSendWorkingData));
  309. IsSendAlarmData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendAlarmData", ConstIsSendAlarmData));
  310. IsUseMESRoute = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsUseMESRoute", "False"));
  311. // MQTT
  312. MQTTServerHost = IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTServerHost", "127.0.0.1:80");
  313. MQTTServerPort = int.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTServerPort", "0"));
  314. IsMqttSendProcessData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttSendProcessData", "false"));
  315. IsMqttDeviceState = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttDeviceState", "false"));
  316. IsMqttFaultLog = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttFaultLog", "false"));
  317. IsMqttSensorData = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttSensorData", "false"));
  318. IsMqttStationInputBegin = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttStationInputBegin", "false"));
  319. IsMqttOperateLog = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttOperateLog", "false"));
  320. IsMqttEquiConfig = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttEquiConfig", "false"));
  321. IsMqttProcConfig = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttProcConfig", "false"));
  322. // AGV配置
  323. IsUseAGV = bool.Parse(IniFile.INIGetStringValue(FilePath, "AGV", "IsMqttProcConfig", "false")); // 是否 启用AGV
  324. AGVHttpHost = IniFile.INIGetStringValue(FilePath, "AGV", "AGVHttpHost", ""); // Http IP地址
  325. AGVMQTTHost = IniFile.INIGetStringValue(FilePath, "AGV", "AGVMQTTHost", ""); // MQTT IP地址
  326. AGVMQTTPort = IniFile.INIGetStringValue(FilePath, "AGV", "AGVMQTTPort", ""); // MQTT端口
  327. // 入出站参数
  328. S1_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S1_MachineId", "MId");
  329. S1_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S1_StationId", "SId");
  330. S2_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S2_MachineId", "MId");
  331. S2_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S2_StationId", "SId");
  332. S3_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S3_MachineId", "MId");
  333. S3_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S3_StationId", "SId");
  334. S4_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S4_MachineId", "MId");
  335. S4_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S4_StationId", "SId");
  336. S5_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S5_MachineId", "MId");
  337. S5_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S5_StationId", "SId");
  338. S6_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S6_MachineId", "MId");
  339. S6_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S6_StationId", "SId");
  340. S7_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S7_MachineId", "MId");
  341. S7_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S7_StationId", "SId");
  342. S8_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S8_MachineId", "MId");
  343. S8_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S8_StationId", "SId");
  344. S9_MachineId = IniFile.INIGetStringValue(FilePath, "StationOut", "S9_MachineId", "MId");
  345. S9_StationId = IniFile.INIGetStringValue(FilePath, "StationOut", "S9_StationId", "SId");
  346. // 本地数据库
  347. Server = IniFile.INIGetStringValue(FilePath, "LocalDB", "Server", @"localhost");
  348. User = IniFile.INIGetStringValue(FilePath, "LocalDB", "User", "sa");
  349. PassWord = IniFile.INIGetStringValue(FilePath, "LocalDB", "PassWord", "Aa123456");
  350. MacStr = IPHelper.GetMoAddress();
  351. // 同步一次数据库当前订单信息到配置文件-后加的(加完后,设置页修改订单信息的功能不可用)
  352. //SyncCurOrderInfo();
  353. Set?.Invoke();
  354. }
  355. catch (Exception ex)
  356. {
  357. }
  358. }
  359. /// <summary>
  360. /// 同步数据量存储的当前订单信息到配置文件中
  361. /// </summary>
  362. public static void SyncCurOrderInfo()
  363. {
  364. #region 校验配置文件是否和数据库实际订单一致,如果配置文件的订单和数据库不一致,以数据库优先
  365. string sql = @" SELECT TOP 1
  366. WorkOrderNum,
  367. BatchNumber,
  368. ProductMtltmrk,
  369. SupplierCode
  370. FROM OrderTable
  371. WHERE WorkOrderStatus = '正在处理订单'
  372. ORDER BY
  373. CreatedTime DESC ";
  374. SqlHelper _sqlHelper = new SqlHelper();
  375. DataTable dt_data = _sqlHelper.Db.SqlQueryable<OrderTable>(sql).ToDataTable(); // 查询订单数据
  376. if (dt_data != null && dt_data.Rows.Count > 0)
  377. {
  378. string _workOrderNum = dt_data.Rows[0][1].ToString().Trim();
  379. if (WorkOrderCode != _workOrderNum)
  380. {
  381. IniFile.INIWriteValue(FilePath, "Product", "WorkOrderCode", dt_data.Rows[0][0].ToString().Trim());
  382. IniFile.INIWriteValue(FilePath, "Product", "BatchNumber", dt_data.Rows[0][1].ToString().Trim());
  383. IniFile.INIWriteValue(FilePath, "Product", "Mtltmrk", dt_data.Rows[0][2].ToString().Trim());
  384. }
  385. else
  386. {
  387. IniFile.INIWriteValue(FilePath, "Product", "WorkOrderCode", string.Empty);
  388. IniFile.INIWriteValue(FilePath, "Product", "BatchNumber", string.Empty);
  389. IniFile.INIWriteValue(FilePath, "Product", "Mtltmrk", string.Empty);
  390. }
  391. }
  392. else
  393. {
  394. IniFile.INIWriteValue(FilePath, "Product", "WorkOrderCode", string.Empty);
  395. IniFile.INIWriteValue(FilePath, "Product", "BatchNumber", string.Empty);
  396. IniFile.INIWriteValue(FilePath, "Product", "Mtltmrk", string.Empty);
  397. }
  398. #endregion
  399. }
  400. }
  401. }