1
zhang
2025-06-13 23423cc4909b4a958ba581e9bc54bfa007155be1
1
1个文件已修改
56 ■■■■ 已修改文件
src/main/java/com/zy/core/thread/SiemensCrnThread.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -18,16 +18,15 @@
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
import com.zy.core.enums.CommandStatusType;
import com.zy.core.enums.CrnTaskModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CrnSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.CommandPackage;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.StaProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import java.text.MessageFormat;
@@ -46,19 +45,37 @@
    private CrnProtocol crnProtocol;
    private boolean resetFlag = false;
    @Value("${wms.url}")
    private String wmsUrl;
    public static final List<Short> rowOne = new ArrayList<Short>() {{
        add((short) 1);add((short) 5);add((short) 7);add((short) 11);add((short) 15);add((short) 19);
        add((short) 1);
        add((short) 5);
        add((short) 7);
        add((short) 11);
        add((short) 15);
        add((short) 19);
    }};
    public static final List<Short> rowTwo = new ArrayList<Short>() {{
        add((short) 2);add((short) 6);add((short) 8);add((short) 12);add((short) 16);add((short) 20);
        add((short) 2);
        add((short) 6);
        add((short) 8);
        add((short) 12);
        add((short) 16);
        add((short) 20);
    }};
    public static final List<Short> rowThree = new ArrayList<Short>() {{
        add((short) 3);add((short) 9);add((short) 13);add((short) 17);add((short) 21);
        add((short) 3);
        add((short) 9);
        add((short) 13);
        add((short) 17);
        add((short) 21);
    }};
    public static final List<Short> rowFour = new ArrayList<Short>() {{
        add((short) 4);add((short) 10);add((short) 14);add((short) 18);
        add((short) 4);
        add((short) 10);
        add((short) 14);
        add((short) 18);
    }};
@@ -160,11 +177,22 @@
        return result;
    }
    // 更新入出库模式
    private void updateIoMode(SiemensDevpThread devpThread) {
        if (slave.getId() == 1 && devpThread.ioModeOf1F1 != null) {
            if (!siemensNet.Write("DB105.0", devpThread.ioModeOf1F1.id).IsSuccess) {
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线21F1入出库模式失败。输送线plc编号={1}", slave.getId()));
                log.error("写入输送线1F1入出库模式失败。输送线plc编号={}", slave.getId());
            }
        }
    }
    /**
     * 读取状态
     */
    private void readStatus(){
        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
        updateIoMode(devpThread);
        OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56);
        if (result.IsSuccess) {
            if (null == crnProtocol) {
@@ -194,11 +222,9 @@
            // TODO
            //更新虚拟输送线状态
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            //devpThread.setData();
            OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功", DateUtils.convert(new Date()), slave.getId()));
            // 复位信号
@@ -294,7 +320,6 @@
                    }
                }
            }
@@ -307,7 +332,8 @@
                if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
                    log.error("堆垛机plc数据库更新失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
                }
            } catch (Exception ignore){}
            } catch (Exception ignore) {
            }
            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
            deviceErrorService.deleteDeviceError("crn", slave.getId());
@@ -474,7 +500,8 @@
                    null    // 修改人员
            );
            bean.insert(basCrnOpt);
        } catch (Exception ignore) {}
        } catch (Exception ignore) {
        }
        if (result != null && result.IsSuccess) {
            Thread.sleep(300);
@@ -631,7 +658,6 @@
        if (result.IsSuccess) {
            log.warn("堆垛机命令下发[id:{},时间:{}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command));
            OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
            return true;