lxb 1 jaar geleden
bovenliggende
commit
e542ce0a09

BIN
.vs/IMCS_CCS/v16/.suo


+ 4 - 0
IMCS_CCS/Entitys/CcsActionAddress.cs

@@ -48,6 +48,10 @@ namespace IMCS.CCS.Entitys
         WRITE_CHECK,
         [EnumDescription("校验")]
         CHECK,
+        [EnumDescription("校验")]
+        CHECK_GET,
+        [EnumDescription("校验")]
+        CHECK_SEND,
         [EnumDescription("回调")]
         CALLBACK,
         [EnumDescription("失败回调")]

+ 32 - 25
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -152,10 +152,18 @@ namespace IMCS.CCS.Services
                 } 
                 CcsActionAddress actionAddressQuery = new CcsActionAddress();
                 actionAddressQuery.ActionId = actionInfo.Id;
-                List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery); 
-               
+                List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
+
                 //查询条件
-                List<CcsActionAddress> CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK.ToString()).ToList();
+                List<CcsActionAddress> CcsActionAddressChecks = new List<CcsActionAddress>();
+                if (req.data.taskType == "1" && (req.data.destLocation == "30" || req.data.destLocation == "900")) //取料
+                {
+                    CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK_GET.ToString()).ToList();
+                }
+                else if (req.data.taskType == "1" && (req.data.destLocation != "30" && req.data.destLocation != "900")) //放料
+                {
+                    CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK_SEND.ToString()).ToList();
+                }
                 foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
                 {
                     if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
@@ -212,30 +220,29 @@ namespace IMCS.CCS.Services
                 bool checkFlag = true;
                 foreach (CcsActionAddress actionAddress in CcsActionAddressWriteChecks)
                 {
-                    if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
-                    {
-                        string operateResult = s7.ReadInt16(actionAddress.Address).Content.ToString();
-                        if (operateResult != actionAddress.Value)
+                    if (!string.IsNullOrEmpty(actionAddress.Address))
+                    { 
+                        //取参数传参值
+                        string dataValue = getProperties(req.data, actionAddress.Description); 
+                        //读取写入结果
+                        string readWriteResult = s7.ReadInt16(actionAddress.Address).Content.ToString();
+                        if(dataValue != readWriteResult)
                         {
-                            //取参数传参值
-                            string dataValue = getProperties(req.data, actionAddress.Description); 
-                            //读取写入结果
-                            string readWriteResult = s7.ReadInt16(actionAddress.Address).Content.ToString();
-                            if(dataValue != readWriteResult)
-                            {
-                                s7.ConnectClose();
-                                Log.Instance.WriteLogAdd(ActionTypeEnum.RobotAction + "异常===>>" + "写入失败,plc没有写入相应的值" + JsonConvert.SerializeObject(req),
-                                EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
-                                responseData.result = "false";
-                                checkFlag = false;
-                                return responseData;
-                            } 
-                        }
-                    }
-                    if (!checkFlag)
-                    {
-                        break;
+                            checkFlag = false;
+                            break;
+                        } 
+                        
                     }
+                    
+                }
+                //不通过不写执行
+                if (!checkFlag)
+                {
+                    s7.ConnectClose();
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.RobotAction + "异常===>>" + "写入失败,plc没有写入相应的值" + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
+                    responseData.result = "false"; 
+                    return responseData; 
                 }
                 //二次写入地址列表
                 List<CcsActionAddress> CcsActionAddressWriteSeconds = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE_SECOND.ToString()).ToList();

+ 72 - 66
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -353,7 +353,20 @@ namespace IMCS.CCS.Service.Impl
 
                     if ((callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue) )
                     {
-                        CallBackRequestData requestData = new CallBackRequestData();
+                        //执行位清零
+                        SiemensS7Net s7 = DevicePlcS7.SiemensS7(task.IP);
+                        HslCommunication.OperateResult ConnectionResult = s7.ConnectServer();
+                        if (ConnectionResult.IsSuccess)
+                        {
+                            s7.Write("DB2.10", Convert.ToInt16("0"));
+                        }
+                        s7.ConnectClose();
+
+                        task.State = false;
+                        task.UpdateTime = DateTime.Now;
+                        await _taskCallbackService.CreateOrUpdateAndCache(task);
+
+                        /*CallBackRequestData requestData = new CallBackRequestData();
                         requestData.taskId = long.Parse(task.TaskId);
                         requestData.taskNodeId = long.Parse(task.TaskNodeId);
                        
@@ -385,73 +398,66 @@ namespace IMCS.CCS.Service.Impl
                                 message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
                                 Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
                             }
-                           
-                        }
-                        //执行位清零
-                        SiemensS7Net s7 = DevicePlcS7.SiemensS7(task.IP);
-                        HslCommunication.OperateResult ConnectionResult = s7.ConnectServer();
-                        if (ConnectionResult.IsSuccess)
-                        {
-                            s7.Write("DB2.10", Convert.ToInt16("0")); 
-                        }
-                        s7.ConnectClose();
+                           */
                     }
-                    //回调检测到失败,回调通知ecs
-                    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
-                    {
-                        bool failFalg = false;
-                        if (!string.IsNullOrEmpty(task.FailAddress))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (!string.IsNullOrEmpty(task.FailAddress2))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (!string.IsNullOrEmpty(task.FailAddress3))
-                        {
-                            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
-
-                            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
-                            {
-                                failFalg = true;
-                            }
-                        }
-                        if (failFalg)
-                        {
-                            CallBackRequestData requestData = new CallBackRequestData();
-                            requestData.taskId = long.Parse(task.TaskId);
-                            requestData.taskNodeId = long.Parse(task.TaskNodeId);
-                            requestData.code = "0";
-                            requestData.msg = "操作失败";
-                            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                            if (result.IsSuccess)
-                            {
-                                task.State = false;
-                                task.UpdateTime = DateTime.Now;
-                                await _taskCallbackService.CreateOrUpdateAndCache(task);
-                                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
-                                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                            }
-                            else
-                            {
-                                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
-                            }
-                        }
+                      
                     }
-                    Thread.Sleep(1000);
-                }
+                //    //回调检测到失败,回调通知ecs
+                //    if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
+                //    {
+                //        bool failFalg = false;
+                //        if (!string.IsNullOrEmpty(task.FailAddress))
+                //        {
+                //            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
+
+                //            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                //            {
+                //                failFalg = true;
+                //            }
+                //        }
+                //        if (!string.IsNullOrEmpty(task.FailAddress2))
+                //        {
+                //            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
+
+                //            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                //            {
+                //                failFalg = true;
+                //            }
+                //        }
+                //        if (!string.IsNullOrEmpty(task.FailAddress3))
+                //        {
+                //            List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
+
+                //            if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
+                //            {
+                //                failFalg = true;
+                //            }
+                //        }
+                //        if (failFalg)
+                //        {
+                //            CallBackRequestData requestData = new CallBackRequestData();
+                //            requestData.taskId = long.Parse(task.TaskId);
+                //            requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                //            requestData.code = "0";
+                //            requestData.msg = "操作失败";
+                //            var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                //            if (result.IsSuccess)
+                //            {
+                //                task.State = false;
+                //                task.UpdateTime = DateTime.Now;
+                //                await _taskCallbackService.CreateOrUpdateAndCache(task);
+                //                message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
+                //                Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
+                //            }
+                //            else
+                //            {
+                //                message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                //                Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
+                //            }
+                //        }
+                //    }
+                //    Thread.Sleep(1000);
+                //}
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)

BIN
IMCS_CCS/bin/Debug/netcoreapp3.1/IMCS_CCS.dll


BIN
IMCS_CCS/bin/Debug/netcoreapp3.1/IMCS_CCS.pdb


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


BIN
IMCS_CCS/obj/Debug/netcoreapp3.1/IMCS_CCS.dll


BIN
IMCS_CCS/obj/Debug/netcoreapp3.1/IMCS_CCS.pdb


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