#
luxiaotao1123
2022-01-05 d022fc437728829a65b74a53048a84ea17245917
#
5个文件已修改
136 ■■■■■ 已修改文件
src/main/java/com/zy/core/enums/CrnLiftPosType.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/CrnModeType.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/CrnStatusType.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/CrnProtocol.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/CrnThread.java 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/CrnLiftPosType.java
@@ -2,12 +2,10 @@
public enum CrnLiftPosType {
    _DOWN(4, "双伸位低位"),
    _UP(3, "双伸位高位"),
    DOWN(2, "单伸位低位"),  // 下定位
    UP(1, "单伸位高位"),   // 上定位
    NONE(0, "不在定位"),   // 不在定位
    ERROR(-1, "未知"),   // 不在定位
    DOWN(0, "下定位"),  //
    UP(1, "上定位"),   //
    NONE(2, "不在定位"),   // 不在定位
    ;
    public Integer id;
src/main/java/com/zy/core/enums/CrnModeType.java
@@ -2,11 +2,10 @@
public enum CrnModeType {
    NONE(0, "未选择"),
    AUTO(1, "自动"),
    STOP(0, "维修"),
    HAND(1, "手动"),
    HALF_AUTO(2, "半自动"),
    HAND(3, "手动"),
    STOP(4, "维修"),
    AUTO(3, "自动"),
    ;
    public Integer id;
src/main/java/com/zy/core/enums/CrnStatusType.java
@@ -2,12 +2,18 @@
public enum CrnStatusType {
    IDLE(0, "空闲,无任务"),
    NONE_MOVING(1, "无货行走"),
    FETCHING(2, "取货"),
    MOVING(3, "有货行走"),
    PUTTING(4, "放货"),
    PUT_COMPLETE(5, "放货完成"),
    IDLE(0, "空闲"),
    FETCH_MOVING(1, "取货行走"),
    FETCH_WAITING(2, "取货等待"),
    FETCHING(3, "取货中"),
    PUT_MOVING(4, "放货走行"),
    PUT_WAITING(5, "放货等待"),
    PUTTING(6, "放货中"),
    ORIGIN_GO(7, "回原点"),
    ORIGIN_BACK(8, "回反原点"),
    MOVING(9, "走行中"),
    WAITING(10, "任务完成等待WCS确认"),
    SOS(99, "报警"),
    ;
    public Integer id;
src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -108,7 +108,7 @@
     */
    private Short alarm1;
    private boolean[] temp1;
    private Short temp1;
    private CrnTemp1 crnTemp1;
@@ -235,21 +235,12 @@
        this.status = CrnStatusType.get(type).id.shortValue();
    }
    public void setTemp1(boolean[] temp1) {
    public Short getTemp1() {
        return temp1;
    }
    public void setTemp1(Short temp1) {
        this.temp1 = temp1;
        this.crnTemp1 = new CrnTemp1();
        this.crnTemp1.liftLimitSwitchErr = temp1[0];
        this.crnTemp1.liftBrakeErr = temp1[1];
        this.crnTemp1.liftDiastimeterFau = temp1[2];
        this.crnTemp1.stop = temp1[3];
        this.crnTemp1.warn = temp1[4];
        this.crnTemp1.overHighErr = temp1[5];
        this.crnTemp1.leftOverWidthErr = temp1[6];
        this.crnTemp1.rightOverWidthErr = temp1[7];
        this.crnTemp1.leftOverLenErr = temp1[8];
        this.crnTemp1.rightOverLenErr = temp1[9];
        this.crnTemp1.pakinThenLoadedErr = temp1[10];
        this.crnTemp1.pakOutThenNoneErr = temp1[11];
    }
    /**
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