Browse Source

三坐标回调优化, 工位固定M

zhuhao 1 năm trước cách đây
mục cha
commit
cc5ebca7ed

+ 1 - 1
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -1924,7 +1924,7 @@ namespace IMCS.CCS.Services
                 actionAddressQuery.ActionId = actionInfo.Id;
                 List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
 
-                string stationId = req.data.stationId;
+                string stationId = string.IsNullOrEmpty(req.data.stationId) ? "M" : req.data.stationId;
                 //int key = 0;
                 //if(stationId == "L")
                 //{

+ 55 - 50
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -1052,16 +1052,18 @@ namespace IMCS.CCS.Service.Impl
             }
             List<Device> deviceList = await getDeviceList();
             //在线设备
-            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.SendThreeCoordinates.ToString()) && x.State).ToList();
-            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
-            if (task == null)
+            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.SendThreeCoordinates.ToString()) && x.State && deviceList.Any(device => device.Ip == x.IP)).ToList();
+            //taskList = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP));
+            if (taskList == null || taskList.Count == 0)
             {
                 return "无回调任务";
             }
             string message = "";
             try
             { 
-                    DateTime currentTime = DateTime.Now;
+                 DateTime currentTime = DateTime.Now;
+                foreach (TaskCallback task in taskList)
+                {
                     CcsTagValue tagValueQuery = new CcsTagValue();
                     tagValueQuery.Ip = task.IP;
                     List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
@@ -1085,11 +1087,11 @@ namespace IMCS.CCS.Service.Impl
                         posValue = EnumHelper.GetDescription(ThreeCoordinatesFinishedEnum.R);
                         key = (int)ThreeCoordinatesPosEnum.R;
                     }
-                    
-                    CcsTagValue tagValue2 = tagValues.Where(o => o.Address == posValue ).FirstOrDefault();//测量结果
+
+                    CcsTagValue tagValue2 = tagValues.Where(o => o.Address == posValue).FirstOrDefault();//测量结果
                     CcsTagValue tagValue3 = tagValues.Where(o => o.Address == "DB200.10").FirstOrDefault();//中间可取
                     string currentMiddleWorkId = "";   //初始化当前中间工件ID
-                    Log.Instance.WriteLogAdd("三坐标回调开始" + JsonConvert.SerializeObject(tagValue2) + JsonConvert.SerializeObject(tagValue3) , LOG_TITLE_CALLBACK);
+                    Log.Instance.WriteLogAdd("三坐标回调开始" + JsonConvert.SerializeObject(tagValue2) + JsonConvert.SerializeObject(tagValue3), LOG_TITLE_CALLBACK);
                     if (tagValue != null && tagValue2 != null && tagValue3 != null && tagValue3.TagValue == "1")
                     {
                         CallBackThreeCoordinatesRequestData requestData = new CallBackThreeCoordinatesRequestData();
@@ -1104,7 +1106,7 @@ namespace IMCS.CCS.Service.Impl
                             s7.ConnectClose();
                             Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "放三坐标异常===>>" + "PLC连接不上",
                             EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
-                        } 
+                        }
                         //根据sort顺序,查询左中右可取位置,写入地址列表
                         CcsActionAddress actionAddressGet = new CcsActionAddress();
                         actionAddressGet.Type = "CALLBACK_GET_COOR";
@@ -1116,42 +1118,43 @@ namespace IMCS.CCS.Service.Impl
                         //根据工件id确认哪个位置已测量,赋值工位id
                         string srcWorkId = task.CallbackFailValue3; //原工件id
 
-                    var operateResult = s7.Read("DB200.2708", 60);
-                    currentMiddleWorkId = ToolUtils.ReturnStringByBytes(operateResult.Content);
-                    if (!string.IsNullOrEmpty(currentMiddleWorkId))
-                    {
-                        currentMiddleWorkId = currentMiddleWorkId.Trim();
-                    }
-                    requestData.workId = currentMiddleWorkId;
-
-                    Log.Instance.WriteLogAdd("当前中间工件信息==>工件ID" + currentMiddleWorkId + ",当前任务工件ID = " + srcWorkId + ",程序名:" + requestData.workProgramName, LOG_TITLE_CALLBACK);
-                    //foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
-                    //    {
-                    //        if (!string.IsNullOrEmpty(actionAddress.Address))
-                    //        {
-                    //            if (actionAddress.Value == "workId")
-                    //            {
-                    //                var operateResult = s7.Read("DB200.2708", 60) ;
-
-                    //                requestData.workId = ToolUtils.ReturnStringByBytes(operateResult.Content);
-                    //                Log.Instance.WriteLogAdd("当前中间工件信息==>工件ID" + requestData.workId + ",operateResult = " + operateResult, LOG_TITLE_CALLBACK);
-                    //        }
-                    //            else if (actionAddress.Value == "procedureNo")
-                    //            {
-                    //                var operateResult = s7.Read(actionAddress.Address,40);
-                    //                requestData.procedureNo = ToolUtils.ReturnStringByBytes(operateResult.Content);
-                    //            }
-                    //            else if (actionAddress.Value == "workProgramName")
-                    //            {
-                    //                var operateResult = s7.Read(actionAddress.Address,40);
-                    //                requestData.workProgramName = ToolUtils.ReturnStringByBytes(operateResult.Content);
-
-                    //            }
-                    //        }
-                    //    }
-
-                    //当中间位工件ID等于原工件ID
-                    if (srcWorkId == currentMiddleWorkId)
+                        var operateResult = s7.Read("DB200.2708", 60);
+                        currentMiddleWorkId = ToolUtils.ReturnStringByBytes(operateResult.Content);
+                        if (!string.IsNullOrEmpty(currentMiddleWorkId))
+                        {
+                            currentMiddleWorkId = currentMiddleWorkId.Trim();
+                            requestData.workId = currentMiddleWorkId.Trim();
+                        }
+                        
+
+                        Log.Instance.WriteLogAdd("当前中间工件信息==>工件ID" + currentMiddleWorkId + ",当前任务工件ID = " + srcWorkId + ",程序名:" + requestData.workProgramName, LOG_TITLE_CALLBACK);
+                        //foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
+                        //    {
+                        //        if (!string.IsNullOrEmpty(actionAddress.Address))
+                        //        {
+                        //            if (actionAddress.Value == "workId")
+                        //            {
+                        //                var operateResult = s7.Read("DB200.2708", 60) ;
+
+                        //                requestData.workId = ToolUtils.ReturnStringByBytes(operateResult.Content);
+                        //                Log.Instance.WriteLogAdd("当前中间工件信息==>工件ID" + requestData.workId + ",operateResult = " + operateResult, LOG_TITLE_CALLBACK);
+                        //        }
+                        //            else if (actionAddress.Value == "procedureNo")
+                        //            {
+                        //                var operateResult = s7.Read(actionAddress.Address,40);
+                        //                requestData.procedureNo = ToolUtils.ReturnStringByBytes(operateResult.Content);
+                        //            }
+                        //            else if (actionAddress.Value == "workProgramName")
+                        //            {
+                        //                var operateResult = s7.Read(actionAddress.Address,40);
+                        //                requestData.workProgramName = ToolUtils.ReturnStringByBytes(operateResult.Content);
+
+                        //            }
+                        //        }
+                        //    }
+
+                        //当中间位工件ID等于原工件ID
+                        if (srcWorkId == currentMiddleWorkId)
                         {
                             if (tagValue2.TagValue == "1")
                             {
@@ -1191,9 +1194,9 @@ namespace IMCS.CCS.Service.Impl
                                     Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
                                 }
                             }
-                        } 
+                        }
 
-                      s7.ConnectClose();
+                        s7.ConnectClose();
                     }
 
                     //回调检测到失败,回调通知ecs
@@ -1227,7 +1230,7 @@ namespace IMCS.CCS.Service.Impl
                                 failFalg = true;
                             }
                         }
-                      
+
                         if (failFalg)
                         {
                             CallBackRequestData requestData = new CallBackRequestData();
@@ -1252,11 +1255,13 @@ namespace IMCS.CCS.Service.Impl
                             }
                         }
 
-                    
-                }
-                
 
+                    } 
+
+                    Thread.Sleep(1000);
+                }
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
+
             }
             catch (Exception ex)
             {