瀏覽代碼

三坐标滑台逻辑修改

yangniao 2 年之前
父節點
當前提交
587a767eaa

+ 4 - 4
IMCS_CCS/Controllers/CcsController.cs

@@ -177,14 +177,14 @@ namespace IMCS.CCS.Controllers
         }
 
         /// <summary>
-        /// 启动三坐标: POST: api/StartCoordinateMeasuringMachine
+        /// 放三坐标滑台: POST: api/SendThreeCoordinates
         /// </summary> 
         /// <returns></returns>
-        [Route("api/StartThreeCoordinates")]
+        [Route("api/SendThreeCoordinates")]
         [HttpPost]
-        public async Task<ActionResult<ResponseECSData>> StartThreeCoordinates(RequestData<WorkData> data)
+        public async Task<ActionResult<ResponseECSData>> SendThreeCoordinates(RequestData<WorkData> data)
         {
-            return await _httpRequestService.StartThreeCoordinates(data);
+            return await _httpRequestService.SendThreeCoordinates(data);
         }
 
         /// <summary>

+ 9 - 2
IMCS_CCS/Entitys/CcsAction.cs

@@ -71,8 +71,8 @@ namespace IMCS.CCS.Entitys
         StartLabelMachine,
         [EnumDescription("查询三坐标检测空闲位置")]
         QueryThreeCoordinatesFreePos,
-        [EnumDescription("启动三坐标测量")]
-        StartThreeCoordinates,
+        [EnumDescription("放三坐标滑台")]
+        SendThreeCoordinates,
         [EnumDescription("伺服舵机取物品")]
         GetServoStacker,
         [EnumDescription("伺服舵机放物品")]
@@ -107,4 +107,11 @@ namespace IMCS.CCS.Entitys
         读RFID,
         写RFID,
     }
+    public enum ThreeCoordinatesPosEnum
+    {
+         L = 1,
+         M = 2,
+         R = 3,
+    }
+
 }

+ 3 - 1
IMCS_CCS/Entitys/CcsActionAddress.cs

@@ -49,7 +49,9 @@ namespace IMCS.CCS.Entitys
         CALLBACK_FAIL,
         [EnumDescription("回调复位")]
         RESET,
-        
+        [EnumDescription("三坐标放写入")]
+        WRITE_SEND,
+
     }
 
     

+ 11 - 1
IMCS_CCS/Entitys/RequestData.cs

@@ -59,7 +59,17 @@ namespace IMCS.CCS.Models
         /// 工件程序名
         /// </summary>
         public string workProgramName { get; set; }
- 
+
+        /// <summary>
+        /// 放定位
+        /// </summary>
+        public string location { get; set; }
+
+        /// <summary>
+        /// 工位
+        /// </summary>
+        public string stationId { get; set; }
+
     }
     public class RequestToolData
     {

+ 2 - 2
IMCS_CCS/Service/IHttpRequestService .cs

@@ -97,9 +97,9 @@ namespace IMCS.CCS.Services
         Task<ResponseECSData> QueryThreeCoordinatesFreePos(RequestToolData req);
 
         /// <summary>
-        /// 启动三坐标
+        /// 三坐标
         /// </summary> 
-        Task<ResponseECSData> StartThreeCoordinates(RequestData<WorkData> req);
+        Task<ResponseECSData> SendThreeCoordinates(RequestData<WorkData> req);
 
         /// <summary>
         /// 伺服舵机取物品

+ 40 - 36
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -1614,7 +1614,7 @@ namespace IMCS.CCS.Services
                             s7.ConnectClose();
                             Log.Instance.WriteLogAdd(ActionTypeEnum.QueryThreeCoordinatesFreePos + "三坐标检测空闲位置===>>"+ actionAddress.Address + JsonConvert.SerializeObject(req),
                             EnumHelper.GetDescription(ActionTypeEnum.QueryThreeCoordinatesFreePos));
-                            responseData.result = actionAddress.Address;
+                            responseData.result = Enum.GetName(typeof(ThreeCoordinatesPosEnum), actionAddress.Sort);  //actionAddress.Address;
                             return responseData;
                         }
                     }
@@ -1634,9 +1634,9 @@ namespace IMCS.CCS.Services
         }
 
         /// <summary>
-        /// 启动三坐标
+        /// 放三坐标滑台
         /// </summary> 
-        public async Task<ResponseECSData> StartThreeCoordinates(RequestData<WorkData> req)
+        public async Task<ResponseECSData> SendThreeCoordinates(RequestData<WorkData> req)
         {
             ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
             try
@@ -1647,14 +1647,14 @@ namespace IMCS.CCS.Services
 
                 if (device == null)
                 {
-                    Log.Instance.WriteLogAdd(ActionTypeEnum.StartThreeCoordinates + "设备已离线===>>" + JsonConvert.SerializeObject(req),
-                    EnumHelper.GetDescription(ActionTypeEnum.StartThreeCoordinates));
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "设备已离线===>>" + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
                     responseData.result = "false";
                     return responseData;
                 }
 
                 CcsAction actionQuery = new CcsAction();
-                actionQuery.OperateType = ActionTypeEnum.StartThreeCoordinates.ToString();
+                actionQuery.OperateType = ActionTypeEnum.SendThreeCoordinates.ToString();
                 actionQuery.Ip = req.url;
                 CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault(); 
 
@@ -1663,8 +1663,8 @@ namespace IMCS.CCS.Services
                 if (!ConnectionResult.IsSuccess)
                 {
                     s7.ConnectClose();
-                    Log.Instance.WriteLogAdd(ActionTypeEnum.StartThreeCoordinates + "启动三坐标异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
-                    EnumHelper.GetDescription(ActionTypeEnum.StartThreeCoordinates));
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "启动三坐标异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
                     responseData.result = "false";
                     return responseData;
                 }
@@ -1673,33 +1673,24 @@ namespace IMCS.CCS.Services
                 actionAddressQuery.ActionId = actionInfo.Id;
                 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)
+                string stationId = req.data.stationId;
+                int key = 0;
+                if(stationId == "L")
                 {
-                    if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
-                    {
-                        var operateResult = s7.ReadInt16(actionAddress.Address);
-                        if (operateResult.ToString() == actionAddress.Value)
-                        {
-                            freeActionAdress = actionAddress;
-                            break;
-                        }
-                    }
+                    key = (int)ThreeCoordinatesPosEnum.L;
                 }
-                //判断是否存在空闲滑台
-                if(freeActionAdress == null)
+                else if (stationId == "M")
                 {
-                    s7.ConnectClose();
-                    Log.Instance.WriteLogAdd(ActionTypeEnum.StartThreeCoordinates + "启动三坐标异常===>>" + "当前没有空闲位置" + JsonConvert.SerializeObject(req),
-                    EnumHelper.GetDescription(ActionTypeEnum.StartThreeCoordinates));
-                    responseData.result = "false";
-                    return responseData;
+                    key = (int)ThreeCoordinatesPosEnum.M;
                 }
+                else if (stationId == "R")
+                {
+                    key = (int)ThreeCoordinatesPosEnum.R;
+                }
+
 
                 //根据sort顺序,查询左中右空闲位置,写入地址列表
-                List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == freeActionAdress.Sort).ToList();
+                List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
                 foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
                 {
                     if (!string.IsNullOrEmpty(actionAddress.Address))
@@ -1718,22 +1709,35 @@ namespace IMCS.CCS.Services
 
                         Thread.Sleep(SLEEP_TIME);  
                     }
-                }  
+                }
+
+                //查询写入地址列表
+                List<CcsActionAddress> CcsActionAddressWriteSends = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE_SEND.ToString()).ToList();
+                foreach (CcsActionAddress actionAddress in CcsActionAddressWriteSends)
+                {
+                    if (!string.IsNullOrEmpty(actionAddress.Address))
+                    {
+                        string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
+                        s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.location : actionAddress.Value)); ;
+                        Thread.Sleep(SLEEP_TIME);
+                    }
+                }
+                 
                 s7.ConnectClose();
 
                 //插入回调
-                TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.StartThreeCoordinates.ToString(),
-                    EnumHelper.GetDescription(ActionTypeEnum.StartThreeCoordinates), req.taskId, req.taskNodeId); 
+                TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.SendThreeCoordinates.ToString(),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates), req.taskId, req.taskNodeId); 
                
                 await _taskCallbackService.CreateOrUpdateAndCache(setCallBackValue(CcsActionAddresses , taskCallbackData));
-                Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.StartThreeCoordinates) + "启动三坐标成功===>>" + JsonConvert.SerializeObject(req)
-                   , EnumHelper.GetDescription(ActionTypeEnum.StartThreeCoordinates));
+                Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates) + "放三坐标成功===>>" + JsonConvert.SerializeObject(req)
+                   , EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
                 return responseData;
             }
             catch (Exception ex)
             {
-                Log.Instance.WriteLogAdd(ActionTypeEnum.StartThreeCoordinates + "启动三坐标故障===>>" + ex.Message + JsonConvert.SerializeObject(req),
-                    EnumHelper.GetDescription(ActionTypeEnum.StartThreeCoordinates));
+                Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "放三坐标故障===>>" + ex.Message + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
                 responseData.result = "false";
                 return responseData;
             }

+ 6 - 6
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -1018,7 +1018,7 @@ namespace IMCS.CCS.Service.Impl
         }
 
         /// <summary>
-        /// 启动三坐标回调任务
+        /// 三坐标回调任务
         /// </summary> 
         /// <returns></returns>
         public async Task<string> CallbackJob6()
@@ -1036,7 +1036,7 @@ namespace IMCS.CCS.Service.Impl
             //在线设备
             List<Device> deviceList = _deviceService.GetDeviceList();
 
-            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartThreeCoordinates.ToString())).ToList();
+            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.SendThreeCoordinates.ToString())).ToList();
             List<TaskCallback> list = new List<TaskCallback>();
             foreach (Device device in deviceList)
             {
@@ -1058,8 +1058,8 @@ 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();
-                     
-                    if (tagValue != null && (tagValue.TagValue == task.CallbackValue || tagValue.TagValue == task.CallbackValue2))
+                    CcsTagValue tagValue2 = tagValues.Where(o => o.Address == task.Address2).FirstOrDefault();
+                    if (tagValue != null && tagValue2 != null && (tagValue.TagValue == task.CallbackValue && tagValue2.TagValue == task.CallbackValue2))
                     {
                         CallBackThreeCoordinatesRequestData requestData = new CallBackThreeCoordinatesRequestData();
                         requestData.taskId = long.Parse(task.TaskId);
@@ -1071,8 +1071,8 @@ namespace IMCS.CCS.Service.Impl
                         if (!ConnectionResult.IsSuccess)
                         {
                             s7.ConnectClose();
-                            Log.Instance.WriteLogAdd(ActionTypeEnum.StartThreeCoordinates + "启动三坐标异常===>>" + "PLC连接不上" ,
-                            EnumHelper.GetDescription(ActionTypeEnum.StartThreeCoordinates));
+                            Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "放三坐标异常===>>" + "PLC连接不上" ,
+                            EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
                         }
 
 

File diff suppressed because it is too large
+ 0 - 0
IMCS_CCS/wwwroot/db/Tasks.json


Some files were not shown because too many files changed in this diff