| | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | |
| | | WriteDebug("线ç¨ç»è®¡æ¥å¿", "çº¿ç¨æ°" + ThreadPool.ThreadCount); |
| | | //WriteDebug("线ç¨ç»è®¡æ¥å¿", "çº¿ç¨æ°" + ThreadPool.ThreadCount); |
| | | |
| | | //CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | CommonStackerCrane commonStackerCrane = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC01") as CommonStackerCrane; |
| | | try |
| | | { |
| | | { |
| | | if (commonStackerCrane != null) |
| | | { |
| | | //WriteDebug("大å åæºè¿è¡æ¥å¿", $"大å åæºä»»å¡æ§è¡ä¸..."); |
| | |
| | | { |
| | | Dt_Task? task = GetTask(commonStackerCrane); |
| | | if (task != null) |
| | | { |
| | | |
| | | { |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"大å åæºä»»å¡å·{task.TaskNum}"); |
| | | StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | |
| | | //读å大å åæºä»»å¡å·åä»»å¡å®æç¡®è®¤ç¶æï¼å 为å°è£
çäºä»¶ç»å¸¸ä¸è§¦åï¼æä»¥å ä¸ªç´æ¥è¯»çé»è¾ï¼ä»¥å
åºç°å åæºä¸ç´æ¥å¤äºçå¾
wcsç¡®è®¤ï¼ |
| | | byte IsOver = commonStackerCrane.Communicator.Read<byte>("DB106.22"); |
| | | int tasknum = commonStackerCrane.Communicator.Read<int>("DB106.18"); |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"大å åæºSC01ä»»å¡å·å åæºä»»å¡å·ï¼{tasknum}ç¶æï¼{IsOver}"); |
| | | //WriteDebug(nameof(CommonStackerCraneJob), $"大å åæºSC01ä»»å¡å·å åæºä»»å¡å·ï¼{tasknum}ç¶æï¼{IsOver}"); |
| | | if (IsOver == 6) |
| | | { |
| | | if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) |
| | |
| | | { |
| | | IsAllow = commonStackerCrane.Communicator.Read<short>("DB2.8.0"); |
| | | } |
| | | if (IsAllow == 1)//å¦æä¸º1ï¼åå
计AGVè¿å
¥ï¼åä¼ WMS |
| | | //æ¥è¯¢ä»»å¡æ 记为1çä»»å¡ä¸ºç©ºæå
计åä¼ |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"ä»»å¡å·:{task1001.TaskNum}-æ¯å¦å
计:{IsAllow}"); |
| | | Dt_Task? taskAgvIning = _taskService.QueryStackerCraneTaskByAGVIning("SC01"); |
| | | if (IsAllow == 1&&taskAgvIning==null)//å¦æä¸º1ï¼åå
计AGVè¿å
¥ï¼åä¼ WMS |
| | | { |
| | | _taskService.UpdateTaskAllowIn(task1001.TaskNum, 1); |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"æ´æ°æ¯å¦è¿å
¥åéæºæ å¿å¼1ï¼ä»»å¡å·{task1001.TaskNum}"); |
| | | IsAllow = 0;//æ´æ°æåï¼ç½®0ä¸å
许 |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 2001, task_id = task1001.TaskNum, status = 6 }; |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | |
| | | //if (res != null && res.code == 0)//åä¼ 2001æå |
| | | //{ |
| | | //WCS读å°å
许信å·å任塿 è®°1,表示AGVå·²è¿å
¥æåæº,Dt_Task ä¸çCurrentAddresså为æ è®°åæ®µ |
| | | //_taskService.UpdateTaskAllowIn(task1001.TaskNum, 1); |
| | | //WriteDebug(nameof(CommonStackerCraneJob), $"æ´æ°æ¯å¦è¿å
¥åéæºæ å¿å¼1ï¼ä»»å¡å·{task1001.TaskNum}"); |
| | | //} |
| | | |
| | | } |
| | | } |
| | | Dt_Task? task3001 = _taskService.QueryStackerCraneTaskByAGVPutFinish("SC01"); |
| | |
| | | if (task3001.SourceAddress == "SC01-002-000-001")//WMS 1001ç«ç¹ |
| | | { |
| | | //æåæºæ¯å¦å¤äºå°±ç»ªç¶æ |
| | | |
| | | int IsReady = commonStackerCrane.Communicator.Read<short>("DB2.0.0"); |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"æåæºç¶æï¼{IsReady}ä»»å¡å·ï¼{task3001.TaskNum}"); |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"æåæºæ¯å¦å°±ç»ªç¶æï¼{IsReady}ä»»å¡å·ï¼{task3001.TaskNum}"); |
| | | //åå
¥æåä¿¡æ¯ |
| | | IsWriteOne = commonStackerCrane.Communicator.Read<short>("DB1.0.0"); |
| | | if (IsWriteOne == 0 && IsReady == 1) |
| | | { |
| | | commonStackerCrane.Communicator.Write<short>("DB1.0.0", 1); |
| | | } |
| | | |
| | | } |
| | | //读åæåæºä¿¡å·ï¼ç¡®å®æ¯å¦æå宿 |
| | | |
| | | IsFinish = commonStackerCrane.Communicator.Read<short>("DB2.2.0"); |
| | | |
| | | } |
| | | else if (task3001.SourceAddress == "SC01-002-000-002")//WMS 1002ç«ç¹ |
| | | { |
| | | //æåæºæ¯å¦å¤äºå°±ç»ªç¶æ |
| | | |
| | | int IsReady = commonStackerCrane.Communicator.Read<short>("DB2.0.0"); |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"æåæºç¶æï¼{IsReady}ä»»å¡å·ï¼{task3001.TaskNum}"); |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"æåæºæ¯å¦å°±ç»ªç¶æï¼{IsReady}ä»»å¡å·ï¼{task3001.TaskNum}"); |
| | | //åå
¥æåä¿¡æ¯ |
| | | IsWriteTwo = commonStackerCrane.Communicator.Read<short>("DB1.6.0"); |
| | | if (IsWriteTwo == 0 && IsReady == 1) |
| | |
| | | |
| | | //读åæåæºä¿¡å·ï¼ç¡®å®æ¯å¦æå宿 |
| | | IsFinish = commonStackerCrane.Communicator.Read<short>("DB2.10.0"); |
| | | |
| | | } |
| | | |
| | | if (IsFinish == 1)//å¦æä¸º1ï¼å表示æå宿ï¼åä¼ WMS |
| | | { |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 2002, task_id = task3001.TaskNum, status = 6 }; |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | string inparam = JsonConvert.SerializeObject(sendcmd); |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"æåæºæå宿ï¼åä¼ WMS,å
¥åï¼{inparam}"); |
| | | |
| | | if (res != null && res.code != 0) |
| | | if (task3001.WMSId == 3)// WCS人工å
¥åº |
| | | { |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"æåæºæå宿ï¼åä¼ WMS失败ï¼ä»»å¡å·{task3001.TaskNum}"); |
| | | MESTaskDTO taskDTO = new MESTaskDTO(); |
| | | taskDTO.weight = task3001.TaskNum;//æ§ä»»å¡å· |
| | | taskDTO.cmd = 101; |
| | | _taskService.ReceiveWCSTask(taskDTO); |
| | | } |
| | | else |
| | | { |
| | | MESSendCMD sendcmd = new MESSendCMD { cmd = 2002, task_id = task3001.TaskNum, status = 6 }; |
| | | MESResponse res = ApiInvoke.SendTaskCMD(sendcmd); |
| | | string inparam = JsonConvert.SerializeObject(sendcmd); |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"æåæºæå宿ï¼åä¼ WMS,å
¥åï¼{inparam}"); |
| | | |
| | | |
| | | if (res != null && res.code == 0) |
| | | { |
| | | |
| | | _taskService.UpdateTaskAllowIn(task3001.TaskNum, 0); |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"æ´æ°æ¯å¦è¿å
¥åéæºæ å¿å¼0ï¼ä»»å¡å·{task3001.TaskNum}"); |
| | | |
| | | } |
| | | else |
| | | { |
| | | WriteDebug(nameof(CommonStackerCraneJob), $"æåæºæå宿ï¼åä¼ WMS失败ï¼ä»»å¡å·{task3001.TaskNum}"); |
| | | } |
| | | } |
| | | } |
| | | |