Przeglądaj źródła

三坐标回调结果

zhuhao 1 rok temu
rodzic
commit
ff8e3fa81d

+ 10 - 0
IMCS_CCS/Service/IHttpRequestService .cs

@@ -102,6 +102,16 @@ namespace IMCS.CCS.Services
         /// </summary> 
         Task<ResponseECSData> QueryThreeCoordinatesFreePos(RequestToolData req);
 
+        /// <summary>
+        /// 三坐标中间位是否可取
+        /// </summary>
+        Task<ResponseECSData> GetMiddleThreeCoordinates(RequestToolData req);
+
+        /// <summary>
+        /// 三坐标中间位工件ID
+        /// </summary>
+        Task<ResponseECSData> GetMiddleWorkIdThreeCoordinates(RequestToolData req);
+
         /// <summary>
         /// 放三坐标
         /// </summary> 

+ 98 - 0
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -1780,7 +1780,105 @@ namespace IMCS.CCS.Services
                 return responseData;
             }
         }
+        /// <summary>
+        /// 三坐标中间位是否可取
+        /// </summary>
+        public async Task<ResponseECSData> GetMiddleThreeCoordinates(RequestToolData req)
+        {
+            ResponseECSData responseData = new ResponseECSData("", "");
+
+            try
+            {
+                List<Device> devices = _deviceService.GetDeviceList();
+
+                Device device = devices.Where(x => x.Ip.Equals(req.url) && x.Port.Equals(req.port)).FirstOrDefault();
+
+                if (device == null)
+                {
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "设备已离线===>>" + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
+                    responseData.result = "false";
+                    return responseData;
+                } 
+
+                SiemensS7Net s7 = DevicePlcS7.SiemensS7(req.url);
+                HslCommunication.OperateResult ConnectionResult = s7.ConnectServer();
+                if (!ConnectionResult.IsSuccess)
+                {
+                    s7.ConnectClose();
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "三坐标中间位是否可取===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
+                    responseData.result = "false";
+                    return responseData;
+                }
+                var operateResult = s7.ReadInt16("DB200.10");
+                if (operateResult.Content.ToString() != "1")
+                {
+                    s7.ConnectClose();
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "三坐标中间位不可取===>>" + operateResult.Content.ToString() + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
+                    responseData.result = "false";
+                    return responseData;
+                }   
+                s7.ConnectClose(); 
+                return responseData;
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "三坐标中间位===>>" + ex.Message + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
+                responseData.result = "false";
+                return responseData;
+            }
+        }
+        /// <summary>
+        /// 三坐标中间位工件ID
+        /// </summary>
+        public async Task<ResponseECSData> GetMiddleWorkIdThreeCoordinates(RequestToolData req)
+        {
+            ResponseECSData responseData = new ResponseECSData("", "");
+
+            try
+            {
+                List<Device> devices = _deviceService.GetDeviceList();
+
+                Device device = devices.Where(x => x.Ip.Equals(req.url) && x.Port.Equals(req.port)).FirstOrDefault();
+
+                if (device == null)
+                {
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "设备已离线===>>" + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
+                    responseData.result = "false";
+                    return responseData;
+                }
+
+                SiemensS7Net s7 = DevicePlcS7.SiemensS7(req.url);
+                HslCommunication.OperateResult ConnectionResult = s7.ConnectServer();
+                if (!ConnectionResult.IsSuccess)
+                {
+                    s7.ConnectClose();
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "三坐标中间位工件Id===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
+                    responseData.result = "false";
+                    return responseData;
+                }
+
+                var workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.M), 60); 
+                Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "三坐标中间位工件Id===>>" + ToolUtils.ReturnStringByBytes(workIdResult.Content) + JsonConvert.SerializeObject(req),
+                EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
+                responseData.result = ToolUtils.ReturnStringByBytes(workIdResult.Content);
 
+                s7.ConnectClose(); 
+                return responseData;
+            }
+            catch (Exception ex)
+            {
+                Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "三坐标中间位工件Id===>>" + ex.Message + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
+                responseData.result = "false";
+                return responseData;
+            }
+        }
         /// <summary>
         /// 放三坐标滑台
         /// </summary> 

+ 22 - 21
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -1110,27 +1110,28 @@ namespace IMCS.CCS.Service.Impl
                         requestData.result = tagValue2.TagValue;
                         //根据工件id确认哪个位置已测量,赋值工位id
                         string srcWorkId = task.CallbackFailValue3; //原工件id
-                        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), 60);
-                            if (ToolUtils.ReturnStringByBytes(workIdResult.Content) == srcWorkId)
-                            {
-                                requestData.stationId = "M";
-                            }
-                        }
-                        if (string.IsNullOrEmpty(requestData.stationId))
-                        {
-                            workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.R),60);
-                            if (ToolUtils.ReturnStringByBytes(workIdResult.Content) == srcWorkId)
-                            {
-                                requestData.stationId = "R";
-                            }
-                        }
+                        requestData.stationId = "M";
+                    //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), 60);
+                    //        if (ToolUtils.ReturnStringByBytes(workIdResult.Content) == srcWorkId)
+                    //        {
+                    //            requestData.stationId = "M";
+                    //        }
+                    //    }
+                    //    if (string.IsNullOrEmpty(requestData.stationId))
+                    //    {
+                    //        workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.R),60);
+                    //        if (ToolUtils.ReturnStringByBytes(workIdResult.Content) == srcWorkId)
+                    //        {
+                    //            requestData.stationId = "R";
+                    //        }
+                    //    }
 
                         foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
                         {