| | |
| | | |
| | | using AutoMapper; |
| | | using Castle.Components.DictionaryAdapter.Xml; |
| | | using HslCommunication; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.AspNetCore.Mvc.RazorPages; |
| | | using Microsoft.OpenApi.Any; |
| | |
| | | ApiResponse apiResponse = new ApiResponse(); |
| | | try |
| | | { |
| | | //IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1002"); |
| | | //if (device == null) return apiResponse.ErrorResponse("WCSæªè½è·åå°åºå£å®ä¾"); |
| | | //CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | |
| | | |
| | | Dictionary<string, int> portStatusDict = new Dictionary<string, int>(); |
| | | |
| | | foreach (string DeStateName in datas) |
| | | { |
| | | //ææ¶æ°æ® |
| | | portStatusDict[DeStateName] = 1; |
| | | string DeciceCodes = "1003"; |
| | | if (DeStateName.StartsWith("C")) DeciceCodes = "1004"; |
| | | |
| | | /*DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == DeStateName && x.DeviceProParamName == "StationFree"); |
| | | if (deviceProDTO == null) return apiResponse.ErrorResponse($"WCSæªæ¾å°åºå£ï¼{DeStateName},对åºçåè®®"); |
| | | conveyorLine.Communicator.Read<bool>(deviceProDTO.DeviceProAddress); |
| | | bool portStatus = conveyorLine.Communicator.Read<bool>(deviceProDTO.DeviceProAddress); |
| | | int statusValue = portStatus ? 1 : 0; |
| | | portStatusDict[DeStateName] = statusValue;*/ |
| | | |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeciceCodes); |
| | | if (device == null) return apiResponse.ErrorResponse("WCSæªè½è·åå°åºå£å®ä¾"); |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | |
| | | |
| | | //æ¯å¦å¯è¿åº |
| | | DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == DeStateName && x.DeviceProParamName == "PermitHandShake"); |
| | | //æ¯å¦æè´§ |
| | | DeviceProDTO? StationNumProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == DeStateName && x.DeviceProParamName == "StationNum"); |
| | | if (deviceProDTO == null || StationNumProDTO ==null) return apiResponse.ErrorResponse($"WCSæªæ¾å°åºå£ï¼{DeStateName},对åºçåè®®"); |
| | | |
| | | int statusValue = 0; |
| | | //1å
许å 2å
è®¸æ¾ |
| | | int portStatus = conveyorLine.Communicator.Read<ushort>(deviceProDTO.DeviceProAddress); |
| | | //æ¯å¦æè´§ |
| | | int StationStatus = conveyorLine.Communicator.Read<ushort>(StationNumProDTO.DeviceProAddress); |
| | | |
| | | |
| | | if(DeStateName== "G01" || DeStateName == "G06" || DeStateName == "G07") |
| | | { |
| | | //æè´§ï¼å¯è¿ä¿¡å· |
| | | statusValue = (portStatus == 1 && StationStatus == 1) ? 1 : (portStatus == 2 && StationStatus == 0) ?0: (portStatus == 0) ? 0 : 0; |
| | | } |
| | | else |
| | | { |
| | | statusValue = StationStatus == 1 ? 0 : 1; |
| | | } |
| | | portStatusDict[DeStateName] = statusValue; |
| | | } |
| | | |
| | | return apiResponse.SuccessResponse(portStatusDict); |
| | |
| | | ApiResponse apiResponse = new ApiResponse(); |
| | | try |
| | | { |
| | | string DeciceCodes = "1003"; |
| | | if (agvUpdateRequest.warehousenumber.StartsWith("C")) DeciceCodes = "1004"; |
| | | |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeciceCodes); |
| | | if (device == null) return apiResponse.ErrorResponse("WCSæªè½è·åå°åºå£å®ä¾"); |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | |
| | | return apiResponse.SuccessResponse(); |
| | | //æ¯å¦å¯è¿åº |
| | | DeviceProDTO? HandShake = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == agvUpdateRequest.warehousenumber && x.DeviceProParamName == "HandShake"); |
| | | if (HandShake == null) return apiResponse.ErrorResponse($"WCSæªæ¾å°åºå£ï¼{agvUpdateRequest.warehousenumber},对åºçåè®®"); |
| | | |
| | | if (agvUpdateRequest.agvstatus == 1) |
| | | { |
| | | //åå
¥plcï¼agvè¿å
¥ä¿¡å· |
| | | bool HandShakebool = conveyorLine.Communicator.Write<short>(HandShake.DeviceProAddress, 1); |
| | | if (HandShakebool) |
| | | { |
| | | //æ¯å¦å¯è¿åº 1å
许å 2å
è®¸æ¾ |
| | | DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == agvUpdateRequest.warehousenumber && x.DeviceProParamName == "PermitHandShake"); |
| | | //æ¯å¦æè´§ |
| | | DeviceProDTO? StationNumProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == agvUpdateRequest.warehousenumber && x.DeviceProParamName == "StationNum"); |
| | | if (deviceProDTO == null || StationNumProDTO == null) return apiResponse.ErrorResponse($"WCSæªæ¾å°åºå£ï¼{agvUpdateRequest.warehousenumber},对åºçåè®®"); |
| | | int statusValue = 0; |
| | | int portStatus = conveyorLine.Communicator.Read<ushort>(deviceProDTO.DeviceProAddress); |
| | | int StationStatus = conveyorLine.Communicator.Read<ushort>(StationNumProDTO.DeviceProAddress); |
| | | |
| | | //æè´§ï¼å¯è¿ä¿¡å· |
| | | statusValue = ((portStatus == 1 && StationStatus == 1) || (portStatus == 2 && StationStatus == 0)) ? 1 : (portStatus == 0) ? 0 : 0; |
| | | WriteLog.Write_Log("AGVåé¦ä¿¡å·ä¿¡æ¯", "AGVåé¦ä¿¡å·ä¿¡æ¯", $"æ¯å¦å
许è¿å
¥å°åï¼ã{deviceProDTO.DeviceProAddress}ãï¼è¯»åæ°æ®ï¼ã{portStatus}ã\n" + |
| | | $"æ¯å¦æè´§å°åï¼ã{StationNumProDTO.DeviceProAddress}ãï¼è¯»åæ°æ®ï¼ã{StationStatus}ã\n" + |
| | | $"æè´§å¯è¿å
¥ä¿¡å·ï¼ã{statusValue}ã"); |
| | | |
| | | if (statusValue == 1) |
| | | { |
| | | return apiResponse.SuccessResponse(); |
| | | } |
| | | else |
| | | { |
| | | return apiResponse.ErrorResponse("读åplcä¸å¯è¿å
¥ä¿¡æ¯"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return apiResponse.ErrorResponse("åå
¥plcè¿å
¥ä¿¡å·å¤±è´¥"); |
| | | } |
| | | } |
| | | else if(agvUpdateRequest.agvstatus == 2) |
| | | { |
| | | //åå
¥è¾éçº¿ä¿¡å· |
| | | bool portStatus = conveyorLine.Communicator.Write<short>(HandShake.DeviceProAddress, 0); |
| | | if (portStatus) |
| | | { |
| | | return apiResponse.SuccessResponse(); |
| | | } |
| | | else |
| | | { |
| | | return apiResponse.ErrorResponse("åå
¥plcæ¸
é¤ä¿¡å·å¤±è´¥"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return apiResponse.ErrorResponse($"agv对åºçç³è¯·é误ï¼å段ï¼agvstatusï¼ç³è¯·çå¼ï¼{agvUpdateRequest.agvstatus}"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | taskInfo1.taskType = taskType; |
| | | taskInfo1.invType = invType; |
| | | taskInfo1.psd = "akjfapjfpadaoif"; |
| | | |
| | | commandResult = HttpHelper.Post<CommandResult>(urlWMStaskreturn, taskInfo1, "ä»»å¡ç¶æåè°"); |
| | | |
| | | WriteLog.Write_Log("忥ç»ä¸æ¸¸åé¦ä»»å¡å®æ", "ä»»å¡ä¿¡æ¯", $"ä»»å¡å·ï¼{taskId}", $"è°ååæ°ï¼{taskInfo1.ToJson()},è¿ååæ°ï¼{commandResult.ToJson()}"); |
| | | WriteLog.Write_Log("忥ç»ä¸æ¸¸åé¦ä»»å¡å®æ", "ä»»å¡ä¿¡æ¯", $"ä»»å¡å·ï¼{taskId}", $"è°ååæ°ï¼{taskInfo1.ToJsonString()},è¿ååæ°ï¼{commandResult.ToJsonString()}"); |
| | | return commandResult; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine("è°å䏿¸¸æ¥å£é误ï¼åå ï¼"+ex.Message); |
| | | commandResult.status = "error"; |
| | | commandResult.result = $"WCSæ¥å£é误ï¼åå ï¼{ex.Message}"; |
| | | string resujos = $"WCSæ¥å£é误ï¼åå ï¼{ex.Message}"; |
| | | commandResult.result = resujos.ToJsonString(); |
| | | |
| | | WriteLog.Write_Log("忥ç»ä¸æ¸¸åé¦ä»»å¡å®æ", "ä»»å¡ä¿¡æ¯", $"ä»»å¡å·ï¼{taskId}", $"WCSæ¥å£é误ï¼åå ï¼{ex.Message}"); |
| | | WriteLog.Write_Log("忥ç»ä¸æ¸¸åé¦ä»»å¡å®æ", "ä»»å¡ä¿¡æ¯", $"ä»»å¡å·ï¼{taskId}", $"éè¦ä¸ä¼ WMSä¿¡æ¯å
容ï¼{commandResult.ToJsonString()},WCSæ¥å£é误ï¼åå ï¼{ex.Message}"); |
| | | return commandResult; |
| | | } |
| | | |
| | |
| | | catch (Exception ex) |
| | | { |
| | | commandResult.status = "error"; |
| | | commandResult.result = $"WCSæ¥å£é误ï¼åå ï¼{ex.Message}"; |
| | | string resujos = $"WCSæ¥å£é误ï¼åå ï¼{ex.Message}"; |
| | | commandResult.result = resujos.ToJsonString(); |
| | | |
| | | |
| | | WriteLog.Write_Log("忥ç»ä¸æ¸¸è®¾å¤æ
éä¿¡æ¯", "è®¾å¤æ
éä¿¡æ¯", $"设å¤idï¼{devuuid}ï¼å¤±è´¥", $"WCSæ¥å£é误ï¼åå ï¼{ex.Message}"); |
| | | return commandResult; |
| | |
| | | catch (Exception ex) |
| | | { |
| | | commandResult.status = "error"; |
| | | commandResult.result = $"WCSæ¥å£é误ï¼åå ï¼{ex.Message}"; |
| | | string resujos = $"WCSæ¥å£é误ï¼åå ï¼{ex.Message}"; |
| | | commandResult.result = resujos.ToJsonString(); |
| | | |
| | | WriteLog.Write_Log("忥ç»ä¸æ¸¸æåå°ä½ä¿¡æ¯", "ä¿¡æ¯å
容", $"é误信æ¯", $"WCSæ¥å£é误ï¼åå ï¼{ex.Message}"); |
| | | return commandResult; |
| | | } |