Ver código fonte

fix:增加天轨机器人调度逻辑

wang.sq@aliyun.com 3 meses atrás
pai
commit
3810d1fa3c

+ 1 - 1
IMCS_CCS/Controllers/CcsController.cs

@@ -77,7 +77,7 @@ namespace IMCS.CCS.Controllers
         /// <returns></returns>
         [Route("api/CutterRobotAction")]
         [HttpPost]
-        public async Task<ActionResult<ResponseECSData>> CutterRobotAction(RequestData<LocationData> data)
+        public async Task<ActionResult<ResponseECSData>> CutterRobotAction(RequestData<CutterLocationData> data)
         {
             return await _httpRequestService.CutterRobotAction(data);
         }

+ 39 - 1
IMCS_CCS/Entitys/RequestData.cs

@@ -38,11 +38,49 @@ namespace IMCS.CCS.Models
         /// 条件限制标志 空或1 限制规则,0不限制
         /// </summary>
         public string IsAllowFlag { get; set; }
+    }
+
+    public class CutterLocationData {
+
+        /// <summary>
+        /// 原库位
+        /// </summary>
+        public string Location { get; set; }
+
+        /// <summary>
+        /// 源库位刀位号
+        public string LocationNo { get; set; }
+
+        /// <summary>
+        /// 取料设备编码
+        /// </summary>
+        public string LocationDevice { get; set; }
+
+        /// <summary>
+        /// 目的库位
+        /// </summary>
+        public string DestLocation { get; set; }
+
+        /// <summary>
+        /// 目的刀位号
+        /// </summary>
+        public string DestLocationNo { get; set; }
+
+        /// <summary>
+        /// 放目标区域设备编码
+        /// </summary>
+        public string DestLocationDevice { get; set; }
+
+        /// <summary>
+        /// 条件限制标志 空或1 限制规则,0不限制
+        /// </summary>
+        public string IsAllowFlag { get; set; }
 
 
 
     }
- 
+
+
     public class UploadFileData
     {
         /// <summary>

+ 37 - 6
IMCS_CCS/IMCS.CCS.xml

@@ -223,7 +223,7 @@
             </summary> 
             <returns></returns>
         </member>
-        <member name="M:IMCS.CCS.Controllers.CcsController.CutterRobotAction(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.LocationData})">
+        <member name="M:IMCS.CCS.Controllers.CcsController.CutterRobotAction(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.CutterLocationData})">
             <summary>
             刀具机器人取放动作: POST: api/CutterRobotAction
             </summary> 
@@ -824,6 +824,37 @@
             条件限制标志 空或1 限制规则,0不限制
             </summary>
         </member>
+        <member name="P:IMCS.CCS.Models.CutterLocationData.Location">
+            <summary>
+            原库位
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "P:IMCS.CCS.Models.CutterLocationData.LocationNo" -->
+        <member name="P:IMCS.CCS.Models.CutterLocationData.LocationDevice">
+            <summary>
+            取料设备编码
+            </summary>
+        </member>
+        <member name="P:IMCS.CCS.Models.CutterLocationData.DestLocation">
+            <summary>
+            目的库位
+            </summary>
+        </member>
+        <member name="P:IMCS.CCS.Models.CutterLocationData.DestLocationNo">
+            <summary>
+            目的刀位号
+            </summary>
+        </member>
+        <member name="P:IMCS.CCS.Models.CutterLocationData.DestLocationDevice">
+            <summary>
+            放目标区域设备编码
+            </summary>
+        </member>
+        <member name="P:IMCS.CCS.Models.CutterLocationData.IsAllowFlag">
+            <summary>
+            条件限制标志 空或1 限制规则,0不限制
+            </summary>
+        </member>
         <member name="P:IMCS.CCS.Models.UploadFileData.fileName">
             <summary>
             文件名称
@@ -1856,12 +1887,12 @@
         </member>
         <member name="M:IMCS.CCS.Services.IHttpRequestService.RobotAction(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.LocationData})">
             <summary>
-            机器人动作取放
+            地轨机器人动作取放
             </summary> 
         </member>
-        <member name="M:IMCS.CCS.Services.IHttpRequestService.CutterRobotAction(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.LocationData})">
+        <member name="M:IMCS.CCS.Services.IHttpRequestService.CutterRobotAction(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.CutterLocationData})">
             <summary>
-            机器人动作取放
+            天轨机器人动作取放
             </summary> 
         </member>
         <member name="M:IMCS.CCS.Services.IHttpRequestService.UploadFile(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.UploadFileData})">
@@ -1944,9 +1975,9 @@
             机器人取放动作
             </summary> 
         </member>
-        <member name="M:IMCS.CCS.Services.HttpRequestService.CutterRobotAction(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.LocationData})">
+        <member name="M:IMCS.CCS.Services.HttpRequestService.CutterRobotAction(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.CutterLocationData})">
             <summary>
-            机器人取放动作
+            天轨机器人取放动作
             </summary> 
         </member>
         <member name="M:IMCS.CCS.Services.HttpRequestService.UploadFile(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.UploadFileData})">

+ 3 - 3
IMCS_CCS/Service/IHttpRequestService .cs

@@ -29,14 +29,14 @@ namespace IMCS.CCS.Services
 
 
         /// <summary>
-        /// 机器人动作取放
+        /// 地轨机器人动作取放
         /// </summary> 
         Task<ResponseECSData> RobotAction(RequestData<LocationData> req);
 
         /// <summary>
-        /// 机器人动作取放
+        /// 天轨机器人动作取放
         /// </summary> 
-        Task<ResponseECSData> CutterRobotAction(RequestData<LocationData> req);
+        Task<ResponseECSData> CutterRobotAction(RequestData<CutterLocationData> req);
 
 
         /// <summary>

+ 39 - 20
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -470,9 +470,9 @@ namespace IMCS.CCS.Services
 
 
         /// <summary>
-        /// 机器人取放动作
+        /// 天轨机器人取放动作
         /// </summary> 
-        public async Task<ResponseECSData> CutterRobotAction(RequestData<LocationData> req)
+        public async Task<ResponseECSData> CutterRobotAction(RequestData<CutterLocationData> req)
         {
             ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId, "执行成功");
             SiemensS7Net s7 = null;
@@ -487,8 +487,8 @@ namespace IMCS.CCS.Services
 
                 if (device == null)
                 {
-                    Log.Instance.WriteLogAdd(ActionTypeEnum.RobotAction + "设备已离线===>>" + JsonConvert.SerializeObject(req),
-                    EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.CutterRobotAction + "设备已离线===>>" + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.CutterRobotAction));
                     responseData.result = "false";
                     responseData.resultMsg = "设备已离线:" + req.url;
                     return responseData;
@@ -506,10 +506,10 @@ namespace IMCS.CCS.Services
                 if (!ConnectionResult.IsSuccess)
                 {
                     s7.ConnectClose();
-                    Log.Instance.WriteLogAdd(ActionTypeEnum.RobotAction + "异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
-                    EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.CutterRobotAction + "异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.CutterRobotAction));
                     responseData.result = "false";
-                    responseData.resultMsg = ActionTypeEnum.RobotAction + "异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req);
+                    responseData.resultMsg = ActionTypeEnum.CutterRobotAction + "异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req);
                     return responseData;
                 }
 
@@ -526,8 +526,8 @@ namespace IMCS.CCS.Services
                     if (!callbackData.isSuccess)
                     {
                         s7.ConnectClose();
-                        Log.Instance.WriteLogAdd(ActionTypeEnum.RobotAction + "====" + callbackData.msg + "====" + JsonConvert.SerializeObject(req),
-                        EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
+                        Log.Instance.WriteLogAdd(ActionTypeEnum.CutterRobotAction + "====" + callbackData.msg + "====" + JsonConvert.SerializeObject(req),
+                        EnumHelper.GetDescription(ActionTypeEnum.CutterRobotAction));
                         responseData.result = "false";
                         responseData.resultMsg = callbackData.msg;
                         return responseData;
@@ -546,8 +546,8 @@ namespace IMCS.CCS.Services
                     if (!callbackData.isSuccess)
                     {
                         s7.ConnectClose();
-                        Log.Instance.WriteLogAdd(ActionTypeEnum.RobotAction + "====" + callbackData.msg + "====" + JsonConvert.SerializeObject(req),
-                        EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
+                        Log.Instance.WriteLogAdd(ActionTypeEnum.CutterRobotAction + "====" + callbackData.msg + "====" + JsonConvert.SerializeObject(req),
+                        EnumHelper.GetDescription(ActionTypeEnum.CutterRobotAction));
                         responseData.result = "false";
                         responseData.resultMsg = callbackData.msg;
                         return responseData;
@@ -570,8 +570,8 @@ namespace IMCS.CCS.Services
                         if (actionAddress.CheckType ? operateResult != actionAddress.Value : operateResult == actionAddress.Value)
                         {
                             s7.ConnectClose();
-                            Log.Instance.WriteLogAdd(ActionTypeEnum.RobotAction + "异常===>>" + "条件不满足" + actionAddress.Address + "值应为:" + actionAddress.Value + "====实际为:" + operateResult + JsonConvert.SerializeObject(req),
-                            EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
+                            Log.Instance.WriteLogAdd(ActionTypeEnum.CutterRobotAction + "异常===>>" + "条件不满足" + actionAddress.Address + "值应为:" + actionAddress.Value + "====实际为:" + operateResult + JsonConvert.SerializeObject(req),
+                            EnumHelper.GetDescription(ActionTypeEnum.CutterRobotAction));
                             responseData.result = "false";
                             responseData.resultMsg = "异常===>>" + "条件不满足" + actionAddress.Address + "值应为:" + actionAddress.Value + "==实际为:" + operateResult;
                             return responseData;
@@ -600,6 +600,25 @@ namespace IMCS.CCS.Services
                             parValue = actionAddress.Value;
                             s7.Write(actionAddress.Address, Convert.ToBoolean(parValue));
                         }
+                        else if (actionAddress.Sort == 3)
+                        {
+                            // 写入源刀位号
+                            parValue = req.data.LocationNo;
+                            if (req.data.LocationNo == null || req.data.LocationNo == "") {
+                                parValue = "0";
+                            }
+                            s7.Write(actionAddress.Address, Convert.ToByte(parValue));
+                        }
+                        else if (actionAddress.Sort == 4)
+                        {
+                            // 写入目的刀位号
+                            parValue = req.data.DestLocationNo;
+                            if (req.data.DestLocationNo == null || req.data.DestLocationNo == "")
+                            {
+                                parValue = "0";
+                            }
+                            s7.Write(actionAddress.Address, Convert.ToByte(parValue));
+                        }
 
                         // 同步TagValue数据状态
                         CcsTagValue tagValueQuery = new CcsTagValue();
@@ -620,22 +639,22 @@ namespace IMCS.CCS.Services
                 s7.ConnectClose();
 
                 //插入回调
-                TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.RobotAction.ToString(),
-                    EnumHelper.GetDescription(ActionTypeEnum.RobotAction), req.taskId, req.taskNodeId);
+                TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.CutterRobotAction.ToString(),
+                    EnumHelper.GetDescription(ActionTypeEnum.CutterRobotAction), req.taskId, req.taskNodeId);
                 taskCallbackData = setCallBackValue(CcsActionAddresses, taskCallbackData);
 
                 // 保存数据
                 await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
-                Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.RobotAction) + "取成功===>>" + JsonConvert.SerializeObject(req)
-                   , EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
+                Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.CutterRobotAction) + "取成功===>>" + JsonConvert.SerializeObject(req)
+                   , EnumHelper.GetDescription(ActionTypeEnum.CutterRobotAction));
                 return responseData;
             }
             catch (Exception ex)
             {
                 // 记录日志
-                Log.Instance.WriteLogAdd(ActionTypeEnum.RobotAction + "取放异常===>>" + ex.Message + JsonConvert.SerializeObject(req),
-                    EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
-                responseData.resultMsg = ActionTypeEnum.RobotAction + "取放异常===>>" + ex.Message + JsonConvert.SerializeObject(req);
+                Log.Instance.WriteLogAdd(ActionTypeEnum.CutterRobotAction + "取放异常===>>" + ex.Message + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.CutterRobotAction));
+                responseData.resultMsg = ActionTypeEnum.CutterRobotAction + "取放异常===>>" + ex.Message + JsonConvert.SerializeObject(req);
                 responseData.result = "false";
 
                 // 关闭plc连接