| | |
| | | private short heartBeatVal = 1; |
| | | private boolean resetFlag = false; |
| | | |
| | | private Integer lastRow; |
| | | private Integer lastBay; |
| | | private Integer lastLev; |
| | | |
| | | public SteThread(SteSlave slave) { |
| | | this.slave = slave; |
| | | } |
| | |
| | | // 根据实时信息更新数据库 |
| | | 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(); |