自动化立体仓库 - WCS系统
#
lsh
2024-07-15 357dde734fdb70d4918a6b6a1c6469952a2bcf09
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -207,6 +207,8 @@
                    case 11:
                        write11((StaProtocol)task.getData());
                        break;
                    case 99:
                        write99((Integer) task.getData());
                    default:
                        break;
                }
@@ -968,7 +970,60 @@
        }
    }
    // 更新入出库模式
    private void write99(Integer devNo) throws InterruptedException {
        String resultV1 = "";
        switch (devNo){
            case 1:
                resultV1 = "DB100.1824";
                break;
            case 2:
                resultV1 = "DB100.1836";
                break;
            case 3:
                resultV1 = "DB100.1848";
                break;
            default:
                return;
        }
        OperateResult result = siemensS7Net.Write(resultV1, (short) 1);
        Integer writeCount = 0;
        do {
            try{
                if(!result.IsSuccess){
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(devNo),writeCount);
                    result = siemensS7Net.Write(resultV1, (short) 1);
                    Thread.sleep(100);
                    writeCount++;
                    continue;
                }
                OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read("resultV1", (short) 2);
                if (resultRead1.IsSuccess) {
                    short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead1.Content, 0);
                    if (transInt16 == (short) 1){
                        break;
                    } else {
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(devNo),writeCount);
                        result = siemensS7Net.Write(resultV1, (short) 1);
                        Thread.sleep(100);
                        writeCount++;
                        continue;
                    }
                } else {
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(devNo),writeCount);
                    result = siemensS7Net.Write(resultV1, (short) 1);
                    Thread.sleep(100);
                    writeCount++;
                    continue;
                }
            }catch (Exception e){
                log.error("写入数据后回读出错,异常:"+e);
            }
            writeCount++;
        } while (writeCount<6);
    }
        // 更新入出库模式
    private void updateIoMode() throws InterruptedException {
        if (this.ioModeOf2F != IoModeType.NONE) {
            if (!siemensS7Net.Write("DB100.180", this.ioModeOf2F.id).IsSuccess) {