#
18516761980
2022-03-22 b176549aca3510a66610c03b2d9878cc4f811195
#
4个文件已修改
91 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -74,4 +74,17 @@
    WrkMast selectWorkingPakout();
    /**
     * 堆垛机是否存在出库任务
     * @param crnNo
     * @return
     */
    WrkMast selectCrnWorking(@Param("crnNo")Integer crnNo);
    /**
     * 输送线是否存在入库任务
     * @param crnNo
     * @return
     */
    WrkMast selectDevWorking(@Param("crnNo")Integer crnNo);
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -89,6 +89,8 @@
    private BasCrnErrorMapper basCrnErrorMapper;
    @Value("${wms.url}")
    private String wmsUrl;
    @Value("${crnBackHp.enable}")
    private boolean crnBackHp;
    /**
     * 组托
@@ -549,10 +551,60 @@
            }
            // 库位移转
            this.locToLoc(crn, crnProtocol);
            if (crnBackHp) {
                //堆垛机没有执行中任务,设备存在入库任务时叫回原点
                this.crnRebackHp(crn, crnProtocol);
            }
        }
    }
    /**
     * 回原点,堆垛机没有执行中任务,设备存在入库任务时叫回原点
     * @param slave
     * @param crnProtocol
     */
    public void crnRebackHp(CrnSlave slave, CrnProtocol crnProtocol){
            // 堆垛机控制过滤
            if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0
                || crnProtocol.getModeType() != CrnModeType.AUTO) {
                return;
            }
            // 已经存在吊车执行任务时,则过滤
            if (wrkMastMapper.selectWorking(slave.getId()) != null) {
                return;
            }
            //堆垛机有执行中任务,过滤
            if (wrkMastMapper.selectCrnWorking(slave.getId()) != null) {
                return;
            }
            //输送线没有入库任务,过滤
            if (wrkMastMapper.selectDevWorking(slave.getId()) == null) {
                return;
            }
            // 命令下发区 --------------------------------------------------------------------------
            CrnCommand crnCommand = new CrnCommand();
            crnCommand.setCrnNo(slave.getId()); // 堆垛机编号
            crnCommand.setTaskNo((short) 1); // 工作号
            crnCommand.setAckFinish((short) 0);  // 任务完成确认位
            crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 任务模式:  回原点
            crnCommand.setSourcePosX((short) 0);     // 源库位排
            crnCommand.setSourcePosY((short) 0);     // 源库位列
            crnCommand.setSourcePosZ((short) 0);     // 源库位层
            crnCommand.setDestinationPosX((short) 0);     // 目标库位排
            crnCommand.setDestinationPosY((short) 0);     // 目标库位列
            crnCommand.setDestinationPosZ((short) 0);     // 目标库位层
            if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
                log.error("堆垛机回原点命令下发失败,堆垛机号={},任务数据={}", slave.getId(), JSON.toJSON(crnCommand));
            } else {
            }
    }
    /**
     * 入库  ===>>  堆垛机站到库位
     */
    public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol){
src/main/resources/application.yml
@@ -41,6 +41,10 @@
  url: 10.10.10.238:8080/xgmwms
#  url: localhost:8082/xgmwms
#堆垛机没有执行中任务,输送有入库任务,叫回原点
crnBackHp:
  enable: true
# 下位机配置
wcs-slave:
  # 双深
@@ -170,9 +174,10 @@
    inSta[0]:
      staNo: 176
      barcode: ${wcs-slave.barcode[0].id}
#    inSta[1]:
#      staNo: 180
#      barcode: ${wcs-slave.barcode[1].id}
    # 入库口2
    inSta[1]:
      staNo: 180
      barcode: ${wcs-slave.barcode[1].id}
    # 空板入库口1
    emptyInSta[0]:
      staNo: 176
@@ -191,10 +196,10 @@
    id: 1
    ip: 10.10.10.52
    port: 51236
#  barcode[1]:
#    id: 2
#    ip: 10.10.10.53
#    port: 51236
  barcode[1]:
    id: 2
    ip: 10.10.10.53
    port: 51236
   # LED1
  led[0]:
    id: 1
src/main/resources/mapper/WrkMastMapper.xml
@@ -140,5 +140,12 @@
        order by io_time,wrk_no
    </select>
    <select id="selectCrnWorking" resultMap="BaseResultMap">
        select top 1 * from dbo.asr_wrk_mast where 1=1 and wrk_sts in (3,4,11,12) and crn_no=#{crnNo} order by io_time,wrk_no
    </select>
    <select id="selectDevWorking" resultMap="BaseResultMap">
        select top 1 * from dbo.asr_wrk_mast where 1=1 and wrk_sts=2 and crn_no=#{crnNo} order by io_time,wrk_no
    </select>
</mapper>