src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/enums/CrnStatusType.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/MelsecCrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -338,20 +338,20 @@ for (DevpSlave devp : slaveProperties.getDevp()) { // 遍历拣料入库口 for (DevpSlave.Sta pickSta : devp.getPickSta()) { // // 获取条码扫描仪信息 // BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode()); // if (barcodeThread == null) { // continue; // } // String barcode = barcodeThread.getBarcode(); // if(!Cools.isEmpty(barcode)) { // log.info("{}号条码扫描器检测条码信息:{}", pickSta.getBarcode(), barcode); // if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { // continue; // } // } else { // continue; // } // 获取条码扫描仪信息 BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode()); if (barcodeThread == null) { continue; } String barcode = barcodeThread.getBarcode(); if(!Cools.isEmpty(barcode)) { log.info("{}号条码扫描器检测条码信息:{}", pickSta.getBarcode(), barcode); if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { continue; } } else { continue; } // 获取拣料入库站信息 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); @@ -721,7 +721,7 @@ CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 crnCommand.setAckFinish((short) 0); // 任务完成确认位 // crnCommand.setAckFinish((short) 0); // 任务完成确认位 crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式: 库位移转 crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 源库位排 crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 源库位列 @@ -869,7 +869,7 @@ CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 crnCommand.setAckFinish((short) 0); // 任务完成确认位 // crnCommand.setAckFinish((short) 0); // 任务完成确认位 crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式: 库位移转 crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 源库位排 crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 源库位列 src/main/java/com/zy/core/enums/CrnStatusType.java
@@ -13,7 +13,7 @@ ORIGIN_GO(7, "回原点"), ORIGIN_BACK(8, "回反原点"), MOVING(9, "走行中"), WAITING(10, "任务完成等待WCS确认"), WAITING(90, "任务完成等待WCS确认"), PAUSE(11, "任务暂停"), SOS(99, "报警"), UNKNOW(100, "其他"), src/main/java/com/zy/core/thread/MelsecCrnThread.java
@@ -86,12 +86,12 @@ command.setTaskNo((short) 0); // 工作号 command.setAckFinish((short) 1); // 任务完成确认位 command.setTaskMode(CrnTaskModeType.NONE); // 任务模式 command.setSourcePosX((short)0); // 源库位排 command.setSourcePosY((short)0); // 源库位列 command.setSourcePosZ((short)0); // 源库位层 command.setDestinationPosX((short)0); // 目标库位排 command.setDestinationPosY((short)0); // 目标库位列 command.setDestinationPosZ((short)0); // 目标库位层 // command.setSourcePosX((short)0); // 源库位排 // command.setSourcePosY((short)0); // 源库位列 // command.setSourcePosZ((short)0); // 源库位层 // command.setDestinationPosX((short)0); // 目标库位排 // command.setDestinationPosY((short)0); // 目标库位列 // command.setDestinationPosZ((short)0); // 目标库位层 write(command); break; default: @@ -161,7 +161,7 @@ // flag1=1; // System.out.println("==="); // } OperateResultExOne<byte[]> result = melsecMcNet.Read("D20", (short) 70); OperateResultExOne<byte[]> result = melsecMcNet.Read("D1035", (short) 56); if (result.IsSuccess) { if (null == crnProtocol) { crnProtocol = new CrnProtocol(); @@ -298,11 +298,11 @@ array[7] = command.getDestinationPosY(); array[8] = command.getDestinationPosZ(); array[9] = command.getCommand(); OperateResult result = melsecMcNet.Write("D0", array); OperateResult result = melsecMcNet.Write("D1001", array); if (command.getAckFinish() == 0) { short commandFinish = 1; result = melsecMcNet.Write("D9", commandFinish); result = melsecMcNet.Write("D1010", commandFinish); } try { @@ -348,12 +348,22 @@ * 心跳 */ private void heartbeat(){ if (heartBeatVal == 1) { heartBeatVal = 2; if (heartBeatVal >= 30000) { heartBeatVal = -30000; } else { heartBeatVal = 1; heartBeatVal =(short) (heartBeatVal+1); } OperateResult write = melsecMcNet.Write("D10", heartBeatVal); OperateResult write = melsecMcNet.Write("D1011", heartBeatVal); // OperateResult write1 = melsecMcNet.Write("D1001", (short) 0); // OperateResult write2 = melsecMcNet.Write("D1002", (short) 0); // OperateResult write3 = melsecMcNet.Write("D1003", (short) 0); // OperateResult write4 = melsecMcNet.Write("D1004", (short) 0); // OperateResult write5 = melsecMcNet.Write("D1005", (short) 0); // OperateResult write6 = melsecMcNet.Write("D1006", (short) 0); // OperateResult write7 = melsecMcNet.Write("D1007", (short) 0); // OperateResult write8 = melsecMcNet.Write("D1008", (short) 0); // OperateResult write9 = melsecMcNet.Write("D1009", (short) 0); // OperateResult write10 = melsecMcNet.Write("D1010", (short) 0); if (!write.IsSuccess) { log.error("堆垛机plc心跳通讯失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); } src/main/resources/application.yml
@@ -34,7 +34,7 @@ enable: false wms: url: localhost:8080/lfdwms url: localhost:8081/lfdwms # 下位机配置 wcs-slave: @@ -48,7 +48,7 @@ crn[0]: id: 1 ip: 10.10.10.1 port: 102 port: 6000 rack: 0 slot: 0 # 偏移量,当堆垛机站点列号=1时,偏移量=2 @@ -63,7 +63,7 @@ lev: 1 # 堆垛机出库站点 crnOutStn[0]: devpPlcId: ${wcs-slave.devp[1].id} devpPlcId: ${wcs-slave.devp[0].id} staNo: 106 row: 2 bay: 1 @@ -72,7 +72,7 @@ crn[1]: id: 2 ip: 10.10.10.2 port: 102 port: 6000 rack: 0 slot: 0 # 偏移量,当堆垛机站点列号=1时,偏移量=2 @@ -95,8 +95,8 @@ # 堆垛机3 crn[2]: id: 3 ip: 10.10.10.121 port: 102 ip: 10.10.10.3 port: 6000 rack: 0 slot: 0 # 偏移量,当堆垛机站点列号=1时,偏移量=2 @@ -119,8 +119,8 @@ # 堆垛机4 crn[3]: id: 4 ip: 10.10.10.121 port: 102 ip: 10.10.10.4 port: 6000 rack: 0 slot: 0 # 偏移量,当堆垛机站点列号=1时,偏移量=2 @@ -143,7 +143,7 @@ # 堆垛机5 crn[4]: id: 5 ip: 10.10.10.121 ip: 10.10.10.111 port: 102 rack: 0 slot: 0 @@ -152,14 +152,14 @@ demo: false # 堆垛机入库站点 crnInStn[0]: devpPlcId: ${wcs-slave.devp[0].id} devpPlcId: ${wcs-slave.devp[1].id} staNo: 202 row: 10 bay: 1 lev: 1 # 堆垛机出库站点 crnOutStn[0]: devpPlcId: ${wcs-slave.devp[0].id} devpPlcId: ${wcs-slave.devp[1].id} staNo: 203 row: 11 bay: 1 @@ -167,7 +167,7 @@ # 堆垛机6 crn[5]: id: 6 ip: 10.10.10.121 ip: 10.10.10.111 port: 102 rack: 0 slot: 0 @@ -176,14 +176,14 @@ demo: false # 堆垛机入库站点 crnInStn[0]: devpPlcId: ${wcs-slave.devp[0].id} devpPlcId: ${wcs-slave.devp[1].id} staNo: 208 row: 13 bay: 1 lev: 1 # 堆垛机出库站点 crnOutStn[0]: devpPlcId: ${wcs-slave.devp[0].id} devpPlcId: ${wcs-slave.devp[1].id} staNo: 209 row: 14 bay: 1 @@ -191,7 +191,7 @@ # 堆垛机7 crn[6]: id: 7 ip: 10.10.10.121 ip: 10.10.10.111 port: 102 rack: 0 slot: 0 @@ -200,14 +200,14 @@ demo: false # 堆垛机入库站点 crnInStn[0]: devpPlcId: ${wcs-slave.devp[0].id} devpPlcId: ${wcs-slave.devp[1].id} staNo: 214 row: 16 bay: 1 lev: 1 # 堆垛机出库站点 crnOutStn[0]: devpPlcId: ${wcs-slave.devp[0].id} devpPlcId: ${wcs-slave.devp[1].id} staNo: 215 row: 17 bay: 1 @@ -221,46 +221,50 @@ slot: 0 # 入库口1 inSta[0]: staNo: 109 staNo: 101 barcode: ${wcs-slave.barcode[0].id} backSta: 108 backSta: 100 led: ${wcs-slave.led[0].id} # 入库口2 inSta[1]: staNo: 117 staNo: 109 barcode: ${wcs-slave.barcode[1].id} backSta: 116 backSta: 108 led: ${wcs-slave.led[1].id} # 入库口3 inSta[2]: staNo: 101 staNo: 117 barcode: ${wcs-slave.barcode[2].id} backSta: 100 backSta: 116 led: ${wcs-slave.led[2].id} # 空板入库口1 emptyInSta[0]: staNo: 109 staNo: 101 barcode: ${wcs-slave.barcode[0].id} led: ${wcs-slave.led[0].id} # 空板入库口2 emptyInSta[1]: staNo: 117 staNo: 109 barcode: ${wcs-slave.barcode[1].id} led: ${wcs-slave.led[1].id} # 空板入库口2 # 空板入库口3 emptyInSta[2]: staNo: 101 staNo: 117 barcode: ${wcs-slave.barcode[2].id} led: ${wcs-slave.led[2].id} # 出库口1 outSta[0]: staNo: 126 led: ${wcs-slave.led[3].id} # 出库口2 outSta[1]: staNo: 134 led: ${wcs-slave.led[4].id} # 出库口2 outSta[2]: staNo: 100 led: ${wcs-slave.led[0].id} # # 拣料入库口1 # pickSta[0]: # staNo: 126 @@ -281,43 +285,46 @@ staNo: 201 barcode: ${wcs-slave.barcode[3].id} backSta: 200 led: ${wcs-slave.led[3].id} led: ${wcs-slave.led[5].id} # 入库口2 inSta[1]: staNo: 207 barcode: ${wcs-slave.barcode[4].id} backSta: 206 led: ${wcs-slave.led[4].id} led: ${wcs-slave.led[7].id} # 入库口3 inSta[2]: staNo: 213 barcode: ${wcs-slave.barcode[5].id} backSta: 212 led: ${wcs-slave.led[5].id} led: ${wcs-slave.led[9].id} # 空板入库口1 emptyInSta[0]: staNo: 201 barcode: ${wcs-slave.barcode[3].id} led: ${wcs-slave.led[3].id} led: ${wcs-slave.led[5].id} # 空板入库口2 emptyInSta[1]: staNo: 207 barcode: ${wcs-slave.barcode[4].id} led: ${wcs-slave.led[4].id} led: ${wcs-slave.led[7].id} # 空板入库口3 emptyInSta[2]: staNo: 213 barcode: ${wcs-slave.barcode[5].id} led: ${wcs-slave.led[5].id} led: ${wcs-slave.led[9].id} # 出库口1 outSta[0]: staNo: 205 led: ${wcs-slave.led[6].id} # 出库口2 outSta[1]: staNo: 211 led: ${wcs-slave.led[8].id} # 出库口3 outSta[2]: staNo: 217 led: ${wcs-slave.led[10].id} # # 拣料入库口1 # pickSta[0]: # staNo: 011 @@ -398,4 +405,39 @@ ip: 10.10.10.202 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 011 # LED7 led[6]: id: 6 ip: 10.10.10.202 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 011 # LED8 led[7]: id: 5 ip: 10.10.10.202 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 011 # LED9 led[8]: id: 6 ip: 10.10.10.202 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 011 # LED10 led[9]: id: 6 ip: 10.10.10.202 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 011 # LED11 led[10]: id: 6 ip: 10.10.10.202 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 011