自动化立体仓库 - WCS系统
#
lsh
2024-07-11 62cbca073eb9d7d941dec33ec2c013600df965f4
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -351,12 +351,22 @@
        //条码扫描器
        Thread.sleep(200);
        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.840",(short)(barcodeSize*8));
        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.2440",(short)(barcodeSize*8));
        if (result2.IsSuccess) {
            for (int i = 0; i < barcodeSize; i++) {  //1:217  2:221  3:null 4:215  5:219
                String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,6, "UTF-8");
            int[] staNosRgv = {281,292,173,214,120};
            for (int i = 0; i < barcodeSize; i++) {  //1:281  2:292  3:174(173) 4:214  5:120
                String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                    Integer siteId = staNosRgv[i]; // 站点编号
                    StaProtocol staProtocol = station.get(siteId);
                    if (null == staProtocol) {
                        staProtocol = new StaProtocol();
                        staProtocol.setSiteId(siteId);
                        station.put(siteId, staProtocol);
                    }
                    staProtocol.setBarcode(barcode);
                    barcodeThread.setBarcode(barcode);
                }
            }
@@ -563,7 +573,7 @@
            log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(staProtocol));
        } else {
            OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
            log.info("输送线命令下发完成  给输送复位 [id:{}] >>>>> 命令下发: {}",  slave.getId(), JSON.toJSON(staProtocol));
            log.info("输送线命令下发完成  给输送复位 [id:{}] >>>>> 命令下发: {}",  slave.getId(), JSON.toJSONString(staProtocol));
        }
    }
@@ -623,7 +633,7 @@
        do {
            try{
                if(!result1.IsSuccess){
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result1 = siemensS7Net.Write(resultV1, resultS1);
                    Thread.sleep(100);
                    writeCount++;
@@ -635,14 +645,14 @@
                    if (status == 1){
                        break;
                    } else {
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                        result1 = siemensS7Net.Write(resultV1, resultS1);
                        Thread.sleep(100);
                        writeCount++;
                        continue;
                    }
                } else {
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result1 = siemensS7Net.Write(resultV1, resultS1);
                    Thread.sleep(100);
                    writeCount++;
@@ -667,7 +677,7 @@
        do {
            try{
                if(!result2.IsSuccess){
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result2 = siemensS7Net.Write(resultV1, resultS2);
                    Thread.sleep(100);
@@ -680,14 +690,14 @@
                    if (status == resultS2){
                        break;
                    } else {
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                        result2 = siemensS7Net.Write(resultV1, resultS2);
                        Thread.sleep(100);
                        writeCount++;
                        continue;
                    }
                } else {
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result2 = siemensS7Net.Write(resultV1, resultS2);
                    Thread.sleep(100);
                    writeCount++;
@@ -769,7 +779,7 @@
        do {
            try{
                if(!result1.IsSuccess){
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result1 = siemensS7Net.Write(resultV1, resultS1);
                    Thread.sleep(100);
                    writeCount++;
@@ -782,14 +792,14 @@
                    if (statusR1 == resultS1){
                        break;
                    } else {
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                        result1 = siemensS7Net.Write(resultV1, resultS1);
                        Thread.sleep(100);
                        writeCount++;
                        continue;
                    }
                } else {
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result1 = siemensS7Net.Write(resultV1, resultS1);
                    Thread.sleep(100);
                    writeCount++;
@@ -808,7 +818,7 @@
        do {
            try{
                if(!result2.IsSuccess){
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result2 = siemensS7Net.Write(resultV1, resultS2);
                    Thread.sleep(100);
                    writeCount++;
@@ -821,7 +831,7 @@
                    if (statusR1 == resultS2){
                        break;
                    } else {
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                        result2 = siemensS7Net.Write(resultV1, resultS2);
                        Thread.sleep(100);
@@ -829,7 +839,7 @@
                        continue;
                    }
                } else {
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result2 = siemensS7Net.Write(resultV1, resultS2);
                    Thread.sleep(100);
                    writeCount++;
@@ -886,7 +896,7 @@
        do {
            try{
                if(!result1.IsSuccess){
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result1 = siemensS7Net.Write(resultV1, resultS1);
                    Thread.sleep(100);
                    writeCount++;
@@ -898,14 +908,14 @@
                    if (transInt16 == resultS1){
                        break;
                    } else {
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                        result1 = siemensS7Net.Write(resultV1, resultS1);
                        Thread.sleep(100);
                        writeCount++;
                        continue;
                    }
                } else {
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result1 = siemensS7Net.Write(resultV1, resultS1);
                    Thread.sleep(100);
                    writeCount++;
@@ -921,7 +931,7 @@
        do {
            try{
                if(!result2.IsSuccess){
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result2 = siemensS7Net.Write(resultV2, resultS1);
                    Thread.sleep(100);
                    writeCount++;
@@ -933,14 +943,14 @@
                    if (transInt16 == resultS1){
                        break;
                    } else {
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                        result2 = siemensS7Net.Write(resultV2, resultS1);
                        Thread.sleep(100);
                        writeCount++;
                        continue;
                    }
                } else {
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount);
                    result2 = siemensS7Net.Write(resultV2, resultS1);
                    Thread.sleep(100);
                    writeCount++;
@@ -954,11 +964,11 @@
        if (!result1.IsSuccess) {
            staProtocol = station.get(staProtocol.getSiteId());
            OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(staProtocol)));
            log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(staProtocol));
            OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSONString(staProtocol)));
            log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSONString(staProtocol));
        } else {
            OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
            log.info("输送线命令下发完成  给输送复位 [id:{}] >>>>> 命令下发: {}",  slave.getId(), JSON.toJSON(staProtocol));
            OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSONString(staProtocol)));
            log.info("输送线命令下发完成  给输送复位 [id:{}] >>>>> 命令下发: {}",  slave.getId(), JSON.toJSONString(staProtocol));
        }
    }