自动化立体仓库 - WCS系统
#
luxiaotao1123
2022-01-05 9338cdee4bae84f74825fbd86786e35ddfbd2d64
#
1 文件已重命名
1个文件已删除
5个文件已修改
643 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/ConsoleController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/CrnController.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/ServerBootstrap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/CrnProtocol.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/MelsecCrnThread.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensCrnThread.java 522 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -27,7 +27,7 @@
import com.zy.core.properties.SystemProperties;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.ScaleThread;
import com.zy.core.thread.SiemensCrnThread;
import com.zy.core.thread.MelsecCrnThread;
import com.zy.core.DevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -131,7 +131,7 @@
            /**
             * 堆垛机状态判断
             */
            if (crn.getId() == 1 && crnProtocol.getAlarm1() > 0) {
            if (crn.getId() == 1 && crnProtocol.getAlarm() > 0) {
                vo.setCrnStatus(CrnStatusType.MACHINE_ERROR);
            } else {
                if (crnProtocol.getTaskNo()>0) {
@@ -243,7 +243,7 @@
        CrnDetailVo vo = new CrnDetailVo();
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            if (crnSlave.getId().equals(crnNo)) {
                SiemensCrnThread crnThread = (SiemensCrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
                MelsecCrnThread crnThread = (MelsecCrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
                CrnProtocol crnProtocol = crnThread.getCrnProtocol();
                vo.setCrnNo(crnNo);
                vo.setWorkNo(crnProtocol.getTaskNo());
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -127,42 +127,21 @@
//
//            }
            vo.setStatusType(crnProtocol.modeType.desc);   //  模式状态
            if (crnProtocol.getTaskFinish() == 1) {
            if (crnProtocol.statusType == com.zy.core.enums.CrnStatusType.WAITING) {
                vo.setStatus("等待确认");
            } else {
                vo.setStatus(crnProtocol.getStatusType().desc);     //  状态
                if (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.PUT_COMPLETE)) {
                    vo.setStatus("正在作业");
                }
            }
            vo.setLoading(crnProtocol.getLoaded()==1?"有物":"无物");  //  有物
            vo.setBay(crnProtocol.getBay());    //  列
            vo.setLev(crnProtocol.getLevel());  //  层
            vo.setLiftPos(crnProtocol.getLiftPosType().desc);
            if (crnProtocol.getPlatformHigh()) {
                vo.setSitePos("站台高位");
            }
            if (crnProtocol.getPlatformLow()) {
                vo.setSitePos("站台高位");
            }
            vo.setForkOffset(crnProtocol.getForkPosType().desc);    // 货叉位置
            vo.setXLocation(crnProtocol.getWalkPos() == 1?"是":"否");      // 走行定位
            vo.setYLocation(crnProtocol.getLiftPosType().equals(CrnLiftPosType.NONE)?"否":"是");      // 升降定位
            if (crnProtocol.getAlarm1() > 0) {
                BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
            if (crnProtocol.getAlarm() > 0) {
                BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
                vo.setAlarm1(crnError==null?"未知异常":crnError.getErrName());
            }
            if (crnProtocol.getAlarm2() > 0) {
                BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm2());
                vo.setAlarm2(crnError==null?"未知异常":crnError.getErrName());
            }
            if (crnProtocol.getAlarm3() > 0) {
                BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm3());
                vo.setAlarm3(crnError==null?"未知异常":crnError.getErrName());
            }
            if (crnProtocol.getAlarm4() > 0) {
                BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm4());
                vo.setAlarm4(crnError==null?"未知异常":crnError.getErrName());
            }
//            vo.setAlarm1(String.valueOf(crnProtocol.getAlarm1()));
//            vo.setAlarm2(String.valueOf(crnProtocol.getAlarm2()));
@@ -335,7 +314,7 @@
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
        command.setTaskNo((short) 0); // 工作号
        command.setAckFinish((short) 0);  // 任务完成确认位
        command.setTaskMode(CrnTaskModeType.SITE_MOVE); // 任务模式
        command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式
        command.setSourcePosX(param.getSourceStaNo());     // 源库位排
        command.setSourcePosY((short) 0);     // 源库位列
        command.setSourcePosZ((short) 1);     // 源库位层
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -395,7 +395,7 @@
                    }
                    //  判断堆垛机状态等待确认
                    if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
                            && crnProtocol.getTaskFinish() == 1  // todo:luxiaotao 等待确认
                            && crnProtocol.statusType == CrnStatusType.WAITING
                            && crnProtocol.forkPosType == CrnForkPosType.HOME) {
                        // 命令下发区 --------------------------------------------------------------------------
@@ -746,8 +746,7 @@
            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
            if (crnProtocol == null) { continue; }
            //  状态:等待确认 并且  任务完成位 = 1
            if (crnProtocol.getTaskFinish() == 1    // todo:luxiaotao 等待确认
                    && crnProtocol.getTaskNo() != 0) {
            if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
                // 获取入库待确认工作档
                WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
                if (wrkMast == null) {
@@ -793,13 +792,13 @@
                    BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
                    // 有异常
                    if (latest == null) {
                        if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) {
                        if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
                            WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
                            if (wrkMast == null) {
                                continue;
                            }
                            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
                            String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName();
                            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
                            String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName();
                            BasErrLog basErrLog = new BasErrLog(
                                    null,    // 编号
                                    wrkMast.getWrkNo(),    // 工作号
@@ -814,7 +813,7 @@
                                    wrkMast.getSourceStaNo(),    // 源站
                                    wrkMast.getSourceLocNo(),    // 源库位
                                    wrkMast.getBarcode(),    // 条码
                                    crnProtocol.getAlarm1(),    // 异常码
                                    (int) crnProtocol.getAlarm(),    // 异常码
                                    errName,    // 异常
                                    1,    // 异常情况
                                    now,    // 添加时间
@@ -829,7 +828,7 @@
                        }
                    } else {
                        // 异常修复
                        if (crnProtocol.getAlarm1() == null || crnProtocol.getAlarm1() == 0) {
                        if (crnProtocol.getAlarm() == null || crnProtocol.getAlarm() == 0) {
                            latest.setEndTime(now);
                            latest.setUpdateTime(now);
                            latest.setStatus(2);
@@ -842,11 +841,11 @@
                } else {
                    BasErrLog latest = basErrLogService.findLatest(crn.getId());
                    // 有异常
                    if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) {
                    if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
                        // 记录新异常
                        if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm1().intValue())) {
                            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
                            String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName();
                        if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
                            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
                            String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName();
                            BasErrLog basErrLog = new BasErrLog(
                                    null,    // 编号
                                    null,    // 工作号
@@ -861,7 +860,7 @@
                                    null,    // 源站
                                    null,    // 源库位
                                    null,    // 条码
                                    crnProtocol.getAlarm1(),    // 异常码
                                    (int)crnProtocol.getAlarm(),    // 异常码
                                    errName,    // 异常
                                    1,    // 异常情况
                                    now,    // 添加时间
src/main/java/com/zy/core/ServerBootstrap.java
@@ -74,7 +74,7 @@
        // 初始化堆垛机线程
        log.info("初始化堆垛机线程...................................................");
        for (CrnSlave crn : slaveProperties.getCrn()) {
            CrnThread crnThread = new SiemensCrnThread(crn);
            CrnThread crnThread = new MelsecCrnThread(crn);
            new Thread((Runnable) crnThread).start();
            SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread);
        }
src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -94,19 +94,9 @@
    public Short walkPos;
    /**
     * 堆垛机任务完成
     */
    public Short taskFinish;
    /**
     * 载货台有物
     */
    public Short loaded;
    /**
     * 异常码(数值显示)
     */
    private Short alarm1;
    private Short temp1;
src/main/java/com/zy/core/thread/MelsecCrnThread.java
File was renamed from src/main/java/com/zy/core/thread/CrnThread.java
@@ -11,6 +11,7 @@
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.service.BasCrnOptService;
import com.zy.asrs.service.BasCrnpService;
import com.zy.core.CrnThread;
import com.zy.core.ThreadHandler;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
@@ -33,14 +34,14 @@
 */
@Data
@Slf4j
public class CrnThread implements Runnable, ThreadHandler {
public class MelsecCrnThread implements Runnable, ThreadHandler, CrnThread {
    private MelsecMcNet melsecMcNet;
    private CrnSlave slave;
    private CrnProtocol crnProtocol;
    private boolean resetFlag = false;
    public CrnThread(CrnSlave slave) {
    public MelsecCrnThread(CrnSlave slave) {
        this.slave = slave;
    }
@@ -187,32 +188,22 @@
        }
        command.setCrnNo(slave.getId());
        short[] array = new short[10];
        array[0] = command.getAckFinish();
        array[1] = command.getTaskNo();
        array[2] = command.getTaskMode();
        array[3] = command.getSourcePosX();
        array[4] = command.getSourcePosY();
        array[5] = command.getSourcePosZ();
        array[6] = command.getDestinationPosX();
        array[7] = command.getDestinationPosY();
        array[8] = command.getDestinationPosZ();
        array[9] = command.getCommand();
        OperateResult result = melsecMcNet.Write("D0", array);
        OperateResult result;
        if (command.getAckFinish() == 0) {
            array[0] = command.getAckFinish();
            array[1] = command.getTaskNo();
            array[2] = command.getTaskMode();
            array[3] = command.getSourcePosX();
            array[4] = command.getSourcePosY();
            array[5] = command.getSourcePosZ();
            array[6] = command.getDestinationPosX();
            array[7] = command.getDestinationPosY();
            array[8] = command.getDestinationPosZ();
            array[9] = command.getCommand();
            result = melsecMcNet.Write("D0", array);
            short[] array0 = new short[1];
            array0[0] = 1;
            result = melsecMcNet.Write("D9", array);
        } else {
            short commandFinish = 1;
            result = melsecMcNet.Write("D9", commandFinish);
        }
        try {
            // 日志记录
@@ -264,10 +255,10 @@
        slave.setPort(5015);
        slave.setRack(0);
        slave.setSlot(0);
        CrnThread crnThread = new CrnThread(slave);
        crnThread.connect();
        crnThread.readStatus();
        System.out.println(JSON.toJSONString(crnThread.crnProtocol));
        MelsecCrnThread melsecCrnThread = new MelsecCrnThread(slave);
        melsecCrnThread.connect();
        melsecCrnThread.readStatus();
        System.out.println(JSON.toJSONString(melsecCrnThread.crnProtocol));
        // 1.入库 源和目标都发
//        CrnCommand command = new CrnCommand();
src/main/java/com/zy/core/thread/SiemensCrnThread.java
File was deleted