WIN-GH9CEESPLTB\Administrator 3 mesi fa
parent
commit
2228410627

+ 7 - 4
MainForm/ClassFile/ProjectClass/GlobalContext.cs

@@ -175,7 +175,7 @@ namespace MainForm
         public static string MQTTServerHost;         // 服务器IP
         public static int MQTTServerPort;            // 服务器Port
         public static bool IsMqttSendProcessData;    // 上传过站数据
-        public static bool IsMqttSendProcessResult;    // 上传过站数据
+        public static bool IsMqttSendProcessResult;    // 上传过站结果
         public static bool IsMqttDeviceState;        // 上传设备状态
         public static bool IsMqttFaultLog;           // 上传故障⽇志
         public static bool IsMqttSensorData;         // 上传传感器数据
@@ -183,6 +183,7 @@ namespace MainForm
         public static bool IsMqttOperateLog;         // 上传操作记录
         public static bool IsMqttEquiConfig;         // 上传装备配置
         public static bool IsMqttProcConfig;         // 上传⼯艺配置
+        public static bool MQTTIsSendUpFile;    // 启用上传出战明细
         public static string MQTTAppId;            // IOT应用ID
         public static string MQTTAppPwd;           // IOT登录密码
         public static int IsUsePLCNow { set; get; } = 0;              // 单机模式下,存储当前在用的plcNum
@@ -317,12 +318,12 @@ namespace MainForm
                 s3_1_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_work_station", "");  // [S3] ⼯站
                 s3_1_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_device_code", "");    // [S3] 装备编码
                 s3_1_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_1_station", "");            // [S3] ⼯位Id
+                s3_2_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_2_work_station", "");  // [S3] ⼯站
+                s3_2_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s3_2_device_code", "");    // [S3] 装备编码
+                s3_2_station = IniFile.INIGetStringValue(FilePath, "Station", "s3_2_station", "");            // [S3] ⼯位Id
                 s4_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s4_work_station", "");  // [S4_1] ⼯站
                 s4_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s4_device_code", "");    // [S4_1] 装备编码
                 s4_station = IniFile.INIGetStringValue(FilePath, "Station", "s4_station", "");            // [S4_1] ⼯位Id
-                s4_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s4_work_station", "");  // [S4_3] ⼯站
-                s4_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s4_device_code", "");    // [S4_3] 装备编码
-                s4_station = IniFile.INIGetStringValue(FilePath, "Station", "s4_station", "");            // [S4_3] ⼯位Id
                 s5_work_station = IniFile.INIGetStringValue(FilePath, "Station", "s5_work_station", "");  // [S4_4] ⼯站
                 s5_device_code = IniFile.INIGetStringValue(FilePath, "Station", "s5_device_code", "");    // [S4_4] 装备编码
                 s5_station = IniFile.INIGetStringValue(FilePath, "Station", "s5_station", "");            // [S4_4] ⼯位Id
@@ -441,6 +442,8 @@ namespace MainForm
                 IsMqttOperateLog = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttOperateLog", ConstIsSend));
                 IsMqttEquiConfig = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttEquiConfig", ConstIsSend));
                 IsMqttProcConfig = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttProcConfig", ConstIsSend));
+                MQTTIsSendUpFile = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTIsSendUpFile", ConstIsSend));
+
                 MQTTAppId = IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTAppId", "AKPKTSQAS46NKE4NHY");
                 MQTTAppPwd = IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTAppPwd", "pwd");
                 appKey = IniFile.INIGetStringValue(FilePath, "MQTT", "appKey", ConstIsSend);

+ 33 - 36
MainForm/FaForm/Form_Home.cs

@@ -4663,20 +4663,24 @@ namespace MainForm
                     Parameter_unit = ""
                 });
                 #region 上传图片
-                string[] urlarry = GlobalContext.UpFilePath.Split(",");
-                fileUploadData.fileData.Clear();
-                foreach (var item in urlarry)
+                if (GlobalContext.MQTTIsSendUpFile)
                 {
-                    if (!string.IsNullOrEmpty(item))
+                    string[] urlarry = GlobalContext.UpFilePath.Split(",");
+                    fileUploadData.fileData.Clear();
+                    foreach (var item in urlarry)
                     {
-                        //上传图片
-                        var result=SaveDBbyFileInfo(stPLC_MesData.BarcodeSet, stationCode, stationName, a1Result, item, uuid).Result;
-                        OnMessage(LogType.Error, $"【文件上传】 产品码 [{sn}] " +result.Item2);
+                        if (!string.IsNullOrEmpty(item))
+                        {
+                            //上传图片
+                            var result = SaveDBbyFileInfo(stPLC_MesData.BarcodeSet, stationCode, stationName, a1Result, item, uuid).Result;
+                            OnMessage(LogType.Error, $"【文件上传】 产品码 [{sn}] " + result.Item2);
 
+                        }
                     }
                 }
                 #endregion
 
+
                 string paramJson = JsonConvert.SerializeObject(stPLC_MesData.mesData);
                 int result1 = SwitctProcessData(stationNameStr, items, equipmentCode, processItem
    , workorder_code, batch_num, mtltmrk, plcDate_YMD, supplierCode, sn, pass, CarrierBarcode, "01-SLOT-01", MachineId, StationId, "", paramJson);
@@ -5229,20 +5233,24 @@ namespace MainForm
                 });
 
                 #region 上传图片
-                string[] urlarry = GlobalContext.UpFilePath.Split(",");
-                fileUploadData.fileData.Clear();
-                foreach (var item in urlarry)
+                if (GlobalContext.MQTTIsSendUpFile)
                 {
-                    if (!string.IsNullOrEmpty(item))
+                    string[] urlarry = GlobalContext.UpFilePath.Split(",");
+                    fileUploadData.fileData.Clear();
+                    foreach (var item in urlarry)
                     {
-                        //上传图片
-                        var result = SaveDBbyFileInfo(stPLC_MesData.BarcodeSet, stationCode, stationName, a1Result, item, uuid).Result;
-                        OnMessage(LogType.Error, $"【文件上传】 产品码 [{sn}] " + result.Item2);
+                        if (!string.IsNullOrEmpty(item))
+                        {
+                            //上传图片
+                            var result = SaveDBbyFileInfo(stPLC_MesData.BarcodeSet, stationCode, stationName, a1Result, item, uuid).Result;
+                            OnMessage(LogType.Error, $"【文件上传】 产品码 [{sn}] " + result.Item2);
 
+                        }
                     }
                 }
                 #endregion
 
+
                 string paramJson = JsonConvert.SerializeObject(stPLC_MesData.mesData);
                 int result1 = SwitctProcessData(stationNameStr, items, equipmentCode, processItem
    , workorder_code, batch_num, mtltmrk, plcDate_YMD, supplierCode, sn, pass, CarrierBarcode, "1", MachineId, StationId, PartBarcode, paramJson);
@@ -5837,21 +5845,6 @@ namespace MainForm
                     Parameter_unit = ""
                 });
 
-                #region 上传图片
-                string[] urlarry = GlobalContext.UpFilePath.Split(",");
-                fileUploadData.fileData.Clear();
-                foreach (var item in urlarry)
-                {
-                    if (!string.IsNullOrEmpty(item))
-                    {
-                        //上传图片
-                        var result = SaveDBbyFileInfo(stPLC_MesData.BarcodeSet, stationCode, stationName, a1Result, item, uuid).Result;
-                        OnMessage(LogType.Error, $"【文件上传】 产品码 [{sn}] " + result.Item2);
-
-                    }
-                }
-                #endregion
-
                 string paramJson = JsonConvert.SerializeObject(stPLC_MesData.mesData);
                 int result1 = SwitctProcessData(stationNameStr, items, equipmentCode, processItem
     , workorder_code, batch_num, mtltmrk, plcDate_YMD, supplierCode, sn, pass, CarrierBarcode, "1", MachineId, StationId, "", paramJson);
@@ -7089,20 +7082,24 @@ namespace MainForm
                 });
 
                 #region 上传图片
-                string[] urlarry = GlobalContext.UpFilePath.Split(",");
-                fileUploadData.fileData.Clear();
-                foreach (var item in urlarry)
+                if (GlobalContext.MQTTIsSendUpFile)
                 {
-                    if (!string.IsNullOrEmpty(item))
+                    string[] urlarry = GlobalContext.UpFilePath.Split(",");
+                    fileUploadData.fileData.Clear();
+                    foreach (var item in urlarry)
                     {
-                        //上传图片
-                        var result = SaveDBbyFileInfo(stPLC_MesData.BarcodeSet, stationCode, stationName, a1Result, item, uuid).Result;
-                        OnMessage(LogType.Error, $"【文件上传】 产品码 [{sn}] " + result.Item2);
+                        if (!string.IsNullOrEmpty(item))
+                        {
+                            //上传图片
+                            var result = SaveDBbyFileInfo(stPLC_MesData.BarcodeSet, stationCode, stationName, a1Result, item, uuid).Result;
+                            OnMessage(LogType.Error, $"【文件上传】 产品码 [{sn}] " + result.Item2);
 
+                        }
                     }
                 }
                 #endregion
 
+
                 string paramJson = JsonConvert.SerializeObject(stPLC_MesData.mesData);
                 int result1 = SwitctProcessData(stationNameStr, items, equipmentCode, processItem
    , workorder_code, batch_num, mtltmrk, plcDate_YMD, supplierCode, sn, pass, CarrierBarcode, "1", MachineId, StationId, "", paramJson);

+ 1 - 1
MainForm/FaForm/Form_Main.resx

@@ -128,7 +128,7 @@
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADO
-        eAUAAk1TRnQBSQFMAgEBNQEAAbgBAgG4AQIBMgEAATIBAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAHI
+        eAUAAk1TRnQBSQFMAgEBNQEAAcABAgHAAQIBMgEAATIBAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAHI
         AwABvAECAgABAQEAARgFAAGgAWgBBhEAAecB8AHqAbwB4gHJAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHI
         AbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHI
         AbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHIAbwB4QHI

File diff suppressed because it is too large
+ 908 - 817
MainForm/FaForm/Form_SystemSet.Designer.cs


+ 63 - 13
MainForm/FaForm/Form_SystemSet.cs

@@ -36,10 +36,6 @@ namespace MainForm
             textBoxServerHost.Text = IniFile.INIGetStringValue(FilePath, "MES", "ServerHost", GlobalContext.ConstServerHost);
             cbSendStationIn.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendStationIn", GlobalContext.ConstIsSend));
             cbSendProcessData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendProcessData", GlobalContext.ConstIsSend));
-            cbSendCheckOneData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendCheckOneData", GlobalContext.ConstIsSend));
-            cbSendWorkingData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendWorkingData", GlobalContext.ConstIsSend));
-            cbSendAlarmData.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsSendAlarmData", GlobalContext.ConstIsSend));
-            chkIsUseMESRoute.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "IsUseMESRoute", GlobalContext.ConstIsSend));  // 启用MES边线(RouteCommunication.dll)
 
             // MQTT配置
             chkIsUseIot.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsUseIot", "False"));
@@ -53,6 +49,8 @@ namespace MainForm
             chkMqttOperateLog.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttOperateLog", GlobalContext.ConstIsSend));  // 上传操作记录
             chkMqttEquiConfig.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttEquiConfig", GlobalContext.ConstIsSend));  // 上传装备配置
             chkMqttProcConfig.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttProcConfig", GlobalContext.ConstIsSend));  // 上传⼯艺配置
+            chkMqttUpFile.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "MQTTIsSendUpFile", GlobalContext.ConstIsSend));  // 上传⼯艺配置
+            chkMqttPassResult.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "IsMqttSendProcessResult", GlobalContext.ConstIsSend));  // 上传⼯艺配置
 
             // AGV配置
             chkIsUseAGV.Checked = bool.Parse(IniFile.INIGetStringValue(FilePath, "AGV", "IsUseAGV", "False"));  // 是否 启用AGV
@@ -67,17 +65,31 @@ namespace MainForm
             bool boolS3 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC3", "false"));
             bool boolS4 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC4", "false"));
             bool boolS5 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC5", "false"));
+            bool boolS6 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC6", "false"));
+            bool boolS7 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC7", "false"));
+            bool boolS8 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC8", "false"));
+            bool boolS9 = bool.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "IsUsePLC9", "false"));
 
             rdbS1.Checked = boolS1;
             rdbS2.Checked = boolS2;
             rdbS3.Checked = boolS3;
             rdbS4.Checked = boolS4;
             rdbS5.Checked = boolS5;
+            rdbS6.Checked = boolS6;
+            rdbS7.Checked = boolS7;
+            rdbS8.Checked = boolS8;
+            rdbS9.Checked = boolS9;
+
             txtPLCAddress1.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine1Address", GlobalContext.ConstMachine1Address);
             txtPLCAddress2.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine2Address", GlobalContext.ConstMachine2Address);
             txtPLCAddress3.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine3Address", GlobalContext.ConstMachine3Address);
             txtPLCAddress4.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine4Address", GlobalContext.ConstMachine4Address);
             txtPLCAddress5.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine5Address", GlobalContext.ConstMachine5Address);
+            txtPLCAddress6.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine6Address", GlobalContext.ConstMachine6Address);
+            txtPLCAddress7.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine7Address", GlobalContext.ConstMachine7Address);
+            txtPLCAddress8.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine8Address", GlobalContext.ConstMachine8Address);
+            txtPLCAddress9.Text = IniFile.INIGetStringValue(FilePath, "Machine", "Machine9Address", GlobalContext.ConstMachine9Address);
+
             numPLCPort.Value = int.Parse(IniFile.INIGetStringValue(FilePath, "Machine", "MachinePort", "0"));
 
             // 产品2
@@ -187,7 +199,30 @@ namespace MainForm
                     IniFile.INIWriteValue(FilePath, "Station", "s5_device_code", txtDeviceCode.Text.Trim());
                     IniFile.INIWriteValue(FilePath, "Station", "s5_station", txtStation.Text.Trim());
                 }
-
+                else if (rdbS6.Checked)
+                {
+                    IniFile.INIWriteValue(FilePath, "Station", "s6_work_station", txtWorkStation.Text.Trim());
+                    IniFile.INIWriteValue(FilePath, "Station", "s6_device_code", txtDeviceCode.Text.Trim());
+                    IniFile.INIWriteValue(FilePath, "Station", "s6_station", txtStation.Text.Trim());
+                }
+                else if (rdbS7.Checked)
+                {
+                    IniFile.INIWriteValue(FilePath, "Station", "s7_work_station", txtWorkStation.Text.Trim());
+                    IniFile.INIWriteValue(FilePath, "Station", "s7_device_code", txtDeviceCode.Text.Trim());
+                    IniFile.INIWriteValue(FilePath, "Station", "s7_station", txtStation.Text.Trim());
+                }
+                else if (rdbS8.Checked)
+                {
+                    IniFile.INIWriteValue(FilePath, "Station", "s8_work_station", txtWorkStation.Text.Trim());
+                    IniFile.INIWriteValue(FilePath, "Station", "s8_device_code", txtDeviceCode.Text.Trim());
+                    IniFile.INIWriteValue(FilePath, "Station", "s8_station", txtStation.Text.Trim());
+                }
+                else if (rdbS9.Checked)
+                {
+                    IniFile.INIWriteValue(FilePath, "Station", "s9_work_station", txtWorkStation.Text.Trim());
+                    IniFile.INIWriteValue(FilePath, "Station", "s9_device_code", txtDeviceCode.Text.Trim());
+                    IniFile.INIWriteValue(FilePath, "Station", "s9_station", txtStation.Text.Trim());
+                }
                 MessageBox.Show("参数保存成功!");
                 GlobalContext.UpdateData();
 
@@ -225,10 +260,6 @@ namespace MainForm
                 IniFile.INIWriteValue(FilePath, "MES", "ServerHost", textBoxServerHost.Text.Trim().ToString());
                 IniFile.INIWriteValue(FilePath, "MES", "IsSendStationIn", cbSendStationIn.Checked.ToString());
                 IniFile.INIWriteValue(FilePath, "MES", "IsSendProcessData", cbSendProcessData.Checked.ToString());
-                IniFile.INIWriteValue(FilePath, "MES", "IsSendCheckOneData", cbSendCheckOneData.Checked.ToString());
-                IniFile.INIWriteValue(FilePath, "MES", "IsSendWorkingData", cbSendWorkingData.Checked.ToString());
-                IniFile.INIWriteValue(FilePath, "MES", "IsSendAlarmData", cbSendAlarmData.Checked.ToString());
-                IniFile.INIWriteValue(FilePath, "MES", "IsUseMESRoute", chkIsUseMESRoute.Checked.ToString());  // 启用MES边线(RouteCommunication.dll)
 
                 MessageBox.Show("参数保存成功!");
                 GlobalContext.UpdateData();
@@ -239,10 +270,7 @@ namespace MainForm
                 mesSetVlaue.Add(textBoxServerHost.Text);
                 mesSetVlaue.Add(cbSendStationIn.Checked.ToString());
                 mesSetVlaue.Add(cbSendProcessData.Checked.ToString());
-                mesSetVlaue.Add(cbSendCheckOneData.Checked.ToString());
-                mesSetVlaue.Add(cbSendWorkingData.Checked.ToString());
-                mesSetVlaue.Add(cbSendAlarmData.Checked.ToString());
-                mesSetVlaue.Add(chkIsUseMESRoute.Checked.ToString());  // 启用MES边线(RouteCommunication.dll)
+
                 String.Join(";", mesSetVlaue);
                 OnMessage(LogType.Info, currentRole + "修改系统值[MES配置]为[" + String.Join(";", mesSetVlaue) + "]");
             }
@@ -271,6 +299,9 @@ namespace MainForm
                 IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttOperateLog", chkMqttOperateLog.Checked.ToString());  // 上传操作记录
                 IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttEquiConfig", chkMqttEquiConfig.Checked.ToString());  // 上传装备配置
                 IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttProcConfig", chkMqttProcConfig.Checked.ToString());  // 上传⼯艺配置
+                IniFile.INIWriteValue(FilePath, "MQTT", "IsMqttSendProcessResult", chkMqttPassResult.Checked.ToString());  // 上传过站结果
+                IniFile.INIWriteValue(FilePath, "MQTT", "MQTTIsSendUpFile", chkMqttUpFile.Checked.ToString());  // 上传非结构化
+
                 MessageBox.Show("参数保存成功!");
                 GlobalContext.UpdateData();
 
@@ -343,12 +374,21 @@ namespace MainForm
                 IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC3", rdbS3.Checked.ToString());
                 IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC4", rdbS4.Checked.ToString());
                 IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC5", rdbS5.Checked.ToString());
+                IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC6", rdbS6.Checked.ToString());
+                IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC7", rdbS7.Checked.ToString());
+                IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC8", rdbS8.Checked.ToString());
+                IniFile.INIWriteValue(FilePath, "Machine", "IsUsePLC9", rdbS9.Checked.ToString());
 
                 IniFile.INIWriteValue(FilePath, "Machine", "Machine1Address", IPAddress.Parse(txtPLCAddress1.Text.Trim()).ToString());
                 IniFile.INIWriteValue(FilePath, "Machine", "Machine2Address", IPAddress.Parse(txtPLCAddress2.Text.Trim()).ToString());
                 IniFile.INIWriteValue(FilePath, "Machine", "Machine3Address", IPAddress.Parse(txtPLCAddress3.Text.Trim()).ToString());
                 IniFile.INIWriteValue(FilePath, "Machine", "Machine4Address", IPAddress.Parse(txtPLCAddress4.Text.Trim()).ToString());
                 IniFile.INIWriteValue(FilePath, "Machine", "Machine5Address", IPAddress.Parse(txtPLCAddress5.Text.Trim()).ToString());
+                IniFile.INIWriteValue(FilePath, "Machine", "Machine6Address", IPAddress.Parse(txtPLCAddress6.Text.Trim()).ToString());
+                IniFile.INIWriteValue(FilePath, "Machine", "Machine7Address", IPAddress.Parse(txtPLCAddress7.Text.Trim()).ToString());
+                IniFile.INIWriteValue(FilePath, "Machine", "Machine8Address", IPAddress.Parse(txtPLCAddress8.Text.Trim()).ToString());
+                IniFile.INIWriteValue(FilePath, "Machine", "Machine9Address", IPAddress.Parse(txtPLCAddress9.Text.Trim()).ToString());
+
                 IniFile.INIWriteValue(FilePath, "Machine", "MachinePort",numPLCPort.Value.ToString());
                 MessageBox.Show("参数保存成功!");
                 GlobalContext.UpdateData();
@@ -360,11 +400,21 @@ namespace MainForm
                 machineSetVlaue.Add(rdbS3.Checked.ToString());
                 machineSetVlaue.Add(rdbS4.Checked.ToString());
                 machineSetVlaue.Add(rdbS5.Checked.ToString());
+                machineSetVlaue.Add(rdbS6.Checked.ToString());
+                machineSetVlaue.Add(rdbS7.Checked.ToString());
+                machineSetVlaue.Add(rdbS8.Checked.ToString());
+                machineSetVlaue.Add(rdbS9.Checked.ToString());
+
                 machineSetVlaue.Add(txtPLCAddress1.Text.Trim());
                 machineSetVlaue.Add(txtPLCAddress2.Text.Trim());
                 machineSetVlaue.Add(txtPLCAddress3.Text.Trim());
                 machineSetVlaue.Add(txtPLCAddress4.Text.Trim());
                 machineSetVlaue.Add(txtPLCAddress5.Text.Trim());
+                machineSetVlaue.Add(txtPLCAddress6.Text.Trim());
+                machineSetVlaue.Add(txtPLCAddress7.Text.Trim());
+                machineSetVlaue.Add(txtPLCAddress8.Text.Trim());
+                machineSetVlaue.Add(txtPLCAddress9.Text.Trim());
+
                 machineSetVlaue.Add(numPLCPort.Value.ToString());
                 String.Join(";", machineSetVlaue);
                 OnMessage(LogType.Info, currentRole + "修改系统值[设备配置]为[" + String.Join(";", machineSetVlaue) + "]");