#
yxFwq
2024-12-30 34045217b2ab791a01a6672cf5ab3830b55b900e
src/main/java/com/zy/core/thread/JarThread.java
@@ -118,14 +118,34 @@
    private void readStatus(){
        try {
            if (slave.getId()>4){
                return;
            }
            OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 26);
            if (result.IsSuccess) {
                if (null == jarProtocol) {
                    jarProtocol = new JarProtocol();
                    jarProtocol.setJarNo(slave.getId());
                }
                jarProtocol.setJarNo(slave.getId());
                jarProtocol.setMode(2);//模式
                jarProtocol.setStatus((short)0);//状态
                jarProtocol.setAutoing(true);//自动
                jarProtocol.setRightDoor(true);//左门状态  //出料门
                jarProtocol.setLeftDoor(true);//右门状态  //进料门
                jarProtocol.setLeftDoorOpen(0);//open the left door  //进料门
                jarProtocol.setLeftDoorClose(0);//close the left door  //进料门
                jarProtocol.setRightDoorOpen(0);//open the right door  //出料门
                jarProtocol.setRightDoorClose(0);//close the right door  //出料门
                jarProtocol.setJarTemperature(0.0F);
                return;
            }
            OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 30);
            OperateResultExOne<byte[]> result338 = siemensS7Net.Read("V338", (short) 4);
            if (result.IsSuccess && result338.IsSuccess) {
                if (null == jarProtocol) {
                    jarProtocol = new JarProtocol();
                    jarProtocol.setJarNo(slave.getId());
                }
                jarProtocol.setJarNo(slave.getId());
                if (slave.getId() == 1 || slave.getId() == 3){
                    jarProtocol.setRightDoor(siemensS7Net.getByteTransform().TransInt16(result.Content, 0) != 0);//左门状态  //出料门
                    jarProtocol.setLeftDoor(siemensS7Net.getByteTransform().TransInt16(result.Content, 2) != 0);//右门状态  //进料门
@@ -152,12 +172,59 @@
                jarProtocol.setMode((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 12));//模式
                jarProtocol.setJarErr((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 14));//异常码
                jarProtocol.setStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 16));//状态
                jarProtocol.setJarTemperature(siemensS7Net.getByteTransform().TransSingle(result.Content, 26));//温度
                jarProtocol.setJarPressure(siemensS7Net.getByteTransform().TransSingle(result338.Content, 0));//压力
                jarProtocol.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, 12) == 2);//自动
//                if (jarProtocol.statusType .equals(JarStatusType.SOS)){
//                    jarProtocol.setHoldingSign(!jarProtocol.getStatus().equals(jarProtocol.getUpStatus()));
//                } else
                if (jarProtocol.statusType .equals(JarStatusType.SOS2)){
                    jarProtocol.setHoldingSign(!jarProtocol.getStatus().equals(jarProtocol.getUpStatus()));
                    if (!jarProtocol.rightDoorClose.equals(jarProtocol.leftDoorClose)) {
                        if (jarProtocol.rightDoorClose == 0 || jarProtocol.leftDoorClose == 0){
                            if (jarProtocol.rightDoorClose == 2 || jarProtocol.leftDoorClose == 2){
                                jarProtocol.setLeftDoorClose(0);//close the left door  //进料门
                                jarProtocol.setRightDoorClose(0);//close the right door  //出料门
                            }
                        }
                        if (jarProtocol.rightDoorOpen == 0 || jarProtocol.leftDoorOpen == 0){
                            if (jarProtocol.rightDoorOpen == 2 || jarProtocol.leftDoorOpen == 2){
                                jarProtocol.setLeftDoorOpen(0);//open the left door  //进料门
                                jarProtocol.setRightDoorOpen(0);//open the right door  //出料门
                            }
                        }
                    }
                } else if (jarProtocol.statusType .equals(JarStatusType.WAITING3) || jarProtocol.statusType .equals(JarStatusType.WAITING4)){
                    jarProtocol.setOpenDoorSign(!jarProtocol.getStatus().equals(jarProtocol.getUpStatus()));
                } else if (jarProtocol.statusType .equals(JarStatusType.WAITING5) || jarProtocol.statusType .equals(JarStatusType.OFF_LINE)){
                    jarProtocol.setCloseDoorSign(!jarProtocol.getStatus().equals(jarProtocol.getUpStatus()));
                } else if (jarProtocol.statusType .equals(JarStatusType.WAITING1) || jarProtocol.statusType .equals(JarStatusType.MOVING)){
                    if (!jarProtocol.rightDoorOpen.equals(jarProtocol.leftDoorOpen)) {
                        if (jarProtocol.rightDoorOpen == 0 || jarProtocol.leftDoorOpen == 0){
                            if (jarProtocol.rightDoorOpen == 2 || jarProtocol.leftDoorOpen == 2){
                                jarProtocol.setLeftDoorOpen(0);//open the left door  //进料门
                                jarProtocol.setRightDoorOpen(0);//open the right door  //出料门
                            }
                        }
                    }
                    if (jarProtocol.rightDoorClose == 0 || jarProtocol.leftDoorClose == 0){
                        if (jarProtocol.rightDoorClose == 2 || jarProtocol.leftDoorClose == 2){
                            jarProtocol.setLeftDoorClose(0);//close the left door  //进料门
                            jarProtocol.setRightDoorClose(0);//close the right door  //出料门
                        }
                    }
                }
                jarProtocol.setUpStatus(jarProtocol.getStatus());
//
//                jarProtocol.setMode(2);//模式
//                jarProtocol.setStatus((short)1);//状态
//                jarProtocol.setStatus((short)6);//状态
//                jarProtocol.setLeftDoorOpen(0);//open the left door  //进料门
//                jarProtocol.setLeftDoorClose(0);//close the left door  //进料门
//                jarProtocol.setRightDoorOpen(0);//open the right door  //出料门
@@ -206,7 +273,7 @@
        String resultV2 = null;
        short resultS2 = 0;
        switch (command.getTaskMode()){
        switch (command.getTaskModeType().id){
            case 1:
            case 2:
            case 3:
@@ -251,7 +318,7 @@
        do {
            try{
                if(!result1.IsSuccess){
                    log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount);
                    log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                    result1 = siemensS7Net.Write(resultV1, resultS1);
                    Thread.sleep(100);
                    writeCount++;
@@ -263,14 +330,14 @@
                    if (transInt16 == resultS1 || transInt16 == (short) 2 || transInt16 == (short) 3){
                        break;
                    } else {
                        log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount);
                        log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                        result1 = siemensS7Net.Write(resultV1, resultS1);
                        Thread.sleep(100);
                        writeCount++;
                        continue;
                    }
                } else {
                    log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount);
                    log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                    result1 = siemensS7Net.Write(resultV1, resultS1);
                    Thread.sleep(100);
                    writeCount++;
@@ -286,7 +353,7 @@
        do {
            try{
                if(!result2.IsSuccess){
                    log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount);
                    log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                    result2 = siemensS7Net.Write(resultV2, resultS2);
                    Thread.sleep(100);
                    writeCount++;
@@ -295,17 +362,17 @@
                OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 2);
                if (resultRead2.IsSuccess) {
                    short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead2.Content, 0);
                    if (transInt16 == resultS1  || transInt16 == (short) 3){
                    if (transInt16 == resultS2  || transInt16 == (short) 3){
                        break;
                    } else {
                        log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount);
                        log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                        result2 = siemensS7Net.Write(resultV2, resultS2);
                        Thread.sleep(100);
                        writeCount++;
                        continue;
                    }
                } else {
                    log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount);
                    log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                    result2 = siemensS7Net.Write(resultV2, resultS2);
                    Thread.sleep(100);
                    writeCount++;