| | |
| | | private short heartBeatVal = 1; |
| | | private boolean resetFlag = false; |
| | | |
| | | private Integer lastRow; |
| | | private Integer lastBay; |
| | | private Integer lastLev; |
| | | |
| | | public SteThread(SteSlave slave) { |
| | | this.slave = slave; |
| | | } |
| | |
| | | steProtocol.setSteNo(slave.getId().shortValue()); |
| | | steProtocol.setMode((short) 0); |
| | | steProtocol.setStatus(SteStatusType.OFF_LINE); |
| | | steProtocol.setTaskNo(0); |
| | | steProtocol.setTaskNo((short) 0); |
| | | steProtocol.setExecute(false); |
| | | steProtocol.setWaiting(false); |
| | | } |
| | |
| | | steProtocol.setPos(siemensS7Net.getByteTransform().TransInt16(result.Content, 18)); |
| | | steProtocol.setLoad(siemensS7Net.getByteTransform().TransInt16(result.Content, 20)); |
| | | steProtocol.setTrack(siemensS7Net.getByteTransform().TransInt16(result.Content, 22)); |
| | | steProtocol.setTaskNo(siemensS7Net.getByteTransform().TransInt32(result.Content, 24)); |
| | | steProtocol.setTaskNo(siemensS7Net.getByteTransform().TransInt16(result.Content, 24)); |
| | | steProtocol.setTaskType(siemensS7Net.getByteTransform().TransInt16(result.Content, 28)); |
| | | steProtocol.setRow(siemensS7Net.getByteTransform().TransInt16(result.Content, 30)); |
| | | steProtocol.setBay(siemensS7Net.getByteTransform().TransInt16(result.Content, 32)); |
| | |
| | | // 根据实时信息更新数据库 |
| | | BasSteService service = SpringUtils.getBean(BasSteService.class); |
| | | if (null != service) { |
| | | // 同步pakMk |
| | | BasSte one = service.selectById(slave.getId()); |
| | | if (one != null) { |
| | | steProtocol.setPakMk(one.getPakMk()); |
| | | } |
| | | |
| | | BasSte basSte = new BasSte(); |
| | | basSte.setSteNo(slave.getId()); |
| | | if (!service.updateById(steProtocol.toSqlModel(basSte))){ |
| | |
| | | } |
| | | |
| | | public void modifyPos(Integer row, Integer bay, Integer lev) { |
| | | this.lastRow = row; |
| | | this.lastBay = bay; |
| | | this.lastLev = lev; |
| | | BasSteService service = SpringUtils.getBean(BasSteService.class); |
| | | if (!service.updatePos(this.slave.getId(), row, bay, lev)) { |
| | | log.error("更新{}号穿梭车定位失败 ===>> 排:【{}】, 列:【{}】,层:【{}】", this.slave.getId(), row, bay, lev); |
| | | } |
| | | } |
| | | |
| | | public boolean confirmPos() { |
| | | if (this.lastRow != null && this.lastRow != 0) { |
| | | if (this.lastBay != null && this.lastBay != 0) { |
| | | if (this.lastLev != null && this.lastLev != 0) { |
| | | BasSteService service = SpringUtils.getBean(BasSteService.class); |
| | | BasSte basSte = service.selectById(slave.getId()); |
| | | if (basSte != null) { |
| | | // 更新plc数据块 |
| | | short[] arr = new short[] {this.lastRow.shortValue(), this.lastBay.shortValue(), this.lastLev.shortValue()}; |
| | | OperateResult result = siemensS7Net.Write("V1002", arr); |
| | | if (result.IsSuccess) { |
| | | // 更新数据库 |
| | | if (service.updatePos(this.lastRow, this.lastBay, this.lastLev) > 0) { |
| | | this.lastRow = null; |
| | | this.lastBay = null; |
| | | this.lastLev = null; |
| | | return true; |
| | | } else { |
| | | log.error("{}号穿梭车修改数据库定位失败!!!", slave.getId()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | BasSteService service = SpringUtils.getBean(BasSteService.class); |
| | | BasSte basSte = service.selectById(slave.getId()); |
| | | if (basSte != null) { |
| | | // 更新plc数据块 |
| | | short[] arr = new short[] {basSte.getRow().shortValue(), basSte.getBay().shortValue(), basSte.getLev().shortValue()}; |
| | | OperateResult result = siemensS7Net.Write("V1002", arr); |
| | | if (result.IsSuccess) { |
| | | // 更新数据库 |
| | | if (service.updatePakMk(this.slave.getId(), "N")) { |
| | | return true; |
| | | } else { |
| | | log.error("{}号穿梭车修改数据库定位失败!!!", slave.getId()); |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public boolean modifyPosHandle(Integer row, Integer bay, Integer lev) { |
| | | short[] arr = new short[] {row.shortValue(), bay.shortValue(), lev.shortValue()}; |
| | | OperateResult result = siemensS7Net.Write("V1002", arr); |
| | | if (!result.IsSuccess) { |
| | | return false; |
| | | } |
| | | BasSteService service = SpringUtils.getBean(BasSteService.class); |
| | | if (!service.updatePos(this.slave.getId(), row, bay, lev)) { |
| | | log.error("更新{}号穿梭车定位失败 ===>> 排:【{}】, 列:【{}】,层:【{}】", this.slave.getId(), row, bay, lev); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public void close() { |
| | | siemensS7Net.ConnectClose(); |