src/main/java/com/zy/asrs/entity/BasCrnp.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/ServerBootstrap.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/model/protocol/CrnProtocol.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensCrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/BasCrnpMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/entity/BasCrnp.java
@@ -51,6 +51,20 @@ private Integer crnSts; /** * 状态 */ @ApiModelProperty(value= "状态1") @TableField("crn_status_one") private Integer crnStatusOne; /** * 状态 */ @ApiModelProperty(value= "状态2") @TableField("crn_status_two") private Integer crnStatusTwo; /** * 工作号 */ @ApiModelProperty(value= "工作号") @@ -235,6 +249,22 @@ this.crnSts = crnSts; } public Integer getCrnStatusOne() { return crnStatusOne; } public void setCrnStatusOne(Integer crnStatusOne) { this.crnStatusOne = crnStatusOne; } public Integer getCrnStatusTwo() { return crnStatusTwo; } public void setCrnStatusTwo(Integer crnStatusTwo) { this.crnStatusTwo = crnStatusTwo; } public Integer getWrkNo() { return wrkNo; } @@ -243,6 +273,10 @@ this.wrkNo = wrkNo; } public Integer getWrkNoTwo() { return wrkNoTwo; } public void setWrkNoTwo(Integer wrkNoTwo) { this.wrkNoTwo = wrkNoTwo; } src/main/java/com/zy/core/ServerBootstrap.java
@@ -171,7 +171,7 @@ continue; } if (System.currentTimeMillis() - key.getSign() > 120000 && System.currentTimeMillis() - key.getSign()<1200000) { System.out.println("第"+CRN_COUNT+"个堆垛机线程被重启"); System.out.println("第" + CRN_COUNT + "个堆垛机线程被重启"); // 请求线程安全停止 key.requestStop(); src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -43,6 +43,7 @@ /** * 堆垛机当前状态 * -1:未知 * 0:空闲,无任务 * 1:取货定位中 * 2:取货中 @@ -53,9 +54,11 @@ * 7:库位移位 * 90:任务完成等待WCS确认 * 99:报警 * 100:其他100 * 101:未知101 */ public Short status; public Short statusTwo; public Short status = -1; public Short statusTwo = -1; /** * 状态枚举 @@ -285,6 +288,8 @@ } basCrnp.setWrkNo(taskNo.intValue()); basCrnp.setWrkNoTwo(taskNoTwo.intValue()); basCrnp.setCrnStatusOne(status.intValue()); basCrnp.setCrnStatusTwo(statusTwo.intValue()); return basCrnp; } src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -135,6 +135,7 @@ crnProtocol.setMode((short) -1); // crnProtocol.setTaskNo((short)0); crnProtocol.setStatus((short)-1); crnProtocol.setStatusTwo((short)-1); crnProtocol.setBay((short)0); crnProtocol.setLevel((short)0); crnProtocol.setForkPos((short) -1); @@ -149,6 +150,16 @@ crnProtocol.setyDistance((short) 0); crnProtocol.setxDuration((short) 0); crnProtocol.setyDuration((short) 0); // 根据实时信息更新数据库 BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class); BasCrnp basCrnp = basCrnpService.selectById(slave.getId()); basCrnp.setCrnSts((int)crnProtocol.getMode()); basCrnp.setCrnStatusOne(-1); basCrnp.setCrnStatusTwo(-1); if (!basCrnpService.updateById(basCrnp)){ log.error("堆垛机plc数据库更新失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); } } @Override @@ -178,9 +189,9 @@ try { OperateResultExOne<byte[]> result = new OperateResultExOne<byte[]>(); if (slave.getId()>2 && slave.getId()<6){ result = siemensNet.Read("DB101.0", (short) 62); result = siemensNet.Read("DB101.0", (short) 66); } else { result = siemensNet.Read("DB101.0", (short) 52); result = siemensNet.Read("DB101.0", (short) 56); } if (result.IsSuccess) { if (null == crnProtocol) { @@ -194,7 +205,7 @@ crnProtocol.setLevel(siemensNet.getByteTransform().TransInt16(result.Content, 8)); crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10)); if (slave.getId()>2 && slave.getId()<6){ if (slave.getId()<3 || slave.getId()>5){ crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12)); crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14)); crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16)); @@ -220,6 +231,9 @@ crnProtocol.setForkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 22)); crnProtocol.setLoadedTwo(siemensNet.getByteTransform().TransInt16(result.Content, 24)); crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 30)); crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 32)); crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 34)); crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 38)); crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 42)); @@ -229,12 +243,6 @@ crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 54)); crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 58)); crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 62)); } //工位2数据 无则无需理会 try{ }catch (Exception e){ } OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); src/main/resources/mapper/BasCrnpMapper.xml
@@ -8,6 +8,8 @@ <result column="in_enable" property="inEnable" /> <result column="out_enable" property="outEnable" /> <result column="crn_sts" property="crnSts" /> <result column="crn_status_one" property="crnStatusOne" /> <result column="crn_status_two" property="crnStatusTwo" /> <result column="wrk_no" property="wrkNo" /> <result column="wrk_no_two" property="wrkNoTwo" /> <result column="crn_err" property="crnErr" />