| | |
| | | @Override |
| | | public ZyDualCrnStatusEntity getStatus() { |
| | | try { |
| | | OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 66); |
| | | OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56); |
| | | if (result.IsSuccess) { |
| | | ZyDualCrnStatusEntity crnStatus = new ZyDualCrnStatusEntity(); |
| | | crnStatus.setCrnNo(deviceConfig.getDeviceNo()); |
| | | crnStatus.setMode((int) siemensNet.getByteTransform().TransInt16(result.Content, 0)); |
| | | |
| | | //工位1 |
| | | crnStatus.setMode((int)siemensNet.getByteTransform().TransInt16(result.Content, 0)); |
| | | crnStatus.setTaskNo((int) siemensNet.getByteTransform().TransInt16(result.Content, 2)); |
| | | crnStatus.setStatus((int) siemensNet.getByteTransform().TransInt16(result.Content, 4)); |
| | | crnStatus.setForkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 6)); |
| | | crnStatus.setLoaded((int) siemensNet.getByteTransform().TransInt16(result.Content, 8)); |
| | | crnStatus.setTaskReceive((int) siemensNet.getByteTransform().TransInt16(result.Content, 10)); |
| | | |
| | | //工位2 |
| | | crnStatus.setTaskNoTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 12)); |
| | | crnStatus.setStatusTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 14)); |
| | | crnStatus.setForkPosTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 16)); |
| | | crnStatus.setLoadedTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 18)); |
| | | crnStatus.setTaskReceiveTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 20)); |
| | | |
| | | crnStatus.setBay((int) siemensNet.getByteTransform().TransInt16(result.Content, 22)); |
| | | crnStatus.setLevel((int) siemensNet.getByteTransform().TransInt16(result.Content, 24)); |
| | | crnStatus.setLiftPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 26)); |
| | | crnStatus.setWalkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 28)); |
| | | crnStatus.setAlarm((int) siemensNet.getByteTransform().TransInt16(result.Content, 30)); |
| | | crnStatus.setTemp1((int) siemensNet.getByteTransform().TransInt16(result.Content, 34)); |
| | | crnStatus.setTemp2((int) siemensNet.getByteTransform().TransInt16(result.Content, 36)); |
| | | crnStatus.setTemp3((int) siemensNet.getByteTransform().TransInt16(result.Content, 38)); |
| | | crnStatus.setTemp4((int) siemensNet.getByteTransform().TransInt16(result.Content, 40)); |
| | | crnStatus.setXSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 42)); |
| | | crnStatus.setYSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 44)); |
| | | crnStatus.setZSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 46)); |
| | | crnStatus.setXDistance((int) siemensNet.getByteTransform().TransInt16(result.Content, 48)); |
| | | crnStatus.setYDistance((int) siemensNet.getByteTransform().TransInt16(result.Content, 50)); |
| | | crnStatus.setXDuration((int) siemensNet.getByteTransform().TransInt16(result.Content, 52)); |
| | | crnStatus.setYDuration((int) siemensNet.getByteTransform().TransInt16(result.Content, 54)); |
| | | crnStatus.setGoodsType((int) siemensNet.getByteTransform().TransInt16(result.Content, 56)); |
| | | crnStatus.setBay((int)siemensNet.getByteTransform().TransInt16(result.Content, 6)); |
| | | crnStatus.setLevel((int)siemensNet.getByteTransform().TransInt16(result.Content, 8)); |
| | | crnStatus.setForkPos((int)siemensNet.getByteTransform().TransInt16(result.Content, 10)); |
| | | crnStatus.setLiftPos((int)siemensNet.getByteTransform().TransInt16(result.Content, 12)); |
| | | crnStatus.setWalkPos((int)siemensNet.getByteTransform().TransInt16(result.Content, 14)); |
| | | crnStatus.setLoaded((int)siemensNet.getByteTransform().TransInt16(result.Content, 16)); |
| | | crnStatus.setAlarm((int)siemensNet.getByteTransform().TransInt16(result.Content, 18)); |
| | | crnStatus.setTemp1((int)siemensNet.getByteTransform().TransInt16(result.Content, 20)); |
| | | crnStatus.setTemp2((int)siemensNet.getByteTransform().TransInt16(result.Content, 22)); |
| | | crnStatus.setTemp3((int)siemensNet.getByteTransform().TransInt16(result.Content, 24)); |
| | | crnStatus.setTemp4((int)siemensNet.getByteTransform().TransInt16(result.Content, 26)); |
| | | crnStatus.setXSpeed((int)siemensNet.getByteTransform().TransInt16(result.Content, 28)); |
| | | crnStatus.setYSpeed((int)siemensNet.getByteTransform().TransInt16(result.Content, 32)); |
| | | crnStatus.setZSpeed((int)siemensNet.getByteTransform().TransInt16(result.Content, 36)); |
| | | crnStatus.setXDistance((int) siemensNet.getByteTransform().TransSingle(result.Content, 40)); |
| | | crnStatus.setYDistance((int) siemensNet.getByteTransform().TransSingle(result.Content, 44)); |
| | | crnStatus.setXDuration((int) siemensNet.getByteTransform().TransSingle(result.Content, 48)); |
| | | crnStatus.setYDuration((int) siemensNet.getByteTransform().TransSingle(result.Content, 52)); |
| | | crnStatus.setWeight(siemensNet.getByteTransform().TransSingle(result.Content, 56)); |
| | | |
| | | String barcode = siemensNet.getByteTransform().TransString(result.Content, 58, 8, "UTF-8"); |
| | | crnStatus.setBarcode(barcode); |
| | |
| | | return response; |
| | | } |
| | | |
| | | int writeAck = 0; |
| | | do { |
| | | OperateResult resultAck = siemensNet.Write("DB100.0", (short) 0); |
| | | if (resultAck.IsSuccess){ |
| | | Thread.sleep(200); |
| | | OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 2); |
| | | short ack = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0); |
| | | if (ack != 0) { |
| | | writeAck++; |
| | | }else { |
| | | // News.info("堆垛机命令下发[id:{}] >>>>> {}", slave.getId(), "ack复位完成"); |
| | | break; |
| | | } |
| | | } |
| | | }while (writeAck <5); |
| | | |
| | | String address = "DB100.0"; |
| | | if (command.getStation() == 1) { |
| | | //工位1 |
| | | address = "DB100.0"; |
| | | }else { |
| | | //工位2 |
| | | address = "DB100.18"; |
| | | } |
| | | |
| | | String confirmAddress = "DB100.16"; |
| | | if (command.getStation() == 1) { |
| | | //工位1 |
| | | confirmAddress = "DB100.16"; |
| | | }else { |
| | | //工位2 |
| | | confirmAddress = "DB100.34"; |
| | | } |
| | | String confirmAddress = "DB100.18"; |
| | | |
| | | short[] array = new short[9]; |
| | | array[0] = command.getTaskNo().shortValue(); |
| | | array[1] = command.getTaskMode().shortValue(); |
| | | array[2] = command.getSourcePosX().shortValue(); |
| | | array[3] = command.getSourcePosY().shortValue(); |
| | | array[4] = command.getSourcePosZ().shortValue(); |
| | | array[5] = command.getDestinationPosX().shortValue(); |
| | | array[6] = command.getDestinationPosY().shortValue(); |
| | | array[7] = command.getDestinationPosZ().shortValue(); |
| | | array[8] = (short) 0; |
| | | short[] array = new short[10]; |
| | | array[0] = 0; |
| | | array[1] = command.getTaskNo().shortValue(); |
| | | array[2] = command.getTaskMode().shortValue(); |
| | | array[3] = command.getSourcePosX().shortValue(); |
| | | array[4] = command.getSourcePosY().shortValue(); |
| | | array[5] = command.getSourcePosZ().shortValue(); |
| | | array[6] = command.getDestinationPosX().shortValue(); |
| | | array[7] = command.getDestinationPosY().shortValue(); |
| | | array[8] = command.getDestinationPosZ().shortValue(); |
| | | array[9] = (short) 0; |
| | | |
| | | OperateResult result = siemensNet.Write(address, array); |
| | | if (!result.IsSuccess) { |
| | |
| | | |
| | | int idx = 0; |
| | | do { |
| | | OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 18); |
| | | OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 20); |
| | | if (resultRead.IsSuccess) { |
| | | short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2); |
| | | short taskMode = siemensNet.getByteTransform().TransInt16(resultRead.Content, 4); |