zhuhao před 2 roky
rodič
revize
2c748ab688
1 změnil soubory, kde provedl 41 přidání a 24 odebrání
  1. 41 24
      IMCS_CCS/Service/Impl/HttpRequestService.cs

+ 41 - 24
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -1244,33 +1244,50 @@ namespace IMCS.CCS.Services
                             }
                         }
                     }
-
-                    //查询写入地址列表
-                    List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
-                    if(CcsActionAddressWrites.Count < 2)
-                    {
-                        s7.ConnectClose();
-                        Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "启动程序异常===>>" + "地址错误" + JsonConvert.SerializeObject(req),
-                        EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
-                        responseData.result = "false";
-                        return responseData;
-                    }
+                    if(device.Description.Contains("哈默"))
+                    {                    
+                        //查询写入地址列表
+                        List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
+                        if(CcsActionAddressWrites.Count < 2)
+                        {
+                            s7.ConnectClose();
+                            Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "启动程序异常===>>" + "地址错误" + JsonConvert.SerializeObject(req),
+                            EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
+                            responseData.result = "false";
+                            return responseData;
+                        }
                     
-                    CcsActionAddress CcsActionAddressWriteCheck = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE_CHECK.ToString()).FirstOrDefault();
-                    string writeCheckResult = s7.ReadInt16(CcsActionAddressWriteCheck.Address).Content.ToString();
-                    if(writeCheckResult == "0")
+                        CcsActionAddress CcsActionAddressWriteCheck = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE_CHECK.ToString()).FirstOrDefault();
+                        string writeCheckResult = s7.ReadInt16(CcsActionAddressWriteCheck.Address).Content.ToString();
+                        if(writeCheckResult == "0")
+                        {
+                            Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "启动程序异常===>>" + "程序编号没有应用" + JsonConvert.SerializeObject(req),
+                            EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
+                            responseData.result = "false";
+                            return responseData;
+                        } 
+                        //写入海德汉启动信号
+                        s7.Write(CcsActionAddressWrites[1].Address, Convert.ToInt16(CcsActionAddressWrites[1].Value) );
+                        //重置清零
+                        s7.Write(CcsActionAddressWrites[0].Address, Convert.ToInt16("0"));
+                        s7.Write(CcsActionAddressWriteCheck.Address, Convert.ToInt16("0"));
+                    }else if (device.Description.Contains("德玛吉"))
                     {
-                        Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "启动程序异常===>>" + "程序编号没有应用" + JsonConvert.SerializeObject(req),
-                        EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
-                        responseData.result = "false";
-                        return responseData;
+                        //查询写入地址列表
+                        List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
+                        foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
+                        {
+                            if (!string.IsNullOrEmpty(actionAddress.Address))
+                            {
+                                string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
+                                s7.Write(actionAddress.Address, Convert.ToInt16(actionAddress.Value));
+                                Thread.Sleep(SLEEP_TIME);
+                            }
+                        }
+
                     } 
-                    //写入海德汉启动信号
-                    s7.Write(CcsActionAddressWrites[1].Address, Convert.ToInt16(CcsActionAddressWrites[1].Value) );
-                    //重置清零
-                    s7.Write(CcsActionAddressWrites[0].Address, Convert.ToInt16("0"));
-                    s7.Write(CcsActionAddressWriteCheck.Address, Convert.ToInt16("0"));
-                    s7.ConnectClose();  
+
+                     s7.ConnectClose();  
 
                     //插入回调
                     TaskCallback taskCallbackData = new TaskCallback(actionInfo.PlcIp, ActionTypeEnum.StartNCProgram.ToString(),