#
luxiaotao1123
2020-09-02 e08b0e5516fb552c99362e474bb6959dab92d90a
src/main/java/com/zy/core/thread/CrnThread.java
@@ -113,13 +113,13 @@
     */
    private void readStatus(){
        try {
            if (null == crnProtocol) {
                crnProtocol = new CrnProtocol();
            }
            /* 方法1 */
            OperateResultExOne<byte[]> result = melsecMcNet.Read("D2231", (short) 62);
            if (result.IsSuccess) {
                if (null == crnProtocol) {
                    crnProtocol = new CrnProtocol();
                }
                crnProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
                crnProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 4));
                crnProtocol.setStatus(melsecMcNet.getByteTransform().TransInt16(result.Content, 6));
@@ -144,8 +144,28 @@
                crnProtocol.setXDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 54));
                crnProtocol.setYDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 58));
                OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId()));
                // 复位信号
                if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
                    if (resetFlag) {
                        if (melsecMcNet.Write("D2218", (short) 1).IsSuccess) {
                            resetFlag = false;
                        }
                    }
                }
                // 根据实时信息更新数据库
                BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
                BasCrnp basCrnp = new BasCrnp();
                basCrnp.setCrnNo(slave.getId());
                if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
                    log.error("堆垛机plc数据库更新失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                }
            } else {
                throw new CoolException("堆垛机plc状态信息失败");
                OutputQueue.CRN.offer(MessageFormat.format("【{0}】{1}堆垛机plc状态信息失败",DateUtils.convert(new Date()), slave.getId()));
                throw new CoolException(MessageFormat.format( "堆垛机plc状态信息失败 ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort()));
            }
            /* 方法2 */
//            crnProtocol.setMode(melsecMcNet.ReadInt16("D2231").Content);
@@ -175,26 +195,7 @@
            e.printStackTrace();
            OutputQueue.CRN.offer(MessageFormat.format("【{0}】读取堆垛机plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
            log.error("读取堆垛机plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
            return;
        }
        OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId()));
//        if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
//            if (resetFlag) {
//                if (melsecMcNet.Write("D2218", 1).IsSuccess) {
//                    resetFlag = false;
//                }
//            }
//        }
        // 根据实时信息更新数据库
//        BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
//        BasCrnp basCrnp = new BasCrnp();
//        basCrnp.setCrnNo(slave.getId());
//        if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
//            log.error("堆垛机plc数据库更新失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
//        }
    }
@@ -237,7 +238,7 @@
                if (!melsecMcNet.Write("D2218", command.getAckFinish()).IsSuccess) { break; }
            }
            System.out.println(MessageFormat.format("【{0}】[id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
            log.info("堆垛机命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
            OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
            return;
@@ -270,7 +271,7 @@
    public CrnProtocol getCrnProtocol(){
        if (crnProtocol == null) {
            readStatus();
            throw new CoolException(slave.getId() + "号堆垛机连接失败");
        }
        return this.crnProtocol;
    }