| | |
| | | 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; |
| | | 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; |
| | | //æ¯å¦å¯è¿åº |
| | | 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},对åºçåè®®"); |
| | | |
| | | /*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;*/ |
| | | int statusValue = 0; |
| | | int portStatus = conveyorLine.Communicator.Read<int>(deviceProDTO.DeviceProAddress); |
| | | int StationStatus = conveyorLine.Communicator.Read<int>(StationNumProDTO.DeviceProAddress); |
| | | |
| | | //æè´§ï¼å¯è¿ä¿¡å· |
| | | statusValue = ((portStatus == 1 && StationStatus == 1) || (portStatus == 2 && StationStatus == 0)) ? 1 : (portStatus == 0) ? 0 : 0; |
| | | |
| | | portStatusDict[DeStateName] = statusValue; |
| | | } |
| | | |
| | | return apiResponse.SuccessResponse(portStatusDict); |
| | |
| | | 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; |
| | | |
| | | |
| | | 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) |
| | | { |
| | | |
| | | |
| | | //æ¯å¦å¯è¿åº |
| | | 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<int>(deviceProDTO.DeviceProAddress); |
| | | int StationStatus = conveyorLine.Communicator.Read<int>(StationNumProDTO.DeviceProAddress); |
| | | //æè´§ï¼å¯è¿ä¿¡å· |
| | | statusValue = ((portStatus == 1 && StationStatus == 1) || (portStatus == 2 && StationStatus == 0)) ? 1 : (portStatus == 0) ? 0 : 0; |
| | | |
| | | if (statusValue == 1) |
| | | |
| | | {//åå
¥è¾éçº¿ä¿¡å· |
| | | bool HandShakebool = conveyorLine.Communicator.Write<short>(HandShake.DeviceProAddress, 1); |
| | | if (HandShakebool) |
| | | { |
| | | return apiResponse.SuccessResponse(); |
| | | } |
| | | else |
| | | { |
| | | return apiResponse.ErrorResponse("agvåå
¥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) |
| | | { |