1
4 天以前 82374fe4b32d58956810f445b7889f1a370f1ab9
src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -1,5 +1,7 @@
package com.zy.core.model.protocol;
import com.zy.asrs.entity.BasCrnErrorLog;
import com.zy.asrs.entity.BasCrnp;
import com.zy.core.enums.CrnForkPosType;
import com.zy.core.enums.CrnLiftPosType;
import com.zy.core.enums.CrnModeType;
@@ -12,53 +14,46 @@
@Data
public class CrnProtocol {
    private Integer crnNo;
    /**
     * 1 = 手动模式
     * 2 = 自动模式
     * 3 = 电脑模式
     * 4 = 手动模式启动中
     * 5 = 自动模式启动中
     * 6 = 电脑模式启动中
     */
    public short mode;
    public Short mode;
    public CrnModeType modeType;
    /**
     * 1 = 急停
     */
    public short eStop;
    public Short eStop;
    /**
     * 异常码
     */
    public short alarm;
    public Short alarm;
    /**
     * 任务号
     */
    public short taskNo;
    public Short taskNo = 0;
    /**
     * 堆垛机当前状态
     * 0 = 未知
     * 1 = 空闲
     * 2 = 检查任务数据
     * 3 = 定位到取货位
     * 7 = 取货完成
     * 8 = 等待调度柜允许
     * 9 = 移动到放货位置
     * 10 = 放货中
     * 13 = 搬运完成
     * 14 = 空载避让
     * 15 = 检查任务数据
     * 20 = 检查源位置
     * 21 = 检查目标位置
     * 50 = 移动任务
     * 98 = 任务完成,wcs未确认
     * 99 = 报警
     * 0:空闲,无任务
     * 1:取货定位中
     * 2:取货中
     * 3:取货完成,放货定位中
     * 4:放货中
     * 5:回原点中
     * 6:反原点
     * 7:库位移位
     * 90:任务完成等待WCS确认
     * 99:报警
     */
    public short status;
    public Short status;
    /**
     * 状态枚举
@@ -68,12 +63,12 @@
    /**
     * 堆垛机当前列号
     */
    public short bay;
    public Short bay;
    /**
     * 堆垛机当前层号
     */
    public short level;
    public Short level;
    /**
     * 当前货叉位置
@@ -81,16 +76,16 @@
     * 1 = 货叉在左侧
     * 2 = 货叉在右侧
     */
    public short forkPos;
    public Short forkPos;
    private CrnForkPosType forkPosType;
    public CrnForkPosType forkPosType;
    /**
     * 当前载货台位置
     * 0 = 下定位
     * 1 = 上定位
     */
    public short liftPos;
    public Short liftPos;
    public CrnLiftPosType liftPosType;
@@ -99,32 +94,211 @@
     * 0 = 在定位
     * 1 = 不在定位
     */
    public short walkPos;
    /**
     * 堆垛机任务完成
     */
    public short taskFinish;
    public Short walkPos;
    /**
     * 载货台有物
     */
    public short loaded;
    public Short loaded;
    private Short temp1;
    private CrnTemp1 crnTemp1;
    private Short temp2;
    private Short temp3;
    private Short temp4;
    /**
     * 堆垛机累计走行距离
     * 异常1
     */
    public int xDistance;
    private boolean[] error1;
    private CrnError1 crnError1;
    /**
     * 堆垛机累计升降距离
     * 异常2
     */
    public int yDistance;
    private boolean[] error2;
    private CrnError2 crnError2;
    /**
     * 堆垛机累计运行时长
     * 异常3
     */
    public int duration;
    private boolean[] error3;
    private CrnError3 crnError3;
    /**
     * 异常4
     */
    private boolean[] error4;
    private CrnError4 crnError4;
    /**
     * 异常5
     */
    private boolean[] error5;
    private CrnError5 crnError5;
    /**
     * 异常6
     */
    private boolean[] error6;
    private CrnError6 crnError6;
    /**
     * X行走线速度m/min
     */
    private Float xSpeed;
    /**
     * Y行走线速度m/min
     */
    private Float ySpeed;
    /**
     * Z行走线速度m/min
     */
    private Float zSpeed;
    /**
     * 堆垛机累计走行距离km
     */
    public Float xDistance;
    /**
     * 堆垛机累计升降距离km
     */
    public Float yDistance;
    /**
     * 堆垛机累计走行时长h
     */
    public Float xDuration;
    /**
     * 堆垛机累计升降时长h
     */
    public Float yDuration;
    //堆垛机配置信号--------------------------------------------------------------
    // 故障读取锁定标记
    private boolean errorMk = false;
    //写入标记
    private boolean writeMk = true;
    private Boolean ibDriveFault = false;       // 行走变频器故障
    private Boolean ibSupplyFault = false;      // 提供变频器故障
    private Boolean ibForkDriveFault = false;   // 货叉变频器故障
    private Boolean ibDriveCircuitFault = false; // 行走断路器故障
    private Boolean ibLiftCircuitFault = false; // 提升断路器故障
    private Boolean ibForkCircuitFault = false; // 货叉断路器故障
    private Boolean ibForwardLimit = false;     // 前进限位
    private Boolean ibReverseLimit = false;     // 后退限位
    private Boolean ibDriveStart = false;       // 行走原点
    private Boolean ibForwardBrakeSpeed = false; // 前进强制低速
    private Boolean ibReverseBrakeSpeed = false; // 后退强制低速
    private Boolean ibUpLimit = false;          // 上升限位
    private Boolean ibDownLimit = false;        // 下限限位
    private Boolean ibUpOrigin = false;         // 提升原点
    private Boolean ibUpBrakeSpeed = false;     // 上升强制低速
    private Boolean ibDownBrakeSpeed = false;   // 下降强制低速
    private Boolean ibPlatformSignal = false;   // 载货台探货
    private Boolean ibForkMidSignal = false;    // 货叉中位信号
    private Boolean ibForkLeftLimit = false;    // 货叉左极限
    private Boolean ibForkRightLimit = false;   // 货叉右极限
    private Boolean ibFrontOverLimit = false;   // 前超限
    private Boolean ibRearOverLimit = false;    // 后超限
    private Boolean ibLeftOverLimit = false;    // 左超限
    private Boolean ibRightOverLimit = false;   // 右超限
    private Boolean ibHighOverLimit1 = false;   // 高超限1
    private Boolean ibHighOverLimit2 = false;   // 高超限2
    private Boolean ibHighOverLimit3 = false;   // 高超限3
    private Boolean ibOneExtendLeftLoad1 = false; // 一伸左侧探货1
    private Boolean ibOneExtendLeftLoad2 = false; // 一伸左侧探货2
    private Boolean ibOneExtendRightLoad1 = false; // 一伸右侧探货1
    private Boolean ibOneExtendRightLoad2 = false; // 一伸右侧探货2
    private Boolean ibTwoExtendLeftLoad1 = false; // 二伸左侧探货1
    private Boolean ibTwoExtendLeftLoad2 = false; // 二伸左侧探货2
    private Boolean ibTwoExtendRightLoad1 = false; // 二伸右侧探货1
    private Boolean ibTwoExtendRightLoad2 = false; // 二伸右侧探货2
    private Boolean ibSpeedSignal1 = false;      // 超速信号1
    private Boolean ibSpeedSignal2 = false;      // 超速信号2
    private Boolean ibOverweightSignal1 = false; // 超重信号1
    private Boolean ibOverweightSignal2 = false; // 超重信号2
    private Boolean ibRopeReleaseSignal1 = false; // 松绳信号1
    private Boolean ibRopeReleaseSignal2 = false; // 松绳信号2
    private Boolean ibSafetyClamp = false;       // 安全钳
    private Boolean ibTightener = false;         // 张紧器
    private Boolean ibSpeedLimiter = false;      // 限速器
    private Boolean ibSafetyDoorOpen = false;    // 安全门打开
    //-------------------------------------------------------------------
    public BasCrnErrorLog toSqlModelError() {
        BasCrnErrorLog basCrnErrorLog = new BasCrnErrorLog();
        // 错误字段转换
        basCrnErrorLog.setCrnNo(crnNo);
        basCrnErrorLog.setIbDriveFault(ibDriveFault ? "Y" : "N");       // 行走变频器故障
        basCrnErrorLog.setIbSupplyFault(ibSupplyFault ? "Y" : "N");      // 提供变频器故障
        basCrnErrorLog.setIbForkDriveFault(ibForkDriveFault ? "Y" : "N");   // 货叉变频器故障
        basCrnErrorLog.setIbDriveCircuitFault(ibDriveCircuitFault ? "Y" : "N"); // 行走断路器故障
        basCrnErrorLog.setIbLiftCircuitFault(ibLiftCircuitFault ? "Y" : "N"); // 提升断路器故障
        basCrnErrorLog.setIbForkCircuitFault(ibForkCircuitFault ? "Y" : "N"); // 货叉断路器故障
        basCrnErrorLog.setIbForwardLimit(ibForwardLimit ? "Y" : "N");     // 前进限位
        basCrnErrorLog.setIbReverseLimit(ibReverseLimit ? "Y" : "N");     // 后退限位
        basCrnErrorLog.setIbDriveStart(ibDriveStart ? "Y" : "N");       // 行走原点
        basCrnErrorLog.setIbForwardBrakeSpeed(ibForwardBrakeSpeed ? "Y" : "N"); // 前进强制低速
        basCrnErrorLog.setIbReverseBrakeSpeed(ibReverseBrakeSpeed ? "Y" : "N"); // 后退强制低速
        basCrnErrorLog.setIbUpLimit(ibUpLimit ? "Y" : "N");          // 上升限位
        basCrnErrorLog.setIbDownLimit(ibDownLimit ? "Y" : "N");        // 下限限位
        basCrnErrorLog.setIbUpOrigin(ibUpOrigin ? "Y" : "N");         // 提升原点
        basCrnErrorLog.setIbUpBrakeSpeed(ibUpBrakeSpeed ? "Y" : "N");     // 上升强制低速
        basCrnErrorLog.setIbDownBrakeSpeed(ibDownBrakeSpeed ? "Y" : "N");   // 下降强制低速
        basCrnErrorLog.setIbPlatformSignal(ibPlatformSignal ? "Y" : "N");   // 载货台探货
        basCrnErrorLog.setIbForkMidSignal(ibForkMidSignal ? "Y" : "N");    // 货叉中位信号
        basCrnErrorLog.setIbForkLeftLimit(ibForkLeftLimit ? "Y" : "N");    // 货叉左极限
        basCrnErrorLog.setIbForkRightLimit(ibForkRightLimit ? "Y" : "N");   // 货叉右极限
        basCrnErrorLog.setIbFrontOverLimit(ibFrontOverLimit ? "Y" : "N");   // 前超限
        basCrnErrorLog.setIbRearOverLimit(ibRearOverLimit ? "Y" : "N");    // 后超限
        basCrnErrorLog.setIbLeftOverLimit(ibLeftOverLimit ? "Y" : "N");    // 左超限
        basCrnErrorLog.setIbRightOverLimit(ibRightOverLimit ? "Y" : "N");   // 右超限
        basCrnErrorLog.setIbHighOverLimit1(ibHighOverLimit1 ? "Y" : "N");   // 高超限1
        basCrnErrorLog.setIbHighOverLimit2(ibHighOverLimit2 ? "Y" : "N");   // 高超限2
        basCrnErrorLog.setIbHighOverLimit3(ibHighOverLimit3 ? "Y" : "N");   // 高超限3
        basCrnErrorLog.setIbOneExtendLeftLoad1(ibOneExtendLeftLoad1 ? "Y" : "N"); // 一伸左侧探货1
        basCrnErrorLog.setIbOneExtendLeftLoad2(ibOneExtendLeftLoad2 ? "Y" : "N"); // 一伸左侧探货2
        basCrnErrorLog.setIbOneExtendRightLoad1(ibOneExtendRightLoad1 ? "Y" : "N"); // 一伸右侧探货1
        basCrnErrorLog.setIbOneExtendRightLoad2(ibOneExtendRightLoad2 ? "Y" : "N"); // 一伸右侧探货2
        basCrnErrorLog.setIbTwoExtendLeftLoad1(ibTwoExtendLeftLoad1 ? "Y" : "N"); // 二伸左侧探货1
        basCrnErrorLog.setIbTwoExtendLeftLoad2(ibTwoExtendLeftLoad2 ? "Y" : "N"); // 二伸左侧探货2
        basCrnErrorLog.setIbTwoExtendRightLoad1(ibTwoExtendRightLoad1 ? "Y" : "N"); // 二伸右侧探货1
        basCrnErrorLog.setIbTwoExtendRightLoad2(ibTwoExtendRightLoad2 ? "Y" : "N"); // 二伸右侧探货2
        basCrnErrorLog.setIbSpeedSignal1(ibSpeedSignal1 ? "Y" : "N");      // 超速信号1
        basCrnErrorLog.setIbSpeedSignal2(ibSpeedSignal2 ? "Y" : "N");      // 超速信号2
        basCrnErrorLog.setIbOverweightSignal1(ibOverweightSignal1 ? "Y" : "N"); // 超重信号1
        basCrnErrorLog.setIbOverweightSignal2(ibOverweightSignal2 ? "Y" : "N"); // 超重信号2
        basCrnErrorLog.setIbRopeReleaseSignal1(ibRopeReleaseSignal1 ? "Y" : "N"); // 松绳信号1
        basCrnErrorLog.setIbRopeReleaseSignal2(ibRopeReleaseSignal2 ? "Y" : "N"); // 松绳信号2
        basCrnErrorLog.setIbSafetyClamp(ibSafetyClamp ? "Y" : "N");       // 安全钳
        basCrnErrorLog.setIbTightener(ibTightener ? "Y" : "N");         // 张紧器
        basCrnErrorLog.setIbSpeedLimiter(ibSpeedLimiter ? "Y" : "N");      // 限速器
        basCrnErrorLog.setIbSafetyDoorOpen(ibSafetyDoorOpen ? "Y" : "N");    // 安全门打开
        return basCrnErrorLog;
    }
    public void setMode(Short mode) {
        this.mode = mode;
@@ -166,4 +340,56 @@
        this.status = CrnStatusType.get(type).id.shortValue();
    }
    public Short getTemp1() {
        return temp1;
    }
    public void setTemp1(Short temp1) {
        this.temp1 = temp1;
    }
    /**
     * 最近一次入出库类型
     *       I:入库
     *       O:出库
     */
    private String lastIo = "I";
    public BasCrnp toSqlModel(BasCrnp basCrnp){
        if (alarm!=null) {
            basCrnp.setCrnErr(alarm.longValue());
        }
        basCrnp.setWrkNo(taskNo.intValue());
        return basCrnp;
    }
    public void setxSpeed(float xSpeed) {
        this.xSpeed = xSpeed;
    }
    public void setySpeed(float ySpeed) {
        this.ySpeed = ySpeed;
    }
    public void setzSpeed(float zSpeed) {
        this.zSpeed = zSpeed;
    }
    public void setxDistance(float xDistance) {
        this.xDistance = xDistance;
    }
    public void setyDistance(float yDistance) {
        this.yDistance = yDistance;
    }
    public void setxDuration(float xDuration) {
        this.xDuration = xDuration;
    }
    public void setyDuration(float yDuration) {
        this.yDuration = yDuration;
    }
}