| | |
| | | } |
| | | private static readonly Dictionary<string, bool> _deviceLastStatus = new Dictionary<string, bool>(); |
| | | public string urlWMSdeverror = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlWMSdeverror"]; |
| | | private static readonly Dictionary<string, string> _stackerFaultMap = new Dictionary<string, string> |
| | | { |
| | | { "DB107.26.0", "载货å°è´§ç©è¶
宽" },{ "DB107.26.1", "载货å°è´§ç©è¶
é¿" },{ "DB107.26.2", "载货å°è´§ç©è¶
é«" }, |
| | | { "DB107.26.3", "载货å°è´§ç©æ£æµä¼ æå¨å¼å¸¸" },{ "DB107.26.4", "è´§åç¼ç å¨å¼é误" },{ "DB107.26.5", "è´§åå¨ä½è¶
æ¶" }, |
| | | { "DB107.26.6", "è´§åç¼ç å¨å¼ä¸ä¸ä½ä¿¡å·ä¸ä¸è´" },{ "DB107.26.7", "æ æçä»»å¡ç±»å" },{ "DB107.27.0", "æ æçä½ä¸å°å" }, |
| | | { "DB107.27.1", "éå
¥åº" },{ "DB107.27.2", "空åºåº" },{ "DB107.27.3", "è´§ç©é«åº¦ä¸è´§ä½ä¸å¹é
" }, |
| | | { "DB107.27.4", "åè´§ééå µå¡" },{ "DB107.27.5", "æ¾è´§ééå µå¡" },{ "DB107.27.6", "æ¾è´§å®æå载货å°ä»ç¶æè´§" }, |
| | | { "DB107.27.7", "任塿ªå®æè¶
æ¶æ¥è¦" },{ "DB107.28.0", "就尿æ¥å触å" },{ "DB107.28.1", "æºè½½ææ¥å触å" }, |
| | | { "DB107.28.2", "è¿ç¨æ¥å触å" },{ "DB107.28.3", "å®å
¨é¨è¢«æå¼" },{ "DB107.28.4", "å®å
¨ç»§çµå¨æå¼" }, |
| | | { "DB107.28.5", "æ¾ç»³æ£æµ" },{ "DB107.28.6", "è¶
éä¿æ¤" },{ "DB107.28.7", "è¡èµ°åé¢å¨æ
é" }, |
| | | { "DB107.29.0", "åéåé¢å¨æ
é" },{ "DB107.29.1", "è´§å1åé¢å¨æ
é" },{ "DB107.29.2", "è´§å2åé¢å¨æ
é" }, |
| | | { "DB107.29.3", "åéè¡èµ°å®ä½è¶
æ¶" },{ "DB107.29.4", "è´§å1ç¼ç å¨å¼ä¸ä¸ä½ä¿¡å·ä¸ä¸è´" },{ "DB107.29.5", "è´§å2ç¼ç å¨å¼ä¸ä¸ä½ä¿¡å·ä¸ä¸è´" }, |
| | | { "DB107.29.6", "è¡èµ°æ¿å
å¼é误" },{ "DB107.29.7", "åéæ¿å
å¼é误" },{ "DB107.30.0", "åè¿æéè¡ç¨" }, |
| | | { "DB107.30.1", "åéæéè¡ç¨" },{ "DB107.30.2", "ä¸åæéè¡ç¨" },{ "DB107.30.3", "ä¸éæéè¡ç¨" }, |
| | | { "DB107.30.4", "è´§å1å·¦æéè¡ç¨" },{ "DB107.30.5", "è´§å1峿éè¡ç¨" },{ "DB107.30.6", "è´§å2å·¦æéè¡ç¨" }, |
| | | { "DB107.30.7", "è´§å2峿éè¡ç¨" },{ "DB107.31.0", "åè¿æ¿å
æéä¿æ¤" },{ "DB107.31.1", "åéæ¿å
æéä¿æ¤" }, |
| | | { "DB107.31.2", "ä¸åæ¿å
æéä¿æ¤" },{ "DB107.31.3", "ä¸éæ¿å
æéä¿æ¤" },{ "DB107.31.4", "è´§å1左软æé" }, |
| | | { "DB107.31.5", "è´§å1å³è½¯æé" },{ "DB107.31.6", "è´§å2左软æé" },{ "DB107.31.7", "è´§å2å³è½¯æé" }, |
| | | { "DB107.32.0", "ä¸å°é¢ç«ç½ç»æå¼" },{ "DB107.32.1", "ä¸è¾é线ç½ç»æå¼" },{ "DB107.32.2", "ä¸WCSç½ç»æå¼" }, |
| | | { "DB107.32.3", "æ æå½ä»¤:å åæºæè´§" },{ "DB107.32.4", "æ æå½ä»¤:å åæºæ è´§" },{ "DB107.32.5", "æ¶é²è¯¯æ¥" }, |
| | | { "DB107.32.6", "åè¿é·è¾¾æ¥è¦" },{ "DB107.32.7", "åéé·è¾¾æ¥è¦" },{ "DB107.33.0", "å·¦é²ç«é¨è¶
æ¶" }, |
| | | { "DB107.33.1", "å³é²ç«é¨è¶
æ¶" },{ "DB107.33.2", "æ¿ç½ªç¾æ£æµæ¥è¦" },{ "DB107.33.3", "è¿åè¿è¡å¼å¸¸" }, |
| | | { "DB107.33.4", "è¿åè¿è¡å¼å¸¸" },{ "DB107.33.5", "æ°´å¹³è¿è¡å¼å¸¸" },{ "DB107.33.6", "åéè¿è¡å¼å¸¸" }, |
| | | { "DB107.34.0", "åéå¹è½¦å¼å¸¸" },{ "DB107.34.1", "è¡èµ°å¹è½¦å¼å¸¸" },{ "DB107.34.2", "è¿åå¹è½¦å¼å¸¸" }, |
| | | { "DB107.34.3", "è¿åå¹è½¦å¼å¸¸" },{ "DB107.34.4", "左侧è¿è½½" },{ "DB107.34.5", "å³ä¾§è¿è½½" } |
| | | }; |
| | | |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | |
| | | WebResponseContent webResponse = _taskService.StackCraneTaskCompleted(commonStackerCrane.CurrentTaskNum, PalletCode); |
| | | if (webResponse.Status) |
| | | { |
| | | WriteLog.Write_Log("å åæºä»»å¡ä¸æ¥å®æä¿¡æ¯", "å åæºä»»å¡ä¸æ¥å®æä¿¡æ¯", $"ã{commonStackerCrane.DeviceCode}ãåºå åæºä¸æ¥ä»»å¡å·:ã{commonStackerCrane.CurrentTaskNum}ãå®æä¿¡å·ï¼"); |
| | | Task.Run(() => WriteLog.Write_Log("å åæºä»»å¡ä¸æ¥å®æä¿¡æ¯", "å åæºä»»å¡ä¸æ¥å®æä¿¡æ¯", $"ã{commonStackerCrane.DeviceCode}ãåºå åæºä¸æ¥ä»»å¡å·:ã{commonStackerCrane.CurrentTaskNum}ãå®æä¿¡å·ï¼")); |
| | | |
| | | bool ddjfk = commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); |
| | | } |
| | |
| | | /// <summary> |
| | | /// æ
é䏿¥ï¼æ¹ä¸ºawaitè°ç¨ï¼ä¿®å¤å¼æ¥BUGï¼ |
| | | /// </summary> |
| | | private async Task SendDevError(CommonStackerCrane crane, string errorcode, string dealType, string errorInfo = "") |
| | | public void SendDevError(CommonStackerCrane crane, string errorcode, string dealType, string errorInfo = "") |
| | | { |
| | | CommandResult commandResult = new CommandResult(); |
| | | try |
| | |
| | | psd = "akjfapjfpadaoif", |
| | | }; |
| | | |
| | | // 忥HTTPæ¹ä¸ºå¼æ¥ï¼æ¨èï¼ï¼ä¿æä½ åæä»£ç ä¹å¯ä»¥ |
| | | commandResult = await Task.Run(() => HttpHelper.Post<CommandResult>(urlWMSdeverror, deviceErrorRequest, "è®¾å¤æ
éåè°")); |
| | | commandResult = HttpHelper.Post<CommandResult>(urlWMSdeverror, deviceErrorRequest, "è®¾å¤æ
éåè°"); |
| | | WriteLog.Write_Log("忥ç»ä¸æ¸¸è®¾å¤æ
éä¿¡æ¯", "è®¾å¤æ
éä¿¡æ¯", $"设å¤idï¼ã{crane.DeviceCode}ãï¼æå", $"设å¤åè°ç¶æï¼ã{dealType}ãï¼å¼å¸¸ä¿¡æ¯ï¼ã{errorInfo}ã\n" + |
| | | $"è°ç¨ä¸æ¸¸è¿åç»æä¿¡æ¯ï¼ã{commandResult?.ToJsonString() ?? "è¿åç»æä¸ºnull"}ã"); |
| | | } |
| | |
| | | return taskItem; |
| | | } |
| | | } |
| | | else if (taskItem.TaskType == (int)TaskTypeEnum.Inbound || taskItem.TaskType == (int)TaskTypeEnum.Inventorybound) |
| | | else if ((InTaskStationIsOccupied(taskItem.SourceAddress, taskItem.Roadway) && taskItem.TaskType == (int)TaskTypeEnum.Inbound) || taskItem.TaskType == (int)TaskTypeEnum.Inventorybound) |
| | | { |
| | | InTaskStationIsOccupied(taskItem.SourceAddress, taskItem.Roadway); |
| | | |
| | | return taskItem; |
| | | } |
| | | } |
| | |
| | | int StationNum = conveyorLine.Communicator.Read<ushort>(deviceProDTO.DeviceProAddress); |
| | | int HandShake = conveyorLine.Communicator.Read<ushort>(HandShakeprodto.DeviceProAddress); |
| | | |
| | | Task.Run(() => WriteLog.Write_Log("åºåºåºå£ç¶æä¿¡æ¯", "åºåºåºå£ç¶æä¿¡æ¯", $"åºå£æ¯ã{NextAddress}ãï¼ç³è¯·ç¶æå°åï¼ã{HandShakeprodto.DeviceProAddress}ã,读åçæ°æ®ï¼ã{HandShake}ã\nåºå£æ¯å¦æè´§ç¶æå°åï¼ã{deviceProDTO.DeviceProAddress}ãï¼è¯»åçæ°æ®ã{StationNum}ã")); |
| | | |
| | | if (Roadway == "C") return StationNum == 0 && HandShake == 0; |
| | | return (StationNum == 1 && HandShake == 0 && Roadway == "B") || (StationNum == 0 && HandShake == 0); |
| | | WriteLog.Write_Log("åºåºåºå£ç¶æä¿¡æ¯", "åºåºåºå£ç¶æä¿¡æ¯", $"åºå£æ¯ã{NextAddress}ãï¼ç³è¯·ç¶æå°åï¼ã{HandShakeprodto.DeviceProAddress}ã,读åçæ°æ®ï¼ã{HandShake}ã\nåºå£æ¯å¦æè´§ç¶æå°åï¼ã{deviceProDTO.DeviceProAddress}ãï¼è¯»åçæ°æ®ã{StationNum}ã"); |
| | | if (Roadway == "C" || Roadway == "G") return StationNum == 0 && HandShake == 0; |
| | | return (StationNum == 1 && HandShake == 0 && Roadway == "B"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Task.Run(() => Console.WriteLine("读åç«å°ä¿¡æ¯é误ï¼" + ex.Message)); |
| | | Console.WriteLine("读åç«å°ä¿¡æ¯é误ï¼" + ex.Message); |
| | | return false; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// å
¥åºä»»å¡åºå£æè´§æ è´§ç¶æ |
| | | /// </summary> |
| | | private void InTaskStationIsOccupied(string SourceAddress, string Roadway) |
| | | public bool InTaskStationIsOccupied(string SourceAddress, string Roadway) |
| | | { |
| | | try |
| | | { |
| | | |
| | | CommonConveyorLine? conveyorLine = null; |
| | | lock (Storage.Devices) |
| | | { |
| | | string deviceCode = Roadway == "C" ? "1004" : "1003"; |
| | | conveyorLine = Storage.Devices.FirstOrDefault(x => x.DeviceCode == deviceCode) as CommonConveyorLine; |
| | | } |
| | | if (conveyorLine == null) return; |
| | | if (conveyorLine == null) return false; |
| | | |
| | | DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == SourceAddress && x.DeviceProParamName == "StationNum"); |
| | | DeviceProDTO? HandShakeprodto = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == SourceAddress && x.DeviceProParamName == "HandShake"); |
| | | if (deviceProDTO == null || HandShakeprodto == null) return; |
| | | if (deviceProDTO == null || HandShakeprodto == null) return false; |
| | | |
| | | int StationNum = conveyorLine.Communicator.Read<ushort>(deviceProDTO.DeviceProAddress); |
| | | int HandShake = conveyorLine.Communicator.Read<ushort>(HandShakeprodto.DeviceProAddress); |
| | | |
| | | Task.Run(() => WriteLog.Write_Log("å
¥åºåºå£ç¶æä¿¡æ¯", "å
¥åºåºå£ç¶æä¿¡æ¯", $"åºå£æ¯ã{SourceAddress}ãï¼ç³è¯·ç¶æå°åï¼ã{HandShakeprodto.DeviceProAddress}ã,读åçæ°æ®ï¼ã{HandShake}ã\nåºå£æ¯å¦æè´§ç¶æå°åï¼ã{deviceProDTO.DeviceProAddress}ãï¼è¯»åçæ°æ®ã{StationNum}ã")); |
| | | WriteLog.Write_Log("å
¥åºåºå£ç¶æä¿¡æ¯", "å
¥åºåºå£ç¶æä¿¡æ¯", $"åºå£æ¯ã{SourceAddress}ãï¼ç³è¯·ç¶æå°åï¼ã{HandShakeprodto.DeviceProAddress}ã,读åçæ°æ®ï¼ã{HandShake}ã\nåºå£æ¯å¦æè´§ç¶æå°åï¼ã{deviceProDTO.DeviceProAddress}ãï¼è¯»åçæ°æ®ã{StationNum}ã"); |
| | | return (StationNum == 1 && HandShake == 0) ? true : false; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Task.Run(() => Console.WriteLine("读åç«å°ä¿¡æ¯é误ï¼" + ex.Message)); |
| | | Console.WriteLine("读åç«å°ä¿¡æ¯é误ï¼" + ex.Message); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | |
| | | /// </summary> |
| | | public string ReadStackerFaults(CommonStackerCrane crane) |
| | | { |
| | | |
| | | string activeFaults = ""; |
| | | try |
| | | { |
| | | foreach (var fault in _stackerFaultMap) |
| | | foreach (StackerFault fault in Enum.GetValues(typeof(StackerFault))) |
| | | { |
| | | try { bool isFault = crane.Communicator.Read<bool>(fault.Key); if (isFault) { activeFaults = fault.Value; break; } } catch { } |
| | | try |
| | | { |
| | | bool isFault = crane.Communicator.Read<bool>(fault.ToPlcAddress()); |
| | | if (isFault) |
| | | return fault.GetDesc(); |
| | | } |
| | | catch { } |
| | | } |
| | | } |
| | | catch (Exception ex) { WriteLog.Write_Log("DB107æ
é读åå¼å¸¸", "é误", ex.ToString()); } |
| | | return activeFaults; |
| | | catch (Exception ex) |
| | | { |
| | | WriteLog.Write_Log("DB107æ
é读åå¼å¸¸", "é误", ex.ToString()); |
| | | } |
| | | return string.Empty; |
| | | } |
| | | } |
| | | } |