| | |
| | | liftExtend.setLock(siemensS7Net.getByteTransform().TransInt16(result1.Content, 10) == 1); |
| | | liftProtocol.setExtend(liftExtend); |
| | | |
| | | boolean ready = true; |
| | | if (!liftProtocol.getModel() || liftProtocol.getRun()) { |
| | | ready = false; |
| | | } |
| | | liftProtocol.setReady(ready);//就绪状态 |
| | | |
| | | |
| | | }else { |
| | | OutputQueue.LIFT.offer(MessageFormat.format("【{0}】{1}读取提升机状态信息失败", DateUtils.convert(new Date()), device.getId())); |
| | |
| | | array[i] = shorts.get(i); |
| | | } |
| | | |
| | | OperateResult result = siemensS7Net.Write("DB83.0", array); |
| | | OperateResult result = null; |
| | | if (command.getMode() == LiftCommandModeType.MOVE.id) { |
| | | //移动 |
| | | result = siemensS7Net.Write("DB101.2", array); |
| | | } else if (command.getMode() == LiftCommandModeType.PALLET_INOUT.id) { |
| | | //托盘出入 |
| | | result = siemensS7Net.Write("DB101.8", array); |
| | | } else if (command.getMode() == LiftCommandModeType.LOCK.id || command.getMode() == LiftCommandModeType.UNLOCK.id) { |
| | | //提升机锁定/解锁 |
| | | result = siemensS7Net.Write("DB101.0", array); |
| | | } |
| | | |
| | | if (result != null && result.IsSuccess) { |
| | | liftProtocol.setSendTime(System.currentTimeMillis());//指令下发时间 |
| | | News.info("提升机命令下发[id:{}] >>>>> {}", device.getId(), JSON.toJSON(command)); |
| | | OutputQueue.LIFT.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), device.getId(), JSON.toJSON(command))); |
| | | return true; |
| | | } else { |
| | | OutputQueue.LIFT.offer(MessageFormat.format("【{0}】写入提升机plc数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}],次数:{}", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort())); |
| | | OutputQueue.LIFT.offer(MessageFormat.format("【{0}】写入提升机plc数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort())); |
| | | News.error("写入提升机plc数据失败 ===>> [id:{}] [ip:{}] [port:{}]", device.getId(), device.getIp(), device.getPort()); |
| | | return false; |
| | | } |
| | |
| | | |
| | | @Override |
| | | public List<LiftCommand> getMoveCommand(Integer taskNo, Integer sourceLev, Integer targetLev, LiftCommandModeType mode) { |
| | | /** |
| | | * 任务类型 |
| | | * 1=移托盘;升降机将源站台托盘移到目标站台 |
| | | * 2=移小车,升降机移到目标层,等待 |
| | | */ |
| | | short taskMode = 2; |
| | | if (mode.equals(LiftCommandModeType.PALLET_INOUT)) { |
| | | taskMode = 1; |
| | | } |
| | | |
| | | // 开始任务 |
| | | short[] array = new short[4]; |
| | | //任务类型 |
| | | array[0] = taskMode; |
| | | //源站台编号 |
| | | array[1] = sourceLev.shortValue(); |
| | | //目标站台编号 |
| | | array[2] = targetLev.shortValue(); |
| | | //任务号 |
| | | array[3] = taskNo.shortValue(); |
| | | short[] array = new short[2]; |
| | | array[0] = targetLev.shortValue();//目标层 |
| | | array[1] = taskNo.shortValue();//工作号 |
| | | |
| | | LiftCommand command = new LiftCommand(); |
| | | command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); |
| | | command.setTaskNo(taskNo); |
| | | command.setBody(JSON.toJSONString(array)); |
| | | command.setMode(LiftCommandModeType.MOVE.id); |
| | | command.setOriginLev(sourceLev); |
| | |
| | | |
| | | @Override |
| | | public List<LiftCommand> getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode) { |
| | | return getMoveCommand(taskNo, sourceLev, targetLev, mode); |
| | | // 开始任务 |
| | | short[] array = new short[2]; |
| | | array[0] = originSta.shortValue();//起始站 |
| | | array[1] = targetSta.shortValue();//目标站 |
| | | array[2] = taskNo.shortValue();//工作号 |
| | | |
| | | LiftCommand command = new LiftCommand(); |
| | | command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); |
| | | command.setTaskNo(taskNo); |
| | | command.setBody(JSON.toJSONString(array)); |
| | | command.setMode(LiftCommandModeType.PALLET_INOUT.id); |
| | | command.setOriginLev(sourceLev); |
| | | command.setTargetLev(targetLev); |
| | | |
| | | ArrayList<LiftCommand> list = new ArrayList<>(); |
| | | list.add(command); |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public List<LiftCommand> getLockCommand(Integer taskNo, Boolean lock) { |
| | | return null; |
| | | // 开始任务 |
| | | short[] array = new short[2]; |
| | | array[0] = lock ? (short) 1 : (short) 0; |
| | | |
| | | LiftCommand command = new LiftCommand(); |
| | | command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); |
| | | command.setTaskNo(taskNo); |
| | | command.setBody(JSON.toJSONString(array)); |
| | | command.setMode(LiftCommandModeType.PALLET_INOUT.id); |
| | | |
| | | ArrayList<LiftCommand> list = new ArrayList<>(); |
| | | list.add(command); |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | |
| | | public boolean connect() { |
| | | boolean result = false; |
| | | //-------------------------提升机连接方法------------------------// |
| | | siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, device.getIp()); |
| | | siemensS7Net = new SiemensS7Net(SiemensPLCS.S1500, device.getIp()); |
| | | OperateResult connect = siemensS7Net.ConnectServer(); |
| | | if(connect.IsSuccess){ |
| | | result = true; |