自动化立体仓库 - WCS系统
#
yxFwq
2024-07-18 19a7e4ff6c165ba3b13aaa4e79b0aa407ae8fd3f
src/main/java/com/zy/core/thread/JarThread.java
@@ -20,7 +20,6 @@
import com.zy.core.enums.SlaveType;
import com.zy.core.model.JarSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.command.JarCommand;
import com.zy.core.model.protocol.JarProtocol;
import lombok.Data;
@@ -64,7 +63,7 @@
                        break;
                    // 写数据 ID+目标站
                    case 2:
                        write(null);
                        write((JarCommand) task.getData());
                        break;
                    default:
                        break;
@@ -119,9 +118,26 @@
    private void readStatus(){
        try {
            if (slave.getId()>4){
                if (null == jarProtocol) {
                    jarProtocol = new JarProtocol();
                    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) 26);
            OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 30);
            if (result.IsSuccess) {
                if (null == jarProtocol) {
                    jarProtocol = new JarProtocol();
@@ -153,8 +169,19 @@
                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.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, 12) == 2);//自动
//
//                jarProtocol.setMode(2);//模式
//                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  //出料门
//                jarProtocol.setRightDoorClose(0);//close the right door  //出料门
                // 根据实时信息更新数据库
                BasJarService service = SpringUtils.getBean(BasJarService.class);
                if (null != service) {
@@ -197,7 +224,7 @@
        String resultV2 = null;
        short resultS2 = 0;
        switch (command.getTaskMode()){
        switch (command.getTaskModeType().id){
            case 1:
            case 2:
            case 3:
@@ -242,7 +269,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++;
@@ -254,14 +281,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++;
@@ -277,7 +304,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++;
@@ -289,14 +316,14 @@
                    if (transInt16 == resultS1  || 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++;