自动化立体仓库 - WCS系统
zyx
2024-02-06 429bf2ffe5bf78bb35347a051e45f329ab0e79d5
#AGV 输送线扫码器扫描
4个文件已修改
168 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvController.java
@@ -29,7 +29,12 @@
        return r.add(map);
        //return R.ok();
    }
    @PostMapping("/container/completed")
    public R containerCompleted(@RequestBody JSONObject jsonObject){
        return R.ok();
    }
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2739,13 +2739,38 @@
        return false;
    }
    //通知WMS当前拣料站点信息
    private boolean agvCureentCall(String staNo, String barcode) {
        try {
            HashMap<String, Object> param = new HashMap<>();
            param.put("devNo", staNo);
            param.put("containerCode", barcode);
            String response = new HttpHandler.Builder()
                    .setUri(wmsUrl)
                    .setPath("/rpc/current/containerCode")
                    .setJson(JSON.toJSONString(param))
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            News.info("悬挂线,WMS返回结果:" + jsonObject);
            Integer code = jsonObject.getInteger("code");
            if (code.equals(200)) {//呼叫AGV
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
        return false;
    }
    /**
     * AGV补货(悬挂线通知AGV取货)
     */
    public void agvRestockIntoByHangingWire() {
        try {
            //检测350和351扫码器
            int[] barcodeStaNo = {11, 12};//11 => 350站扫码器,12 => 351站扫码器
            int[] barcodeStaNo = {11, 12,14,16,18,20};//11 => 350站扫码器,12 => 351站扫码器
            for (int staNo : barcodeStaNo) {
                // 获取条码扫描仪信息
                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, staNo);
@@ -2763,13 +2788,13 @@
                        agvStaNo = "303-1";
                    } else if(staNo == 12){
                        agvStaNo = "304-1";
                    } else if(staNo == 13){
                        agvStaNo = "311-1";
                    } else if(staNo == 14){
                        agvStaNo = "313-1";
                    } else if(staNo == 15){
                        agvStaNo = "315-1";
                        agvStaNo = "311-1";
                    } else if(staNo == 16){
                        agvStaNo = "313-1";
                    } else if(staNo == 18){
                        agvStaNo = "315-1";
                    } else if(staNo == 20){
                        agvStaNo = "317-1";
                    }
                    //通知AGV取货
@@ -2785,6 +2810,48 @@
        }
    }
    /**
     * AGV拣料站点信息
     */
    public void agvCurrentContainerCodeInfoWire() {
        try {
            //检测350和351扫码器
            int[] barcodeStaNo = {13, 15,17,19};//11 => 350站扫码器,12 => 351站扫码器
            for (int staNo : barcodeStaNo) {
                // 获取条码扫描仪信息
                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, staNo);
                if (barcodeThread == null) {
                    continue;
                }
                String barcode = barcodeThread.getBarcode();
                if (!Cools.isEmpty(barcode)) {
                    if (barcode.contains("NoRead")) {
                        continue;
                    }
                    String agvStaNo = null;
                    if (staNo == 13) {
                        agvStaNo = "310-1";
                    } else if(staNo == 15){
                        agvStaNo = "312-1";
                    } else if(staNo == 17){
                        agvStaNo = "314-1";
                    } else if(staNo == 19){
                        agvStaNo = "316-1";
                    }
                    //通知AGV取货
                    boolean result = agvRestockCall(agvStaNo, barcode);
                    if (result) {
                        barcodeThread.setBarcode("");
                    }
                    log.info(barcodeThread.getSlave().getId() + "号扫码器,通知AGV取货,条码号:" + barcode);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    // 300站拣料
    public void pick300() {
        try {
src/main/java/com/zy/core/MainProcess.java
@@ -82,6 +82,8 @@
                    mainService.agvRestockInto();
                    // AGV补货(悬挂线通知AGV取货)
                    mainService.agvRestockIntoByHangingWire();
                    // AGV信息更新
                    mainService.agvCurrentContainerCodeInfoWire();
                    // 300站拣料
                    mainService.pick300();
                    // 出库  ===>> 工作档信息写入led显示器
src/main/resources/application.yml
@@ -394,46 +394,46 @@
    id: 12
    ip: 10.10.10.224
    port: 2002
#  # 条码扫描仪
#  barcode[12]:
#    id: 12
#    ip: 10.10.10.224
#    port: 2002
#  # 条码扫描仪
#  barcode[13]:
#    id: 12
#    ip: 10.10.10.224
#    port: 2002
#  # 条码扫描仪
#  barcode[14]:
#    id: 12
#    ip: 10.10.10.224
#    port: 2002
#  # 条码扫描仪
#  barcode[15]:
#    id: 12
#    ip: 10.10.10.224
#    port: 2002
#  # 条码扫描仪
#  barcode[16]:
#    id: 12
#    ip: 10.10.10.224
#    port: 2002
#  # 条码扫描仪
#  barcode[17]:
#    id: 12
#    ip: 10.10.10.224
#    port: 2002
#  # 条码扫描仪
#  barcode[18]:
#    id: 12
#    ip: 10.10.10.224
#    port: 2002
#  # 条码扫描仪
#  barcode[19]:
#    id: 12
#    ip: 10.10.10.224
#    port: 2002
  # 条码扫描仪
  barcode[12]:
    id: 13
    ip: 10.10.10.233
    port: 2002
  # 条码扫描仪
  barcode[13]:
    id: 14
    ip: 10.10.10.232
    port: 2002
  # 条码扫描仪
  barcode[14]:
    id: 15
    ip: 10.10.10.231
    port: 2002
  # 条码扫描仪
  barcode[15]:
    id: 16
    ip: 10.10.10.230
    port: 2002
  # 条码扫描仪
  barcode[16]:
    id: 17
    ip: 10.10.10.229
    port: 2002
  # 条码扫描仪
  barcode[17]:
    id: 18
    ip: 10.10.10.228
    port: 2002
  # 条码扫描仪
  barcode[18]:
    id: 19
    ip: 10.10.10.227
    port: 2002
  # 条码扫描仪
  barcode[19]:
    id: 20
    ip: 10.10.10.226
    port: 2002
   # LED1
  led[0]: