自动化立体仓库 - WCS系统
#
tqs
2023-02-20 8e665b01e41676e31fd57e662d4aa2680137be60
#
4个文件已修改
545 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/SteController.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/vo/SteSensorDataVo.java 253 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/SteProtocol.java 175 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SteThread.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/SteController.java
@@ -201,6 +201,63 @@
                if (steProtocol == null) {
                    return R.error("设备不在线");
                }
                // 穿梭车异常 -----------
                vo.setLiftErr(steProtocol.isLiftErr());
                vo.setInFetchErr(steProtocol.isInFetchErr());
                vo.setOutFetchErr(steProtocol.isOutFetchErr());
                vo.setAntiErr(steProtocol.isAntiErr());
                vo.setLiftSwitchErr(steProtocol.isLiftSwitchErr());
                vo.setTrackErr(steProtocol.isTrackErr());
                vo.setTimeoutErr(steProtocol.isTimeoutErr());
                vo.setConnectErr(steProtocol.isConnectErr());
                vo.setEmergencyErr(steProtocol.isEmergencyErr());
                vo.setTaskTypeErr(steProtocol.isTaskTypeErr());
                vo.setTaskNoErr(steProtocol.isTaskNoErr());
                vo.setNewTaskErr(steProtocol.isNewTaskErr());
                vo.setErrTaskErr(steProtocol.isErrTaskErr());
                vo.setStopErr(steProtocol.isStopErr());
                vo.setOfflineTaskErr(steProtocol.isOfflineTaskErr());
                vo.setStartTaskErr(steProtocol.isStartTaskErr());
                vo.setVoltageTaskErr(steProtocol.isVoltageTaskErr());
                vo.setDevpErr(steProtocol.isDevpErr());
                // 穿梭车提示信息 ----------------------
                vo.setOnline(steProtocol.isOnline());
                vo.setNotOnTrack(steProtocol.isNotOnTrack());
                vo.setLowVoltage(steProtocol.isLowVoltage());
                vo.setElectricityLoss(steProtocol.isElectricityLoss());
                vo.setForcedTravel(steProtocol.isForcedTravel());
                vo.setDemoMode(steProtocol.isDemoMode());
                vo.setBrushConnect(steProtocol.isBrushConnect());
                vo.setTaskManualForbid(steProtocol.isTaskManualForbid());
                vo.setOnlineManualForbid(steProtocol.isOnlineManualForbid());
                vo.setDevpEmergency(steProtocol.isDevpEmergency());
                vo.setTaskInterrupt(steProtocol.isTaskInterrupt());
                vo.setTaskClear(steProtocol.isTaskClear());
                vo.setTaskConfirmTimeout(steProtocol.isTaskConfirmTimeout());
                vo.setTaskWithCharge(steProtocol.isTaskWithCharge());
                // 任务信息 ----------------
                vo.setPakInTask(steProtocol.isPakInTask());
                vo.setPakOutTask(steProtocol.isPakOutTask());
                vo.setPakMoveTask(steProtocol.isPakMoveTask());
                vo.setGoHpTask(steProtocol.isGoHpTask());
                vo.setGoOHpTask(steProtocol.isGoOHpTask());
                vo.setGoHpAvoid(steProtocol.isGoHpAvoid());
                vo.setGoOHpAvoid(steProtocol.isGoOHpAvoid());
                vo.setPakInEmpty(steProtocol.isPakInEmpty());
                vo.setPakInFinish(steProtocol.isPakInFinish());
                vo.setPakOutEmpty(steProtocol.isPakOutEmpty());
                vo.setPakOutFinish(steProtocol.isPakOutFinish());
                vo.setGoHpAvoidFinish(steProtocol.isGoHpAvoidFinish());
                vo.setGoOHpAvoidFinish(steProtocol.isGoOHpAvoidFinish());
                vo.setGoHpAvoidErr(steProtocol.isGoHpAvoidErr());
                vo.setGoOHpAvoidErr(steProtocol.isGoOHpAvoidErr());
                // 状态信息 -------------
                vo.setAutoMode(steProtocol.isAutoMode());
                vo.setVoltageLow(steProtocol.isVoltageLow());
                break;
            }
        }
src/main/java/com/zy/asrs/domain/vo/SteSensorDataVo.java
@@ -8,8 +8,259 @@
@Data
public class SteSensorDataVo {
    // 穿梭车号
    /**
     * 穿梭车号
     */
    private Integer steNo;
    // 穿梭车异常 ------------------------------------------------------------------------
    /**
     * 0.升降超时报警
     */
    private boolean liftErr;
    /**
     * 2.入库取空报警
     */
    private boolean inFetchErr;
    /**
     * 3.出库取空报警
     */
    private boolean outFetchErr;
    /**
     * 4.防撞保护
     */
    private boolean antiErr;
    /**
     * 5.升降接近开关故障
     */
    private boolean liftSwitchErr;
    /**
     * 6.轨道检测报警
     */
    private boolean trackErr;
    /**
     * 7.设备运行超时报警
     */
    private boolean timeoutErr;
    /**
     * 8.通信错误报警
     */
    private boolean connectErr;
    /**
     * 9.设备急停
     */
    private boolean emergencyErr;
    /**
     * 10.任务类型缺失
     */
    private boolean taskTypeErr;
    /**
     * 11.任务号缺失
     */
    private boolean taskNoErr;
    /**
     * 12.运行中有新任务
     */
    private boolean newTaskErr;
    /**
     * 13.故障中有任务
     */
    private boolean errTaskErr;
    /**
     * 14.运行中停止
     */
    private boolean stopErr;
    /**
     * 15.脱机模式下有任务
     */
    private boolean offlineTaskErr;
    /**
     * 16.条件未满足启动任务
     */
    private boolean startTaskErr;
    /**
     * 17.低电压时有任务
     */
    private boolean voltageTaskErr;
    /**
     * 63.设备故障标志位
     */
    private boolean devpErr;
    // 穿梭车异常 ------------------------------------------------------------------------
    // 穿梭车提示信息 ------------------------------------------------------------------------
    /**
     * 64.联机状态
     */
    private boolean online;
    /**
     * 65.不在轨道上
     */
    private boolean notOnTrack;
    /**
     * 66.低电量提醒
     */
    private boolean lowVoltage;
    /**
     * 67.亏电中
     */
    private boolean electricityLoss;
    /**
     * 68.强制行走启动
     */
    private boolean forcedTravel;
    /**
     * 69.演示模式开启
     */
    private boolean demoMode;
    /**
     * 70.充电刷已接通
     */
    private boolean brushConnect;
    /**
     * 71.任务中禁止手动
     */
    private boolean taskManualForbid;
    /**
     * 72.联机中禁止手动
     */
    private boolean onlineManualForbid;
    /**
     * 73.设备急停中
     */
    private boolean devpEmergency;
    /**
     * 74.任务中断中
     */
    private boolean taskInterrupt;
    /**
     * 75.任务已清除
     */
    private boolean taskClear;
    /**
     * 76.任务确认已超时
     */
    private boolean taskConfirmTimeout;
    /**
     * 77.充电中有任务
     */
    private boolean taskWithCharge;
    // 任务信息 ---------------------------------------------------------
    /**
     * 96.入库任务中
     */
    private boolean pakInTask;
    /**
     * 97. 出库任务中
     */
    private boolean pakOutTask;
    /**
     * 98. 移库任务中
     */
    private boolean pakMoveTask;
    /**
     * 99. 回原点任务中
     */
    private boolean goHpTask;
    /**
     * 100. 去反原点任务中
     */
    private boolean goOHpTask;
    /**
     * 101. 去原点避让位
     */
    private boolean goHpAvoid;
    /**
     * 102. 去反原点避让位
     */
    private boolean goOHpAvoid;
    /**
     * 104. 入库取空结束
     */
    private boolean pakInEmpty;
    /**
     * 105. 入库正常结束
     */
    private boolean pakInFinish;
    /**
     * 106. 出库取空结束
     */
    private boolean pakOutEmpty;
    /**
     * 107. 出库正常结束
     */
    private boolean pakOutFinish;
    /**
     * 108. 去原点避让完成
     */
    private boolean goHpAvoidFinish;
    /**
     * 109. 去反原点避让完成
     */
    private boolean goOHpAvoidFinish;
    /**
     * 110. 去原点避让完成
     */
    private boolean goHpAvoidErr;
    /**
     * 111. 去反原点避让完成
     */
    private boolean goOHpAvoidErr;
    // 状态信息 ---------------------------------------------------------
    /**
     * 112. 联机模式
     */
    private boolean autoMode;
    /**
     * 113. 电压过低
     */
    private boolean voltageLow;
}
src/main/java/com/zy/core/model/protocol/SteProtocol.java
@@ -206,136 +206,253 @@
    // 穿梭车异常 ------------------------------------------------------------------------
    /**
     * 1.升降超时报警
     * 0.升降超时报警
     */
    private boolean liftErr;
    /**
     * 3.入库取空报警
     * 2.入库取空报警
     */
    private boolean inFetchErr;
    /**
     * 4.出库取空报警
     * 3.出库取空报警
     */
    private boolean outFetchErr;
    /**
     * 5.防撞保护
     * 4.防撞保护
     */
    private boolean antiErr;
    /**
     * 6.升降接近开关故障
     * 5.升降接近开关故障
     */
    private boolean liftSwitchErr;
    /**
     * 7.轨道检测报警
     * 6.轨道检测报警
     */
    private boolean trackErr;
    /**
     * 8.设备运行超时报警
     * 7.设备运行超时报警
     */
    private boolean timeoutErr;
    /**
     * 9.通信错误报警
     * 8.通信错误报警
     */
    private boolean connectErr;
    /**
     * 10.设备急停
     * 9.设备急停
     */
    private boolean emergencyErr;
    /**
     * 11.任务类型缺失
     * 10.任务类型缺失
     */
    private boolean taskTypeErr;
    /**
     * 12.任务号缺失
     * 11.任务号缺失
     */
    private boolean taskNoErr;
    /**
     * 13.运行中有新任务
     * 12.运行中有新任务
     */
    private boolean newTaskErr;
    /**
     * 14.故障中有任务
     * 13.故障中有任务
     */
    private boolean errTaskErr;
    /**
     * 15.运行中停止
     * 14.运行中停止
     */
    private boolean stopErr;
    /**
     * 16.脱机模式下有任务
     * 15.脱机模式下有任务
     */
    private boolean offlineTaskErr;
    /**
     * 17.条件未满足启动任务
     * 16.条件未满足启动任务
     */
    private boolean startTaskErr;
    /**
     * 18.低电压时有任务
     * 17.低电压时有任务
     */
    private boolean voltageTaskErr;
    /**
     * 64.设备故障标志位
     * 63.设备故障标志位
     */
    private boolean devpErr;
    // 穿梭车异常 ------------------------------------------------------------------------
    // 穿梭车提示信息 ------------------------------------------------------------------------
    /**
     * 65.联机状态
     * 64.联机状态
     */
    private boolean online;
    /**
     * 66.不在轨道上
     * 65.不在轨道上
     */
    private boolean notOnTrack;
    /**
     * 67.低电量提醒
     * 66.低电量提醒
     */
    private boolean lowVoltage;
    /**
     * 68.亏电中
     * 67.亏电中
     */
    private boolean electricityLoss;
    /**
     * 69.强制行走启动
     * 68.强制行走启动
     */
    private boolean forcedTravel;
    /**
     * 70.演示模式开启
     * 69.演示模式开启
     */
    private boolean demoMode;
    /**
     * 71.充电刷已接通
     * 70.充电刷已接通
     */
    private boolean brushConnect;
//    /**
//     * 71.充电刷已接通
//     */
//    private boolean brushConnect;
    /**
     * 71.任务中禁止手动
     */
    private boolean taskManualForbid;
    /**
     * 72.联机中禁止手动
     */
    private boolean onlineManualForbid;
    /**
     * 73.设备急停中
     */
    private boolean devpEmergency;
    /**
     * 74.任务中断中
     */
    private boolean taskInterrupt;
    /**
     * 75.任务已清除
     */
    private boolean taskClear;
    /**
     * 76.任务确认已超时
     */
    private boolean taskConfirmTimeout;
    /**
     * 77.充电中有任务
     */
    private boolean taskWithCharge;
    // 任务信息 ---------------------------------------------------------
    /**
     * 96.入库任务中
     */
    private boolean pakInTask;
    /**
     * 97. 出库任务中
     */
    private boolean pakOutTask;
    /**
     * 98. 移库任务中
     */
    private boolean pakMoveTask;
    /**
     * 99. 回原点任务中
     */
    private boolean goHpTask;
    /**
     * 100. 去反原点任务中
     */
    private boolean goOHpTask;
    /**
     * 101. 去原点避让位
     */
    private boolean goHpAvoid;
    /**
     * 102. 去反原点避让位
     */
    private boolean goOHpAvoid;
    /**
     * 104. 入库取空结束
     */
    private boolean pakInEmpty;
    /**
     * 105. 入库正常结束
     */
    private boolean pakInFinish;
    /**
     * 106. 出库取空结束
     */
    private boolean pakOutEmpty;
    /**
     * 107. 出库正常结束
     */
    private boolean pakOutFinish;
    /**
     * 108. 去原点避让完成
     */
    private boolean goHpAvoidFinish;
    /**
     * 109. 去反原点避让完成
     */
    private boolean goOHpAvoidFinish;
    /**
     * 110. 去原点避让完成
     */
    private boolean goHpAvoidErr;
    /**
     * 111. 去反原点避让完成
     */
    private boolean goOHpAvoidErr;
    // 状态信息 ---------------------------------------------------------
    /**
     * 112. 联机模式
     */
    private boolean autoMode;
    /**
     * 113. 电压过低
     */
    private boolean voltageLow;
    public void setStatus(Short status){
src/main/java/com/zy/core/thread/SteThread.java
@@ -179,6 +179,65 @@
                OutputQueue.STE.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId()));
                //读取穿梭车设备信息,提供查询
                OperateResultExOne<byte[]> result1 = siemensS7Net.Read("V732", (short) 16);
                if (result1.IsSuccess) {
                    boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, 0, 128);
                    steProtocol.setLiftErr(status[0]);
                    steProtocol.setInFetchErr(status[2]);
                    steProtocol.setOutFetchErr(status[3]);
                    steProtocol.setAntiErr(status[4]);
                    steProtocol.setLiftSwitchErr(status[5]);
                    steProtocol.setTrackErr(status[6]);
                    steProtocol.setTimeoutErr(status[7]);
                    steProtocol.setConnectErr(status[8]);
                    steProtocol.setEmergencyErr(status[9]);
                    steProtocol.setTaskTypeErr(status[10]);
                    steProtocol.setTaskNoErr(status[11]);
                    steProtocol.setNewTaskErr(status[12]);
                    steProtocol.setErrTaskErr(status[13]);
                    steProtocol.setStopErr(status[14]);
                    steProtocol.setOfflineTaskErr(status[15]);
                    steProtocol.setStartTaskErr(status[16]);
                    steProtocol.setVoltageTaskErr(status[17]);
                    steProtocol.setDevpErr(status[63]);
                    steProtocol.setOnline(status[64]);
                    steProtocol.setNotOnTrack(status[65]);
                    steProtocol.setLowVoltage(status[66]);
                    steProtocol.setElectricityLoss(status[67]);
                    steProtocol.setForcedTravel(status[68]);
                    steProtocol.setDemoMode(status[69]);
                    steProtocol.setBrushConnect(status[70]);
                    steProtocol.setTaskManualForbid(status[71]);
                    steProtocol.setOnlineManualForbid(status[72]);
                    steProtocol.setDevpEmergency(status[73]);
                    steProtocol.setTaskInterrupt(status[74]);
                    steProtocol.setTaskClear(status[75]);
                    steProtocol.setTaskConfirmTimeout(status[76]);
                    steProtocol.setTaskWithCharge(status[77]);
                    steProtocol.setPakInTask(status[96]);
                    steProtocol.setPakOutTask(status[97]);
                    steProtocol.setPakMoveTask(status[98]);
                    steProtocol.setGoHpTask(status[99]);
                    steProtocol.setGoOHpTask(status[100]);
                    steProtocol.setGoHpAvoid(status[101]);
                    steProtocol.setGoOHpAvoid(status[102]);
                    steProtocol.setPakInEmpty(status[104]);
                    steProtocol.setPakInFinish(status[105]);
                    steProtocol.setPakOutEmpty(status[106]);
                    steProtocol.setPakOutFinish(status[107]);
                    steProtocol.setGoHpAvoidFinish(status[108]);
                    steProtocol.setGoOHpAvoidFinish(status[109]);
                    steProtocol.setGoHpAvoidErr(status[110]);
                    steProtocol.setGoOHpAvoidErr(status[111]);
                    steProtocol.setAutoMode(status[112]);
                    steProtocol.setVoltageLow(status[113]);
                }
                // 复位信号
                if (steProtocol.getWaiting()) {
                    if (resetFlag) {
@@ -189,7 +248,6 @@
                        }
                    }
                }
                // 根据实时信息更新数据库
                BasSteService service = SpringUtils.getBean(BasSteService.class);