Browse Source

RFID不一致报警
获取千机质检结果

oyq28 8 months ago
parent
commit
7dfdaaebdd

+ 4 - 1
IMCS_CCS/Model/vo/RequestOpcUaData.cs

@@ -35,6 +35,8 @@ namespace IMCS_CCS.Model.vo
 
 
         public string prgName
         public string prgName
         { get; set; }
         { get; set; }
+        public string check
+        { get; set; }
 
 
         /// <summary>
         /// <summary>
         /// 子文件集合
         /// 子文件集合
@@ -101,6 +103,7 @@ namespace IMCS_CCS.Model.vo
         SetTool,
         SetTool,
         DeleteOrSetTool,
         DeleteOrSetTool,
         ToolNoData,
         ToolNoData,
-        UploadFileList
+        UploadFileList,
+        Collect
     }
     }
 }
 }

+ 59 - 1
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -28,11 +28,15 @@ using Flurl.Util;
 using HslCommunication.Enthernet;
 using HslCommunication.Enthernet;
 using MySqlX.XDevAPI.Common;
 using MySqlX.XDevAPI.Common;
 using Newtonsoft.Json.Linq;
 using Newtonsoft.Json.Linq;
+using StackExchange.Redis;
+using IMCS.CCS.Common.Redis;
 
 
 namespace IMCS.CCS.Services
 namespace IMCS.CCS.Services
 {
 {
     public class HttpRequestService : IHttpRequestService
     public class HttpRequestService : IHttpRequestService
     {
     {
+        private readonly IRedisService _redisService;
+
         private readonly IDeviceService _deviceService;
         private readonly IDeviceService _deviceService;
 
 
         private readonly ITaskCallbackService _taskCallbackService;
         private readonly ITaskCallbackService _taskCallbackService;
@@ -67,12 +71,17 @@ namespace IMCS.CCS.Services
 
 
         private static Dictionary<string, string> ipDict = new Dictionary<string, string>();
         private static Dictionary<string, string> ipDict = new Dictionary<string, string>();
 
 
-        public HttpRequestService(IDeviceService deviceService, ITaskCallbackService taskCallbackService,
+        private static List<string> jList = new List<string>();
+
+        private static Dictionary<string, string> jIp = new Dictionary<string, string>();
+
+        public HttpRequestService(IRedisService redisService, IDeviceService deviceService, ITaskCallbackService taskCallbackService,
                                   ICcsActionService ccsActionService, ICcsTagValueService ccsTagValueService,
                                   ICcsActionService ccsActionService, ICcsTagValueService ccsTagValueService,
                                   IEquipmentMonitorService equipmentMonitorService, ICcsActionAddressService ccsActionAddressService,
                                   IEquipmentMonitorService equipmentMonitorService, ICcsActionAddressService ccsActionAddressService,
                                   IApiRequestService apiRequestService, ITaskJobService taskJobService,
                                   IApiRequestService apiRequestService, ITaskJobService taskJobService,
                                   IConfiguration configuration)
                                   IConfiguration configuration)
         {
         {
+            _redisService = redisService;
             _deviceService = deviceService;
             _deviceService = deviceService;
             _taskCallbackService = taskCallbackService;
             _taskCallbackService = taskCallbackService;
             _ccsActionService = ccsActionService;
             _ccsActionService = ccsActionService;
@@ -116,6 +125,20 @@ namespace IMCS.CCS.Services
                 ipDict.Add("10.161.30.246", "DB1.118");
                 ipDict.Add("10.161.30.246", "DB1.118");
                 ipDict.Add("10.161.30.247", "DB1.120");
                 ipDict.Add("10.161.30.247", "DB1.120");
             }
             }
+            if (jList.Count == 0)
+            {
+                jList.Add("1");
+                jList.Add("2");
+                jList.Add("3");
+            }
+            if (jIp.Count == 0)
+            {
+                Console.WriteLine("jIp:" + jIp.Count);
+                jIp.Add("1","10.161.30.245");
+                jIp.Add("2","10.161.30.246");
+                jIp.Add("3","10.161.30.247");
+            }
+
         }
         }
 
 
         /// <summary>
         /// <summary>
@@ -549,6 +572,41 @@ namespace IMCS.CCS.Services
                 await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
                 await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
                 Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.RobotAction) + "操作成功===>>" + JsonConvert.SerializeObject(req)
                 Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.RobotAction) + "操作成功===>>" + JsonConvert.SerializeObject(req)
                    , EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
                    , EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
+
+                //try catch 包起来不影响正常流程
+                try
+                {
+                    //下发任务成功后,查询千机质检结果
+                    //如果源目标为是机床,才去查询
+                    if (jList.Contains(req.data.location))
+                    {
+                        RequestOpcUaData deviceReq = new RequestOpcUaData();
+                        deviceReq.ServerUrl = "opc.tcp://" + jIp[req.data.location] + ":4840";
+                        deviceReq.UserName = "OpcUaClient";
+                        deviceReq.Password = "12345678";
+                        deviceReq.Type = OpcUaActionTypeEnum.Collect.ToString();
+                        deviceReq.Ip = jIp[req.data.location];
+                        deviceReq.check = "1";
+                        var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, mazakUrlContext, deviceReq, null);
+                        ResponseOpcUaData responseOpcUaData = JsonConvert.DeserializeObject<ResponseOpcUaData>(Result.Message);
+                        if (!Result.IsSuccess || !responseOpcUaData.result)
+                        {
+                            if (responseOpcUaData.values != null)
+                            {
+                                await _redisService.Database.StringSetAsync("QJ:" + req.taskNodeId, responseOpcUaData.values[0]);
+                            }
+                            Log.Instance.WriteLogAdd(ActionTypeEnum.RobotAction + "查询千机质检结果===>>" + JsonConvert.SerializeObject(responseOpcUaData),
+                       EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
+
+                        }
+                    }
+                }catch(Exception e)
+                {
+                    Log.Instance.WriteLogAdd(ActionTypeEnum.RobotAction + "查询千机质检结果异常===>>" + e.StackTrace + JsonConvert.SerializeObject(req),
+                    EnumHelper.GetDescription(ActionTypeEnum.RobotAction));
+                }
+                
+
                 return responseData;
                 return responseData;
             }
             }
             catch (Exception ex)
             catch (Exception ex)

+ 14 - 2
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -87,6 +87,8 @@ namespace IMCS.CCS.Service.Impl
 
 
         private string RFID = "RFID:";
         private string RFID = "RFID:";
 
 
+        private string RFIDWARN = "RFIDWARN:";
+
         private string LOG_RESOURCE_STATE = "设备状态";
         private string LOG_RESOURCE_STATE = "设备状态";
 
 
         private static List<string> sList = new List<string>();
         private static List<string> sList = new List<string>();
@@ -327,6 +329,7 @@ namespace IMCS.CCS.Service.Impl
                     requestData.taskId = long.Parse(task.TaskId);
                     requestData.taskId = long.Parse(task.TaskId);
                     requestData.taskNodeId = long.Parse(task.TaskNodeId);
                     requestData.taskNodeId = long.Parse(task.TaskNodeId);
                     var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
                     var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                    Log.Instance.WriteLogAdd(requestData.taskNodeId + "回调请求结果:" + result, LOG_TITLE_CALLBACK);
                     ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
                     ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
                     if (result.IsSuccess && responseECSCallback.code == 0)
                     if (result.IsSuccess && responseECSCallback.code == 0)
                     {
                     {
@@ -432,6 +435,9 @@ namespace IMCS.CCS.Service.Impl
                     plcS7.ConnectClose();
                     plcS7.ConnectClose();
                     rfid.success = false;
                     rfid.success = false;
                     rfid.msg = task.Id + ":RFID托盘校验失败,imcs和RFID托盘信息不一致";
                     rfid.msg = task.Id + ":RFID托盘校验失败,imcs和RFID托盘信息不一致";
+
+                    await _redisService.Database.StringSetAsync(RFIDWARN + "trayNo", task.TaskNodeId+":读取imcs_redis数据_" + JsonConvert.SerializeObject(imcsRfid) + ",读取RFID数据_" + readResult.ToString());
+
                     return rfid;
                     return rfid;
                 }
                 }
                 
                 
@@ -661,9 +667,14 @@ namespace IMCS.CCS.Service.Impl
                         // 任务执行完毕,删除临时存储的缓存数据
                         // 任务执行完毕,删除临时存储的缓存数据
                         Console.WriteLine("任务执行完成,删除临时校验的缓存数据,任务状态"+task.CallbackValue+"==taskID:"+ task.TaskId+"==taskNodeID:"+ task.TaskNodeId);
                         Console.WriteLine("任务执行完成,删除临时校验的缓存数据,任务状态"+task.CallbackValue+"==taskID:"+ task.TaskId+"==taskNodeID:"+ task.TaskNodeId);
                         await _redisService.Database.KeyDeleteAsync(RFID + task.TaskId + task.TaskNodeId);
                         await _redisService.Database.KeyDeleteAsync(RFID + task.TaskId + task.TaskNodeId);
+                        await _redisService.Database.KeyDeleteAsync(RFIDWARN + "trayNo");     
+                        
+                        
+
+
 
 
                         //执行位清零
                         //执行位清零
-                      
+
                         if (ConnectionResult.IsSuccess)
                         if (ConnectionResult.IsSuccess)
                         {
                         {
                             string plcRead = s7.ReadInt16("DB1.16").Content.ToString();
                             string plcRead = s7.ReadInt16("DB1.16").Content.ToString();
@@ -691,6 +702,7 @@ namespace IMCS.CCS.Service.Impl
                         requestData.taskNodeId = long.Parse(task.TaskNodeId);
                         requestData.taskNodeId = long.Parse(task.TaskNodeId);
 
 
                         var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
                         var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                        Log.Instance.WriteLogAdd(requestData.taskNodeId + "回调请求结果:" + result, LOG_TITLE_CALLBACK);
                         ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
                         ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
                         if (result.IsSuccess && responseECSCallback.code == 0)
                         if (result.IsSuccess && responseECSCallback.code == 0)
                         {
                         {
@@ -783,7 +795,7 @@ namespace IMCS.CCS.Service.Impl
             }
             }
             catch (Exception ex)
             catch (Exception ex)
             {
             {
-                Log.Instance.WriteLogAdd("回调异常===>>" + ex.Message, LOG_TITLE_CALLBACK);
+                Log.Instance.WriteLogAdd("回调异常===>>" + ex.StackTrace+","+ex.Message, LOG_TITLE_CALLBACK);
                 return "回调异常" + ex.Message;
                 return "回调异常" + ex.Message;
             }
             }
         }
         }