#
luxiaotao1123
2022-01-05 d022fc437728829a65b74a53048a84ea17245917
src/main/java/com/zy/core/thread/CrnThread.java
@@ -115,35 +115,32 @@
     */
    private void readStatus(){
        try {
            /* 方法1 */
            OperateResultExOne<byte[]> result = melsecMcNet.Read("D2231", (short) 70);
            OperateResultExOne<byte[]> result = melsecMcNet.Read("D20", (short) 70);
            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));
                crnProtocol.setBay(melsecMcNet.getByteTransform().TransInt16(result.Content, 8));
                crnProtocol.setLevel(melsecMcNet.getByteTransform().TransInt16(result.Content, 10));
                crnProtocol.setForkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 12));
                crnProtocol.setLiftPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 14));
                crnProtocol.setWalkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 16));
//               crnProtocol.setTaskFinish(melsecMcNet.getByteTransform().TransInt16(result.Content, 18));
                crnProtocol.setLoaded(melsecMcNet.getByteTransform().TransInt16(result.Content, 20));
                crnProtocol.setAlarm(melsecMcNet.getByteTransform().TransInt16(result.Content, 22));
                crnProtocol.setTemp1(melsecMcNet.getByteTransform().TransBool(result.Content, 26, 2));
                crnProtocol.setTemp2(melsecMcNet.getByteTransform().TransInt16(result.Content, 28));
                crnProtocol.setTemp3(melsecMcNet.getByteTransform().TransInt16(result.Content, 30));
                crnProtocol.setTemp4(melsecMcNet.getByteTransform().TransInt16(result.Content, 32));
                crnProtocol.setXSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 34));
                crnProtocol.setYSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 38));
                crnProtocol.setZSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 42));
                crnProtocol.setXDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 46));
                crnProtocol.setYDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 50));
                crnProtocol.setXDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 54));
                crnProtocol.setYDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 62));
                crnProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
                crnProtocol.setStatus(melsecMcNet.getByteTransform().TransInt16(result.Content, 4));
                crnProtocol.setBay(melsecMcNet.getByteTransform().TransInt16(result.Content, 6));
                crnProtocol.setLevel(melsecMcNet.getByteTransform().TransInt16(result.Content, 8));
                crnProtocol.setForkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 10));
                crnProtocol.setLiftPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 12));
                crnProtocol.setWalkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 14));
                crnProtocol.setLoaded(melsecMcNet.getByteTransform().TransInt16(result.Content, 16));
                crnProtocol.setAlarm(melsecMcNet.getByteTransform().TransInt16(result.Content, 18));
                crnProtocol.setTemp1(melsecMcNet.getByteTransform().TransInt16(result.Content, 20));
                crnProtocol.setTemp2(melsecMcNet.getByteTransform().TransInt16(result.Content, 22));
                crnProtocol.setTemp3(melsecMcNet.getByteTransform().TransInt16(result.Content, 24));
                crnProtocol.setTemp4(melsecMcNet.getByteTransform().TransInt16(result.Content, 26));
                crnProtocol.setXSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 28));
                crnProtocol.setYSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 32));
                crnProtocol.setZSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 36));
                crnProtocol.setXDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 40));
                crnProtocol.setYDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 44));
                crnProtocol.setXDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 48));
                crnProtocol.setYDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 52));
                OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId()));
@@ -170,30 +167,6 @@
                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);
//            crnProtocol.setTaskNo(melsecMcNet.ReadInt16("D2233").Content);
//            crnProtocol.setStatus(melsecMcNet.ReadInt16("D2234").Content);
//            crnProtocol.setBay(melsecMcNet.ReadInt16("D2231").Content);
//            crnProtocol.setLevel(melsecMcNet.ReadInt16("D2231").Content);
//            crnProtocol.setForkPos(melsecMcNet.ReadInt16("D2231").Content);
//            crnProtocol.setLiftPos(melsecMcNet.ReadInt16("D2231").Content);
//            crnProtocol.setWalkPos(melsecMcNet.ReadInt16("D2231").Content);
////            crnProtocol.setTaskFinish(siemensNet.getByteTransform().TransInt16(result.Content, 16));
//            crnProtocol.setLoaded(melsecMcNet.ReadInt16("D2231").Content);
//            crnProtocol.setAlarm(melsecMcNet.ReadInt16("D2231").Content);
//            crnProtocol.setError1(melsecMcNet.ReadBool("D2231", (short) 2).Content);
//            crnProtocol.setTemp1(melsecMcNet.ReadInt16("D2231").Content);
//            crnProtocol.setTemp2(melsecMcNet.ReadInt16("D2231").Content);
//            crnProtocol.setTemp3(melsecMcNet.ReadInt16("D2231").Content);
//            crnProtocol.setTemp4(melsecMcNet.ReadInt16("D2231").Content);
//            crnProtocol.setXSpeed(melsecMcNet.ReadFloat("D2231").Content);
//            crnProtocol.setYSpeed(melsecMcNet.ReadFloat("D2231").Content);
//            crnProtocol.setZSpeed(melsecMcNet.ReadFloat("D2231").Content);
//            crnProtocol.setXDistance(melsecMcNet.ReadFloat("D2231").Content);
//            crnProtocol.setYDistance(melsecMcNet.ReadFloat("D2231").Content);
//            crnProtocol.setXDuration(melsecMcNet.ReadFloat("D2231").Content);
//            crnProtocol.setYDuration(melsecMcNet.ReadFloat("D2231").Content);
        } catch (Exception e) {
            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()));
@@ -382,19 +355,6 @@
//        command.setDestinationPosZ((short) 0);     // 目标库位层
//        crnThread.write(command);
        // 7.坐标移行   目标发   pass
        CrnCommand command = new CrnCommand();
        command.setCrnNo(1); // 堆垛机编号
        command.setTaskNo((short) 0); // 工作号
        command.setAckFinish((short) 0);  // 任务完成确认位
        command.setTaskMode(CrnTaskModeType.OFFSET_MOVE); // 任务模式
        command.setSourcePosX((short) 0);     // 源库位排
        command.setSourcePosY((short) 0);     // 源库位列
        command.setSourcePosZ((short) 0);     // 源库位层
        command.setDestinationPosX((short) 1);     // 目标库位排
        command.setDestinationPosY((short) 3);     // 目标库位列
        command.setDestinationPosZ((short) 3);     // 目标库位层
        crnThread.write(command);
        // 只有出现指定异常才进行复位
//        if (crnThread.crnProtocol.getCrnError2().leftTakeNoneErr