自动化立体仓库 - WCS系统
c1c94f8f45e562bafc4dc4cd17171bae8e7f7b45..8a0442fe48ef5a8d314fd8426475ae44de81a047
3 天以前 Junjie
#货叉提升机异常码
8a0442 对比 | 目录
3 天以前 Junjie
#出库任务预调度提升机
b69671 对比 | 目录
3 天以前 Junjie
#
035710 对比 | 目录
5个文件已添加
1 文件已重命名
1个文件已删除
13个文件已修改
332 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/ForkLiftController.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ShuttleController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/enums/WorkNoType.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/action/ForkLiftAction.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/ForkLiftTaskModeType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/WrkIoType.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/ForkLiftProtocol.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/ForkLiftThread.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/impl/LfdZyForkLiftSlaveThread.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/docs/台升四向库WCS与货叉提升机PLC通讯接口协议1.0.docx 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/docs/台升四向库WCS与货叉提升机PLC通讯接口协议1.1.docx 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/sql/20250424151727.nb3 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/sql/20250424153111.nb3 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/sql/出库任务预调度提升机sql 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/sql/货叉提升机异常码sql 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/forklift.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ForkLiftController.java
@@ -16,10 +16,7 @@
import com.zy.core.action.ForkLiftAction;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.ForkLiftProtocolStatusType;
import com.zy.core.enums.ForkLiftTaskModeType;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.*;
import com.zy.core.model.ForkLiftSlave;
import com.zy.core.model.command.*;
import com.zy.core.model.protocol.ForkLiftProtocol;
@@ -274,7 +271,7 @@
        if (param.getLiftTaskMode() == 1) {
            //小车换层
            int workNo = commonService.getWorkNo(99);//获取任务号
            int workNo = commonService.getWorkNo(WrkIoType.MANUAL.id);//获取任务号
            Integer startSta = param.getSourceStaNo();
            Integer targetSta = param.getStaNo();
@@ -296,7 +293,7 @@
            return R.ok();
        } else if (param.getLiftTaskMode() == 2) {
            //移动托盘
            int workNo = commonService.getWorkNo(99);//获取任务号
            int workNo = commonService.getWorkNo(WrkIoType.MANUAL.id);//获取任务号
            Integer startSta = param.getSourceStaNo();
            Integer targetSta = param.getStaNo();
@@ -317,6 +314,28 @@
            forkLiftAction.assignWork(forkLiftProtocol.getLiftNo(), assignCommand);
            return R.ok();
        } else if (param.getLiftTaskMode() == 3) {
            //移动
            int workNo = commonService.getWorkNo(WrkIoType.MANUAL.id);//获取任务号
            Integer startSta = param.getSourceStaNo();
            Integer targetSta = param.getStaNo();
            //获取提升机命令
            List<ForkLiftCommand> liftCommand = forkLiftThread.getMoveCommand(workNo, startSta, targetSta);
            ArrayList<ForkLiftCommand> commands = new ArrayList<>();
            commands.addAll(liftCommand);
            //提交到线程去工作
            LiftAssignCommand assignCommand = new LiftAssignCommand();
            assignCommand.setCommands(commands);
            assignCommand.setLiftNo(forkLiftProtocol.getLiftNo().shortValue());
            assignCommand.setTaskNo((short) workNo);
            assignCommand.setAuto(false);//手动模式
            assignCommand.setTaskMode(ForkLiftTaskModeType.MOVE.id.shortValue());
            forkLiftAction.assignWork(forkLiftProtocol.getLiftNo(), assignCommand);
            return R.ok();
        } else if (param.getLiftTaskMode() == 4) {
            //任务确认
            forkLiftThread.reset();
            return R.ok();
src/main/java/com/zy/asrs/controller/ShuttleController.java
@@ -298,7 +298,7 @@
        ShuttleTaskModeType shuttleTaskModeType = ShuttleTaskModeType.get(param.getShuttleTaskMode().intValue());
        assignCommand.setShuttleNo(param.getShuttleNo()); // å››å‘穿梭车编号
        assignCommand.setTaskMode(shuttleTaskModeType.id);
        assignCommand.setTaskNo(commonService.getWorkNo(99));//获取任务号
        assignCommand.setTaskNo(commonService.getWorkNo(WrkIoType.MANUAL.id));//获取任务号
        assignCommand.setAuto(false);//手动模式
        if (shuttleTaskModeType == ShuttleTaskModeType.MOVE_LOC_NO) {
src/main/java/com/zy/asrs/domain/enums/WorkNoType.java
File was deleted
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -919,6 +919,15 @@
                        } else {
                            News.error("提升机已确认且任务完成状态,复位失败,但未找到工作档。提升机号={},工作号={}", forkLiftProtocol.getLiftNo(), forkLiftProtocol.getWrkNo());
                        }
                    }else {
                        boolean checkPreviewDispatchForkLift = commonService.checkWorkNoContainMk(forkLiftProtocol.getWrkNo(), WrkIoType.FORKLIFT_MOVE.id);
                        if (checkPreviewDispatchForkLift) {
                            //属于提升机预调度移动任务
                            //无工作档支撑,直接确认完成
                            forkLiftThread.setSyncTaskNo(0);
                            forkLiftThread.reset();
                            News.info("已确认提升机预调度移动任务。提升机号={}", forkLiftProtocol.getLiftNo());
                        }
                    }
                }
            }
@@ -1860,4 +1869,81 @@
        }
    }
    //出库任务预调度提升机
    public void outTaskPreviewDispatchForkLift() {
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                .in("wrk_sts"
                        , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts
                ));
        for (WrkMast wrkMast : wrkMasts) {
            if(wrkMast.getShuttleNo() == null){
                continue;
            }
            //获取四向穿梭车线程
            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
            if (shuttleThread == null) {
                continue;
            }
            ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
            if (shuttleProtocol == null) {
                continue;
            }
            if(shuttleProtocol.getCurrentLocNo() == null){
                continue;
            }
            //通过输送线站号获取提升机号
            Integer liftNo = ForkLiftUtils.getConveyorBindLiftNo(wrkMast.getStaNo());
            if (liftNo == null) {
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,未找到匹配的提升机", wrkMast.getWrkNo());
                continue;
            }
            ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
            if (forkLiftThread == null) {
                continue;
            }
            ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
            if (forkLiftProtocol == null) {
                continue;
            }
            //判断提升机是否有其他任务
            WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo());
            if (liftWrkMast != null) {
                continue;//提升机已被绑定,不再执行预调度任务
            }
            if (!forkLiftThread.isIdle()) {
                continue;
            }
            //提升机不在出库层
            if (forkLiftProtocol.getLev() != Utils.getLev(wrkMast.getSourceLocNo())) {
                continue;
            }
            //移动
            int workNo = commonService.getWorkNo(WrkIoType.FORKLIFT_MOVE.id);//获取任务号
            //获取提升机命令
            List<ForkLiftCommand> liftCommand = forkLiftThread.getMoveCommand(workNo, forkLiftProtocol.getLev(), Utils.getLev(wrkMast.getSourceLocNo()));
            ArrayList<ForkLiftCommand> commands = new ArrayList<>();
            commands.addAll(liftCommand);
            //提交到线程去工作
            LiftAssignCommand assignCommand = new LiftAssignCommand();
            assignCommand.setCommands(commands);
            assignCommand.setLiftNo(forkLiftProtocol.getLiftNo().shortValue());
            assignCommand.setTaskNo((short) workNo);
            assignCommand.setTaskMode(ForkLiftTaskModeType.MOVE.id.shortValue());
            forkLiftAction.assignWork(forkLiftProtocol.getLiftNo(), assignCommand);
        }
    }
}
src/main/java/com/zy/common/service/CommonService.java
@@ -21,8 +21,6 @@
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkMastLogService wrkMastLogService;
    @Autowired
    private WrkLastnoService wrkLastnoService;
    @Autowired
    private LocMastService locMastService;
@@ -65,6 +63,21 @@
        return workNo;
    }
    //检测工作号是否在指定类型工作范围内
    public synchronized boolean checkWorkNoContainMk(Integer workNo, Integer wrkMk) {
        WrkLastno wrkLastno = wrkLastnoService.selectById(wrkMk);
        if (Cools.isEmpty(wrkLastno)) {
            throw new CoolException("数据异常,请联系管理员");
        }
        int sNo = wrkLastno.getSNo();
        int eNo = wrkLastno.getENo();
        if (workNo >= sNo && workNo <= eNo) {
            return true;
        }
        return false;
    }
    public static String zerofill(String msg, Integer count) {
        if (msg.length() == count) {
            return msg;
src/main/java/com/zy/core/MainProcess.java
@@ -66,6 +66,9 @@
                    //自动切换出入库模式
                    mainService.autoSwitchForkLiftIOMode();
                    //出库任务预调度提升机
                    mainService.outTaskPreviewDispatchForkLift();
                    // é—´éš”
                    Thread.sleep(200);
                } catch (Exception e) {
src/main/java/com/zy/core/action/ForkLiftAction.java
@@ -148,6 +148,8 @@
            response = forkLiftThread.pickAndPut(command);
        } else if (command.getMode().intValue() == ForkLiftTaskModeType.SHUTTLE_SWITCH.id) {
            response = forkLiftThread.shuttleSwitch(command);
        } else if (command.getMode().intValue() == ForkLiftTaskModeType.MOVE.id) {
            response = forkLiftThread.move(command);
        }
        return response;
    }
src/main/java/com/zy/core/enums/ForkLiftTaskModeType.java
@@ -8,6 +8,7 @@
    PUT_DOWN(2, "放货"),
    PICK_PUT(3, "取放货"),
    SHUTTLE_SWITCH(4, "小车换层"),
    MOVE(5, "提升机移动"),
    ;
    public Integer id;
src/main/java/com/zy/core/enums/WrkIoType.java
@@ -9,6 +9,8 @@
    SHUTTLE_MOVE(200, "小车移动"),
    LOC_MOVE(201, "移库任务"),
    SHUTTLE_CHARGE(300, "小车充电"),
    FORKLIFT_MOVE(98, "提升机预调度移动任务"),
    MANUAL(99, "手动任务"),
    ;
    WrkIoType(int id, String desc) {
src/main/java/com/zy/core/model/protocol/ForkLiftProtocol.java
@@ -85,6 +85,11 @@
    private Integer errorCode;
    /**
     * å½“前层
     */
    private Integer lev;
    /**
     * ä½œä¸šæ ‡è®°
     */
    private Boolean pakMk = false;
src/main/java/com/zy/core/thread/ForkLiftThread.java
@@ -24,6 +24,8 @@
    CommandResponse shuttleSwitch(ForkLiftCommand command);//小车换层
    CommandResponse move(ForkLiftCommand command);//小车换层
    CommandResponse reset();//复位
    boolean isIdle();//是否空闲
@@ -46,4 +48,6 @@
    List<ForkLiftCommand> getShuttleSwitchCommand(Integer taskNo, Integer pick, Integer put);//小车换层
    List<ForkLiftCommand> getMoveCommand(Integer taskNo, Integer pick, Integer put);//提升机移动
}
src/main/java/com/zy/core/thread/impl/LfdZyForkLiftSlaveThread.java
@@ -159,6 +159,8 @@
                forkLiftProtocol.setIOMode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 12));
                //故障码
                forkLiftProtocol.setErrorCode((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 14));
                //当前层
                forkLiftProtocol.setLev((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 16));
                //************补充扩展字段*************
                InnerForkLiftExtend forkLiftExtend = (InnerForkLiftExtend) forkLiftProtocol.getExtend();
@@ -304,6 +306,25 @@
    }
    @Override
    public CommandResponse move(ForkLiftCommand command) {
        CommandResponse response = new CommandResponse(false);
        short[] array = new short[4];
        array[0] = command.getTaskNo();//任务号
        array[1] = command.getMode();//任务模式
        array[2] = command.getPick();//取货数据
        array[3] = command.getPut();//放货数据
        OperateResult result = this.masterThread.write(this.slave.getId(), "write", array);
        if (result.IsSuccess) {
            OperateResult result2 = this.masterThread.write(this.slave.getId(), "writeConfirm", command.getConfirm());
            if (result2.IsSuccess) {
                response.setResult(true);
            }
        }
        return response;
    }
    @Override
    public CommandResponse reset() {
        CommandResponse response = new CommandResponse(false);
        OperateResult result = this.masterThread.write(this.slave.getId(), "confirm", (short) 1);
@@ -424,6 +445,24 @@
        return commands;
    }
    @Override
    public List<ForkLiftCommand> getMoveCommand(Integer taskNo, Integer pick, Integer put) {
        Integer realPick = pick % 1000;
        Integer realPut = put % 1000;
        List<ForkLiftCommand> commands = new ArrayList<>();
        ForkLiftCommand command = new ForkLiftCommand();
        command.setLiftNo(slave.getId());
        command.setTaskNo(taskNo.shortValue());
        command.setMode(ForkLiftTaskModeType.MOVE.id.shortValue());
        command.setPick(realPick.shortValue());
        command.setPut(realPut.shortValue());
        command.setConfirm((short) 1);
        commands.add(command);
        return commands;
    }
    /**
     * æ‰©å±•字段
     */
src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java
@@ -285,6 +285,25 @@
    }
    @Override
    public CommandResponse move(ForkLiftCommand command) {
        CommandResponse response = new CommandResponse(false);
        short[] array = new short[4];
        array[0] = command.getTaskNo();//任务号
        array[1] = command.getMode();//任务模式
        array[2] = command.getPick();//取货数据
        array[3] = command.getPut();//放货数据
        OperateResult result = siemensS7Net.Write("DB103.0", array);
        if (result.IsSuccess) {
            OperateResult result2 = siemensS7Net.Write("DB103.8", command.getConfirm());
            if (result2.IsSuccess) {
                response.setResult(true);
            }
        }
        return response;
    }
    @Override
    public CommandResponse reset() {
        CommandResponse response = new CommandResponse(false);
        OperateResult result = siemensS7Net.Write("DB103.10", (short) 1);
@@ -405,6 +424,24 @@
        return commands;
    }
    @Override
    public List<ForkLiftCommand> getMoveCommand(Integer taskNo, Integer pick, Integer put) {
        Integer realPick = pick % 1000;
        Integer realPut = put % 1000;
        List<ForkLiftCommand> commands = new ArrayList<>();
        ForkLiftCommand command = new ForkLiftCommand();
        command.setLiftNo(slave.getId());
        command.setTaskNo(taskNo.shortValue());
        command.setMode(ForkLiftTaskModeType.MOVE.id.shortValue());
        command.setPick(realPick.shortValue());
        command.setPut(realPut.shortValue());
        command.setConfirm((short) 1);
        commands.add(command);
        return commands;
    }
    /**
     * æ‰©å±•字段
     */
src/main/resources/docs/̨ÉýËÄÏò¿âWCSÓë»õ²æÌáÉý»úPLCͨѶ½Ó¿ÚЭÒé1.0.docx
Binary files differ
src/main/resources/docs/̨ÉýËÄÏò¿âWCSÓë»õ²æÌáÉý»úPLCͨѶ½Ó¿ÚЭÒé1.1.docx
Binary files differ
src/main/resources/sql/20250424151727.nb3
Binary files differ
src/main/resources/sql/20250424153111.nb3
Binary files differ
src/main/resources/sql/³ö¿âÈÎÎñÔ¤µ÷¶ÈÌáÉý»úsql
New file
@@ -0,0 +1 @@
INSERT INTO `asr_wrk_lastno` (`wrk_mk`, `wrk_no`, `modi_user`, `modi_time`, `appe_user`, `appe_time`, `s_no`, `e_no`, `memo_m`) VALUES (98, 35001, 9527, '2025-04-24 14:57:34', 9527, '2025-04-24 14:57:39', 35001, 40000, NULL);
src/main/resources/sql/»õ²æÌáÉý»úÒì³£Âësql
New file
@@ -0,0 +1,49 @@
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (1, '机载柜急停', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (2, '松绳检测', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (3, '重量检测', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (11, '机械极限', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (12, '下位软极限', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (13, '上位软极限', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (14, '货叉左极限', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (15, '货叉左极限', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (21, '提升_运行模式切换超时', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (22, '提升_目标位置值设定错误', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (23, '提升_速度倍率设置错误', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (24, '提升_变频器励磁响应超时', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (25, '提升_定位失败', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (26, '提升_变频与PLC通讯失败', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (41, '提升位置环: é™æ€ç›‘控已响应', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (42, '提升位置环: å®šä½ç›‘控已响应', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (43, '提升位置环:跟随误差过大', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (44, '提升EPOS:设定速度受到限制', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (45, '提升EPOS:未设置参考点', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (46, '提升位置环:位置实际值的值范围溢出', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (47, '提升驱动:电机过电流', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (48, '提升驱动:功率单元过载', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (49, '提升驱动:检测出短路/接地', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (50, '提升驱动:电机堵转', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (51, '提升驱动:电机转速过快', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (52, '提升驱动:电机失步', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (53, '提升功率单元:过电流', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (54, '提升功率单元:直流母线过电压', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (55, '提升功率单元:直流母线欠电压', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (61, '货叉_电机堵转故障', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (62, '货叉_一伸正向软极限', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (63, '货叉_一伸反向软极限', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (64, '货叉_驱动:缺少“通过PLC控制', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (65, '货叉_变频故障', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (71, '取货时载货台有货', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (72, '右放货时库位有货', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (73, '货物左超宽', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (74, '货物右超宽', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (75, '货物前超叉', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (76, '货物后超叉', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (77, '放货时载货台无货', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (78, '不在层定位禁止伸叉', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (79, '货叉不在定位禁止提升', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (80, '取货为空', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (81, '左放货时设备有货', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (82, '禁止伸差,在右取货时检测到小车和托盘', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (83, '禁止伸差,在取放时检测到小车和托盘', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (84, '货物超高', NULL, NULL, NULL, NULL);
INSERT INTO `shuttle_rcs`.`asr_bas_lift_err` (`error_code`, `err_name`, `modi_user`, `modi_time`, `appe_user`, `appe_time`) VALUES (85, '超差屏蔽', NULL, NULL, NULL, NULL);
src/main/webapp/views/forklift.html
@@ -91,7 +91,8 @@
                        </div>
                        <button class="item" onclick="liftOperator(1)">小车换层</button>
                        <button class="item" onclick="liftOperator(2)">移动托盘</button>
                        <button class="item" onclick="liftOperator(3)">任务确认</button>
                        <button class="item" onclick="liftOperator(3)">移动</button>
                        <button class="item" onclick="liftOperator(4)">任务确认</button>
                        <button class="item" onclick="liftOperator(0)">复位</button>
                    </div>
                </fieldset>
@@ -236,7 +237,7 @@
                        setVal(tr.children("td").eq(6), table[i-1].pick);
                        setVal(tr.children("td").eq(7), table[i-1].put);
                        setVal(tr.children("td").eq(8), table[i-1].iOMode$);
                        setVal(tr.children("td").eq(9), table[i-1].errorCode);
                        setVal(tr.children("td").eq(9), table[i-1].errorCode$);
                    }
                } else if (res.code === 403){
                    window.location.href = baseUrl+"/login";