Przeglądaj źródła

三坐标回调处理

zhuhao 1 rok temu
rodzic
commit
b18ec0f6e9
1 zmienionych plików z 49 dodań i 52 usunięć
  1. 49 52
      IMCS_CCS/Service/Impl/TaskJobService.cs

+ 49 - 52
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -1081,9 +1081,11 @@ namespace IMCS.CCS.Service.Impl
                         posValue = EnumHelper.GetDescription(ThreeCoordinatesFinishedEnum.R);
                         key = (int)ThreeCoordinatesPosEnum.R;
                     }
-
-                    CcsTagValue tagValue2 = tagValues.Where(o => o.Address == posValue && o.TagValue != "0").FirstOrDefault();
-                    if (tagValue != null && tagValue2 != null && (tagValue2.TagValue == "1"))
+                    
+                    CcsTagValue tagValue2 = tagValues.Where(o => o.Address == posValue ).FirstOrDefault();//测量结果
+                    CcsTagValue tagValue3 = tagValues.Where(o => o.Address == "DB200.10").FirstOrDefault();//中间可取
+                    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();
                         requestData.taskId = long.Parse(task.TaskId);
@@ -1097,31 +1099,7 @@ namespace IMCS.CCS.Service.Impl
                             s7.ConnectClose();
                             Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "放三坐标异常===>>" + "PLC连接不上",
                             EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
-                        }
-
-
-                        /*  CcsActionAddress actionAddressQuery = new CcsActionAddress();
-                         actionAddressQuery.Type = "CALLBACK_CHECK_COOR";
-                         List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
-
-                           CcsActionAddress freeActionAdress = new CcsActionAddress();
-                          //查询空闲位置
-                           List<CcsActionAddress> CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK.ToString()).ToList();
-                           foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
-                           {
-                               if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
-                               {
-                                   var operateResult = s7.ReadInt16(actionAddress.Address);
-                                   if (operateResult.ToString() == actionAddress.Value)
-                                   {
-                                       freeActionAdress = actionAddress;
-                                       break;
-                                   }
-                               }
-                           }
-                           //判断是否可取滑台
-                           if (freeActionAdress != null)
-                           {*/
+                        } 
                         //根据sort顺序,查询左中右可取位置,写入地址列表
                         CcsActionAddress actionAddressGet = new CcsActionAddress();
                         actionAddressGet.Type = "CALLBACK_GET_COOR";
@@ -1132,14 +1110,14 @@ namespace IMCS.CCS.Service.Impl
                         requestData.result = tagValue2.TagValue;
                         //根据工件id确认哪个位置已测量,赋值工位id
                         string srcWorkId = task.CallbackFailValue3; //原工件id
-                        var workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.L), 40); 
+                        var workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.L), 60); 
                         if (ToolUtils.ReturnStringByBytes(workIdResult.Content) == srcWorkId)
                         {
                             requestData.stationId = "L";
                         }
                         if (string.IsNullOrEmpty(requestData.stationId))
                         {
-                            workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.M), 40);
+                            workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.M), 60);
                             if (ToolUtils.ReturnStringByBytes(workIdResult.Content) == srcWorkId)
                             {
                                 requestData.stationId = "M";
@@ -1147,7 +1125,7 @@ namespace IMCS.CCS.Service.Impl
                         }
                         if (string.IsNullOrEmpty(requestData.stationId))
                         {
-                            workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.R),40);
+                            workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.R),60);
                             if (ToolUtils.ReturnStringByBytes(workIdResult.Content) == srcWorkId)
                             {
                                 requestData.stationId = "R";
@@ -1160,7 +1138,7 @@ namespace IMCS.CCS.Service.Impl
                             {
                                 if (actionAddress.Value == "workId")
                                 {
-                                    var operateResult = s7.Read(actionAddress.Address, 40) ;
+                                    var operateResult = s7.Read(actionAddress.Address, 60) ;
                                     requestData.workId = ToolUtils.ReturnStringByBytes(operateResult.Content);
                                 }
                                 else if (actionAddress.Value == "procedureNo")
@@ -1177,27 +1155,49 @@ namespace IMCS.CCS.Service.Impl
                             }
                         }
                          
-                        s7.ConnectClose();
-
-                        var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                        ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                        if (result.IsSuccess && responseECSCallback.code == 0)
+                        s7.ConnectClose(); 
+                        if (tagValue2.TagValue == "1")
                         {
-                            task.State = false;
-                            task.UpdateTime = DateTime.Now;
-                            await _taskCallbackService.CreateOrUpdateAndCache(task);
-                            message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
-                            Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                        }
-                        else
+                             var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                            ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                            if (result.IsSuccess && responseECSCallback.code == 0)
+                            {
+                                task.State = false;
+                                task.UpdateTime = DateTime.Now;
+                                await _taskCallbackService.CreateOrUpdateAndCache(task);
+                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
+                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                            }
+                            else
+                            {
+                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+                            }
+                        }else if(tagValue2.TagValue == "2" || tagValue2.TagValue == "3")
                         {
-                            message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                            Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
-                        }
+                            requestData.code = "0";
+                            requestData.msg = "操作失败";
+                            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                            ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                            if (result.IsSuccess && responseECSCallback.code == 0)
+                            {
+                                task.State = false;
+                                task.UpdateTime = DateTime.Now;
+                                await _taskCallbackService.CreateOrUpdateAndCache(task);
+                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
+                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                            }
+                            else
+                            {
+                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+                            }
+                        } 
+                        
                     }
 
                     //回调检测到失败,回调通知ecs
-                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3) || tagValue2 != null)
+                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
                     {
                         bool failFalg = false;
                         if (!string.IsNullOrEmpty(task.FailAddress))
@@ -1227,10 +1227,7 @@ namespace IMCS.CCS.Service.Impl
                                 failFalg = true;
                             }
                         }
-                        if(tagValue2.TagValue == "2" || tagValue2.TagValue == "3")
-                        {
-                            failFalg = true;
-                        } 
+                      
                         if (failFalg)
                         {
                             CallBackRequestData requestData = new CallBackRequestData();