#
TQS
2024-08-13 696c9f6f674ea478d738cdb277c6f1c74ad637b3
#
5个文件已修改
122 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/css/console.css 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/console.html 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -993,36 +993,41 @@
            // 获取工作状态为 2,3,4,5,6 的入库工作档
            WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
            if(null == wrkMast || (wrkMast.getCrnNo()==2 && wrkMast.getWrkSts()==2 && crnProtocol.getCrnNo()!=2 && (wrkMast.getIoType()==1 || wrkMast.getIoType()==10)) ){
//                News.error("{}站点查询无待入库数据 工作号={}", crnStn.getStaNo(), staProtocol.getWorkNo());
                // 已经存在吊车执行任务时,则过滤
                if (wrkMastMapper.selectWorking(slave.getId()) != null) {
                    continue;
                }
                if (Cools.isEmpty(staProtocol.getWorkNo())){
                    continue;
                }
                //  判断堆垛机状态等待确认
                if (crnProtocol.modeType == CrnModeType.AUTO
                        && crnProtocol.statusType == CrnStatusType.IDLE
                        && crnProtocol.forkPosType == CrnForkPosType.HOME) {
                    News.info("堆垛机接驳任务执行,工作号:"+staProtocol.getWorkNo()+";执行堆垛机号:"+slave.getId()+";接驳取货位:"+crnStn.getStaNo()+";接驳放货位:"+staProtocol.getSiteId());
                    // 堆垛机接驳任务命令下发区 --------------------------------------------------------------------------
                    CrnCommand crnCommand = new CrnCommand();
                    crnCommand.setCrnNo(slave.getId()); // 堆垛机编号
                    crnCommand.setTaskNo(staProtocol.getWorkNo()); // 工作号
                    crnCommand.setAckFinish((short) 0);  // 任务完成确认位
                    crnCommand.setCommand((short) 0);
                    crnCommand.setTaskMode(CrnTaskModeType.XY_MOVE); // 任务模式:  站位转移
                    crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 源库位排
                    crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 源库位列
                    crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 源库位层
                    crnCommand.setDestinationPosX(Utils.getRow(staProtocol.getSiteId()));     // 目标库位排
                    crnCommand.setDestinationPosY(Utils.getBay(staProtocol.getSiteId()));     // 目标库位列
                    crnCommand.setDestinationPosZ(Utils.getLev(staProtocol.getSiteId()));     // 目标库位层
                    if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
                        News.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", slave.getId(), JSON.toJSONString(crnCommand));
                try{
                    //                News.error("{}站点查询无待入库数据 工作号={}", crnStn.getStaNo(), staProtocol.getWorkNo());
                    // 已经存在吊车执行任务时,则过滤
                    if (wrkMastMapper.selectWorking(slave.getId()) != null) {
                        continue;
                    }
                    return true;
                    if (Cools.isEmpty(staProtocol.getWorkNo()) || !staProtocol.isLoading()){
                        continue;
                    }
                    //  判断堆垛机状态等待确认
                    if (crnProtocol.modeType == CrnModeType.AUTO
                            && crnProtocol.statusType == CrnStatusType.IDLE
                            && crnProtocol.forkPosType == CrnForkPosType.HOME) {
                        News.info("堆垛机接驳任务执行,工作号:"+staProtocol.getWorkNo()+";执行堆垛机号:"+slave.getId()+";接驳取货位:"+crnStn.getStaNo()+";接驳放货位:"+staProtocol.getSiteId());
                        // 堆垛机接驳任务命令下发区 --------------------------------------------------------------------------
                        CrnCommand crnCommand = new CrnCommand();
                        crnCommand.setCrnNo(slave.getId()); // 堆垛机编号
                        crnCommand.setTaskNo(staProtocol.getWorkNo()); // 工作号
                        crnCommand.setAckFinish((short) 0);  // 任务完成确认位
                        crnCommand.setCommand((short) 0);
                        crnCommand.setTaskMode(CrnTaskModeType.XY_MOVE); // 任务模式:  站位转移
                        crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 源库位排
                        crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 源库位列
                        crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 源库位层
                        crnCommand.setDestinationPosX(Utils.getRow(staProtocol.getSiteId()));     // 目标库位排
                        crnCommand.setDestinationPosY(Utils.getBay(staProtocol.getSiteId()));     // 目标库位列
                        crnCommand.setDestinationPosZ(Utils.getLev(staProtocol.getSiteId()));     // 目标库位层
                        if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
                            News.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", slave.getId(), JSON.toJSONString(crnCommand));
                        }
                        return true;
                    }
                    continue;
                } catch (Exception e){
                    News.info("堆垛机接驳任务执行,一场:"+e.getMessage());
                }
                continue;
            }
@@ -4084,6 +4089,9 @@
     */
    public synchronized void ledReset() {
        for (LedSlave led : slaveProperties.getLed()) {
            if (led.getId()>3){
                continue;
            }
            // 获取输送线plc线程
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
            // 命令集合
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -154,9 +154,9 @@
        // 更新入出库模式
        updateIoMode();
        ArrayList<Integer> staNos = getStaNo();
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 50);
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNos.size()*2));
        if (result.IsSuccess) {
            for (int i = 0; i < 25; i++) {
            for (int i = 0; i < staNos.size(); i++) {
                Integer siteId = staNos.get(i); // 站点编号
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
@@ -168,9 +168,9 @@
            }
        }
        Thread.sleep(200);
        OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) 50);
        OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) (staNos.size()*2));
        if (result0.IsSuccess) {
            for (int i = 0; i < 25; i++) {
            for (int i = 0; i < staNos.size(); i++) {
                Integer siteId = staNos.get(i); // 站点编号
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
@@ -182,11 +182,11 @@
            }
        }
        Thread.sleep(200);
        OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB102.0", (short) 50);
        OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB102.0", (short) (staNos.size()*2));
        if (result1.IsSuccess) {
            for (int i = 0; i < 25; i++) {
            for (int i = 0; i < staNos.size(); i++) {
                Integer siteId = staNos.get(i); // 站点编号
                boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1);
                boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i * 2, 1);
                StaProtocol staProtocol = station.get(siteId);
                staProtocol.setAutoing(status[0]);  // 自动
                staProtocol.setLoading(status[1]);  // 有物
@@ -199,10 +199,10 @@
                if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                    staProtocol.setPakMk(true);
                }else if (staProtocol.getSiteId().equals(300)){
                } else if (staProtocol.getSiteId().equals(300)) {
                    BasDevpMapper basDevpMapper = SpringUtils.getBean(BasDevpMapper.class);
                    BasDevp basDevp = basDevpMapper.selectByDevNo(300);
                    if (!basDevp.getWrkNo().equals(basDevp.getWrkNo1())){
                    if (!basDevp.getWrkNo().equals(basDevp.getWrkNo1())) {
                        staProtocol.setPakMk(true);
                    }
                }
src/main/resources/application.yml
@@ -218,7 +218,7 @@
  # 输送线2
  devp[1]:
    id: 2
    ip: 10.10.11.61
    ip: 10.10.10.160
    port: 102
    rack: 0
    slot: 0
@@ -238,7 +238,7 @@
  # 输送线3
  devp[2]:
    id: 3
    ip: 10.10.12.61
    ip: 10.10.10.170
    port: 102
    rack: 0
    slot: 0
@@ -282,14 +282,14 @@
    id: 1
    ip: 10.10.10.205
    port: 5005
    devpPlcId: ${wcs-slave.devp[1].id}
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 100
  # LED2
  led[1]:
    id: 2
    ip: 10.10.10.206
    port: 5005
    devpPlcId: ${wcs-slave.devp[2].id}
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 300
  # LED3
  led[2]:
@@ -301,14 +301,14 @@
  # LED4
  led[3]:
    id: 4
    ip: 10.10.11.207
    ip: 10.10.10.207
    port: 5005
    devpPlcId: ${wcs-slave.devp[1].id}
    staArr: 200
  # LED5
  led[4]:
    id: 5
    ip: 10.10.12.207
    ip: 10.10.10.207
    port: 5005
    devpPlcId: ${wcs-slave.devp[2].id}
    staArr: 200
src/main/webapp/static/css/console.css
@@ -310,6 +310,13 @@
.site-row-1 .site {
    width: 80px;
}
.site-row-112 {
    top: 89px;
    left: 599px;
}
.site-row-112 .site {
    width: 70px;
}
.site-row-2 {
    top: 289px;
    left: 499px;
@@ -339,7 +346,13 @@
.site-row-5 .site {
    width: 70px;
}
.site-row-212 {
    top: 563px;
    left: 599px;
}
.site-row-212 .site {
    width: 70px;
}
.site-row-6 {
    top: 213px;
    left: 797px;
src/main/webapp/views/console.html
@@ -22,6 +22,12 @@
            <div id="site-200" class="site" style="height: 30px;line-height: 30px;margin-top: 95px;">200</div>
        </div>
        <!-- 第2列-->
        <div class="site-row site-row-112">
            <div id="site-114" class="site" style="height: 30px;line-height: 30px;">114</div>
            <div id="site-113" class="site" style="height: 30px;line-height: 30px;">113</div>
            <div id="site-112" class="site" style="height: 30px;line-height: 30px;">112</div>
        </div>
        <!-- 第2列-->
        <div class="site-row site-row-2">
            <div id="site-101" class="site" style="height: 36px;line-height: 36px;">101</div>
            <div id="site-300" class="site" style="height: 94px;line-height: 94px;">300</div>
@@ -52,6 +58,11 @@
            <div id="site-207" class="site" style="height: 32px;line-height: 32px;">207</div>
        </div>
        <!-- 第6列 -->
        <div class="site-row site-row-212">
            <div id="site-212" class="site" style="height: 30px;line-height: 30px;">212</div>
            <div id="site-213" class="site" style="height: 30px;line-height: 30px;">213</div>
            <div id="site-214" class="site" style="height: 30px;line-height: 30px;">214</div>
        </div>
        <div class="site-row site-row-6">
            <div id="site-108" class="site" style="height: 36px;line-height: 36px;">108</div>
            <div id="site-109" class="site" style="height: 36px;line-height: 36px;">109</div>