| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | |
| | | |
| | | if (commonStackerCrane != null) |
| | | { |
| | | WriteLog.Write_Log("å åæºå½åç¶æ", $"{commonStackerCrane.DeviceCode}åºå åæºç¶æä¿¡æ¯", |
| | | $"å åæºè®¾å¤å°å:ãDB105.2.0ã,读åçæ°æ®ï¼ã{commonStackerCrane.StackerCraneAutoStatusDes}ã\n" + |
| | | $"å åæºå·¥ä½æ¨¡å¼å°å:ãDB105.3.0ã,读åçæ°æ®ï¼ã{commonStackerCrane.StackerCraneStatusDes}ã\n" + |
| | | $"å åæºä½ä¸ç¶æå°å:ãDB105.22.0ã,读åçæ°æ®ï¼ã{commonStackerCrane.StackerCraneWorkStatusDes}ã\n" + |
| | | $"å åæºå½å任塿§è¡ä¸å°å:ãDB105.18.0ã,读åçæ°æ®ï¼ã{commonStackerCrane.CurrentTaskNum}ã\n"); |
| | | |
| | | UpdateHandShake(commonStackerCrane.CurrentTaskNum, commonStackerCrane.StackerCraneWorkStatusDes); |
| | | //ä»»å¡å®æStackerCraneWorkStatus |
| | |
| | | } |
| | | } |
| | | |
| | | WriteLog.Write_Log("å åæºå½åç¶æ", "å åæºå½åç¶æä¿¡æ¯", $"å åæºè®¾å¤å°å:ãDB105.2.0ã,读åçæ°æ®ï¼ã{commonStackerCrane.StackerCraneAutoStatusDes}ã\n" + |
| | | $"å åæºå·¥ä½æ¨¡å¼å°å:ãDB105.3.0ã,读åçæ°æ®ï¼ã{commonStackerCrane.StackerCraneStatusDes}ã\n" + |
| | | $"å åæºä½ä¸ç¶æå°å:ãDB105.22.0ã,读åçæ°æ®ï¼ã{commonStackerCrane.StackerCraneWorkStatusDes}ã\n" + |
| | | $"å åæºå½å任塿§è¡ä¸å°å:ãDB105.18.0ã,读åçæ°æ®ï¼ã{commonStackerCrane.CurrentTaskNum}ã\n"); |
| | | |
| | | |
| | | |
| | | |
| | | if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | |
| | | commonStackerCrane.Communicator.Write("DB105.52", 1); |
| | | |
| | | WebResponseContent webResponseContent=_taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | //å»¶è¿1s |
| | | Thread.Sleep(1000); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | int StationNum = conveyorLine.Communicator.Read<ushort>(deviceProDTO.DeviceProAddress); |
| | | int HandShake = conveyorLine.Communicator.Read<ushort>(HandShakeprodto.DeviceProAddress); |
| | | conveyorLine.Communicator.Write<short>(HandShakeprodto.DeviceProAddress, 1); |
| | | |
| | | WriteLog.Write_Log("åºåºåºå£ç¶æä¿¡æ¯", "åºåºåºå£ç¶æä¿¡æ¯", $"åºå£æ¯ã{NextAddress}ãï¼ç³è¯·ç¶æå°åï¼ã{HandShakeprodto.DeviceProAddress}ã,读åçæ°æ®ï¼ã{HandShake}ã\n" + |
| | | $"åºå£æ¯å¦æè´§ç¶æå°åï¼ã{deviceProDTO.DeviceProAddress}ãï¼è¯»åçæ°æ®ã{StationNum}ã"); |
| | |
| | | /// <param name="stackerCraneWorkStatusDes"></param> |
| | | public void UpdateHandShake(int taskNum, string stackerCraneWorkStatusDes) |
| | | { |
| | | // 1. æ¥è¯¢ä»»å¡ï¼ç©ºå¼ç´æ¥è¿å |
| | | try |
| | | { |
| | | Dt_Task? dtTask = _taskRepository.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (dtTask == null) return; |
| | | |
| | | // 2. å®ä¹åºå®å°å |
| | | string[] targetAddresses = { "G03", "G04", "C02", "C01" }; |
| | | if (dtTask.TaskType != 100 || !targetAddresses.Contains(dtTask.TargetAddress)) |
| | | return; |
| | | |
| | | // 3. æ¡ä»¶å¤æ + ç¡®å®åå
¥å¼ |
| | | short writeValue = -1; |
| | | if (dtTask.TaskType == 100 && targetAddresses.Contains(dtTask.TargetAddress)) |
| | | { |
| | | writeValue = stackerCraneWorkStatusDes switch |
| | | short writeValue = stackerCraneWorkStatusDes switch |
| | | { |
| | | "æ¾è´§ä¸" => 1, |
| | | "ä»»å¡å®æ" => 0, |
| | | _ => -1 |
| | | }; |
| | | } |
| | | |
| | | // 4. è·å设å¤ç¼ç |
| | | if (writeValue == -1) return; |
| | | |
| | | string deviceCode = dtTask.CurrentAddress.StartsWith("C") ? "1004" : "1003"; |
| | | |
| | | // 5. è·å设å¤ï¼ç©ºå¼ç´æ¥è¿å |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == deviceCode); |
| | | if (device != null && writeValue != -1) |
| | | { |
| | | CommonConveyorLine? conveyorLine = (CommonConveyorLine)device; |
| | | if (device == null) return; |
| | | |
| | | // 6. è·åæ¡æç¹ä½ï¼ç©ºå¼ç´æ¥è¿å |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | DeviceProDTO? handShake = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == dtTask.TargetAddress && x.DeviceProParamName == "HandShake"); |
| | | if (handShake == null) |
| | | { |
| | | WriteLog.Write_Log("åºåºåºå£å
æ
ç¶æé误信æ¯", "åºåºåºå£å
æ
ç¶æé误信æ¯", $"WCSæªæ¾å°åºå£ä¿¡æ¯æ¯ã{dtTask.TargetAddress}ãï¼ä»»å¡å·ï¼ã{dtTask.TaskNum}ã,å åæºä½ä¸ç¶æï¼ã{stackerCraneWorkStatusDes}ã"); |
| | | return; |
| | | } |
| | | // 7. åå
¥å¼ |
| | | if (handShake == null) return; |
| | | |
| | | conveyorLine.Communicator.Write<short>(handShake.DeviceProAddress, writeValue); |
| | | WriteLog.Write_Log("åºåºåºå£å
æ
ç¶ææ£å¸¸ä¿¡æ¯", "åºåºåºå£å
æ
ç¶ææ£å¸¸ä¿¡æ¯", $"åºå£æ¯ã{dtTask.TargetAddress}ãï¼ç³è¯·ç¶æå°åï¼ã{handShake.DeviceProAddress}ã,读åçæ°æ®ï¼ã{conveyorLine.Communicator.Read<ushort>(handShake.DeviceProAddress)}ã\n" + |
| | | $"ä»»å¡å·ï¼ã{dtTask.TaskNum}ã,å åæºä½ä¸ç¶æï¼ã{stackerCraneWorkStatusDes}ã"); |
| | | return; |
| | | } |
| | | else |
| | | catch |
| | | { |
| | | WriteLog.Write_Log("åºåºåºå£å
æ
ç¶æé误信æ¯", "åºåºåºå£å
æ
ç¶æé误信æ¯", $"åºå£æ¯ã{dtTask.TargetAddress}ãï¼ä»»å¡å·ï¼ã{dtTask.TaskNum}ã,å åæºä½ä¸ç¶æï¼ã{stackerCraneWorkStatusDes}ã"); |
| | | return; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | } |