Browse Source

修改代码

zhuhao 2 years ago
parent
commit
4339720550

+ 15 - 0
IMCS_CCS/Entitys/CallBackThreeCoordinatesRequestData.cs

@@ -29,5 +29,20 @@ namespace IMCS.CCS.Entitys
         /// 工位Id
         /// </summary>
         public string stationId { get; set; }
+
+        /// <summary>
+        /// 程序名
+        /// </summary>
+        public string workProgramName { get; set; }
+
+        /// <summary>
+        /// 工序编号
+        /// </summary>
+        public string procedureNo { get; set; }
+
+        /// <summary>
+        /// 结果
+        /// </summary>
+        public string result { get; set; }
     }
 }

+ 9 - 0
IMCS_CCS/Entitys/CcsAction.cs

@@ -114,4 +114,13 @@ namespace IMCS.CCS.Entitys
          R = 3,
     }
 
+    public enum ThreeCoordinatesFinishedEnum
+    {
+        [EnumDescription("db200.18.0")]
+        L,
+        [EnumDescription("db200.20.0")]
+        M,
+        [EnumDescription("db200.22.0")]
+        R, 
+    }
 }

+ 4 - 3
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -1727,9 +1727,10 @@ namespace IMCS.CCS.Services
 
                 //插入回调
                 TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.SendThreeCoordinates.ToString(),
-                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates), req.taskId, req.taskNodeId); 
-               
-                await _taskCallbackService.CreateOrUpdateAndCache(setCallBackValue(CcsActionAddresses , taskCallbackData));
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates), req.taskId, req.taskNodeId);
+                taskCallbackData = setCallBackValue(CcsActionAddresses, taskCallbackData); 
+                taskCallbackData.Description = stationId; 
+                await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
                 Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates) + "放三坐标成功===>>" + JsonConvert.SerializeObject(req)
                    , EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
                 return responseData;

+ 64 - 42
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -1058,12 +1058,32 @@ namespace IMCS.CCS.Service.Impl
                     tagValueQuery.Ip = task.IP; 
                     List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
                     CcsTagValue tagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
-                    CcsTagValue tagValue2 = tagValues.Where(o => o.Address == task.Address2).FirstOrDefault();
-                    if (tagValue != null && tagValue2 != null && (tagValue.TagValue == task.CallbackValue && tagValue2.TagValue == task.CallbackValue2))
+                    //点位放在描述里判断左中右
+                    string pos = task.Description;
+                    string posValue = "";
+                    int key = 0;
+                    if (pos == "L")
+                    {
+                        posValue = EnumHelper.GetDescription(ThreeCoordinatesFinishedEnum.L);
+                        key = (int)ThreeCoordinatesPosEnum.L;
+                    }
+                    else if (pos == "M")
+                    {
+                        posValue = EnumHelper.GetDescription(ThreeCoordinatesFinishedEnum.M);
+                        key = (int)ThreeCoordinatesPosEnum.M;
+                    }
+                    else if (pos == "R")
+                    {
+                        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 && (tagValue.TagValue == task.CallbackValue ))
                     {
                         CallBackThreeCoordinatesRequestData requestData = new CallBackThreeCoordinatesRequestData();
                         requestData.taskId = long.Parse(task.TaskId);
-                        requestData.taskNodeId = long.Parse(task.TaskNodeId); 
+                        requestData.taskNodeId = long.Parse(task.TaskNodeId);
 
                         //查询三坐标已测量工件id和工位
                         SiemensS7Net s7 = DevicePlcS7.SiemensS7(task.IP);
@@ -1071,68 +1091,70 @@ namespace IMCS.CCS.Service.Impl
                         if (!ConnectionResult.IsSuccess)
                         {
                             s7.ConnectClose();
-                            Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "放三坐标异常===>>" + "PLC连接不上" ,
+                            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 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();
-                            actionAddressQuery.Type = "CALLBACK_GET_COOR";
-                            actionAddressQuery.Sort = freeActionAdress.Sort;
-                            List<CcsActionAddress> GetCcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
+                            actionAddressGet.Type = "CALLBACK_GET_COOR";
+                            actionAddressGet.Sort = key;
+                            List<CcsActionAddress> GetCcsActionAddresses = _ccsActionAddressService.GetList(actionAddressGet);
 
+                            //赋值测量结果
+                             requestData.result = tagValue2.TagValue;
                             //赋值工位id
-                            requestData.stationId = freeActionAdress.Address;
+                            requestData.stationId = "";// freeActionAdress.Address;
                             foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
                             {
                                 if (!string.IsNullOrEmpty(actionAddress.Address))
-                                { 
-                                     if (actionAddress.Value == "workId")
+                                {
+                                    if (actionAddress.Value == "workId")
                                     {
                                         var operateResult = s7.ReadString(actionAddress.Address);
                                         requestData.workId = operateResult.ToString();
                                     }
-                                   /* else if (actionAddress.Value == "procedureNo")
+                                    else if (actionAddress.Value == "procedureNo")
                                     {
-                                        s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.procedureNo, 20));
-                                    }
+                                    var operateResult = s7.ReadString(actionAddress.Address);
+                                    requestData.procedureNo = operateResult.ToString();
+                                     }
                                     else if (actionAddress.Value == "workProgramName")
                                     {
-                                        var operateResult = s7.ReadString(actionAddress.Address);
-
-                                        
+                                    var operateResult = s7.ReadString(actionAddress.Address);
+                                    requestData.workProgramName = operateResult.ToString();
 
-                                    }*/
+                                    }
 
                                 }
                             }
 
 
-                        }
-                        s7.ConnectClose(); 
+                       // }
+                        s7.ConnectClose();
 
                         var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
                         ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);