*
lsh
9 天以前 7133241a7ad244824dcb2fd4afb560e9214bfbad
*
2个文件已修改
117 ■■■■ 已修改文件
src/main/java/com/zy/core/MainProcess.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/RgvThread.java 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java
@@ -107,6 +107,14 @@
    private void jarRun() {
        while (!Thread.currentThread().isInterrupted()) {
            try {
                // 间隔
                Thread.sleep(1000);
                // 系统运行状态判断
                if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
                    continue;
                }
                k++;
                if (k>5) {
                    k=0;
src/main/java/com/zy/core/thread/RgvThread.java
@@ -43,6 +43,8 @@
     * 工位1复位信号
     */
    private boolean resetFlag1 = false;
    private boolean connectRgv = false;
    /**
     * 工位2复位信号
     */
@@ -55,7 +57,70 @@
    @Override
    @SuppressWarnings("InfiniteLoopStatement")
    public void run() {
        this.connect();
        connectRgv = this.connect();
        while(!connectRgv){
            try {
                connectRgv = this.connect();
                Thread.sleep(100);
            } catch (Exception e){
            }
        }
        // 启动线程自动重连
        new Thread(this::rgvConnect).start();
        // 启动读数据线程
        new Thread(this::readStatusRgv).start();
        // 启动任务下发线程
        new Thread(this::taskIssued).start();
    }
    private void rgvConnect() {
        while (true) {
            try {
                Thread.sleep(1000);
                if(!connectRgv){
                    try {
                        connectRgv = this.connect();
                        Thread.sleep(100);
                    } catch (Exception e){
                    }
                }
            } catch (Exception e) {
                log.error("rgv连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                initRgv();
//                e.printStackTrace();
            }
        }
    }
    private void readStatusRgv() {
        while (true) {
            try {
                Thread.sleep(50);
                readStatus();
            } catch (Exception e) {
                log.error("RGV读线程异常"+e.getMessage());
                log.error("RGV数据读取线程异常!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                initRgv();
//                e.printStackTrace();
            }
        }
    }
    /**
     * 任务下发
     */
    private void taskIssued() {
        while (true) {
            try {
                int step = 1;
@@ -66,7 +131,7 @@
                switch (step) {
                    // 读数据
                    case 1:
                        readStatus();
//                        readStatus();
                        break;
                    // 工位1、2写入数据
                    case 2:
@@ -123,8 +188,10 @@
                    default:
                        break;
                }
                Thread.sleep(500);
                Thread.sleep(200);
            } catch (Exception e) {
                log.error("RGV写线程异常"+e.getMessage());
//                e.printStackTrace();
            }
@@ -135,23 +202,27 @@
     * 初始化RGV状态
     */
    private void initRgv() {
        if (null == rgvProtocol) {
            rgvProtocol = new RgvProtocol();
        try{
            if (null == rgvProtocol) {
                rgvProtocol = new RgvProtocol();
            }
            rgvProtocol.setMode((short) -1);
            rgvProtocol.setStatus((short)-1);
            rgvProtocol.setTaskNo1((short)0);
            rgvProtocol.setStatus1((short)-1);
            rgvProtocol.setLoaded1((short)0);
            rgvProtocol.setWalkPos((short)0);
            rgvProtocol.setRgvPos((short)0);
            rgvProtocol.setTaskNo2((short)0);
            rgvProtocol.setStatus2((short)-1);
            rgvProtocol.setLoaded2((short)0);
            rgvProtocol.setAlarm((short)0);
            rgvProtocol.setxSpeed((short) 0);
            rgvProtocol.setxDistance((short) 0);
            rgvProtocol.setxDuration((short) 0);
        }catch (Exception e){
            log.error("初始化RGV失败"+e.getMessage());
        }
        rgvProtocol.setMode((short) -1);
        rgvProtocol.setStatus((short)-1);
        rgvProtocol.setTaskNo1((short)0);
        rgvProtocol.setStatus1((short)-1);
        rgvProtocol.setLoaded1((short)0);
        rgvProtocol.setWalkPos((short)0);
        rgvProtocol.setRgvPos((short)0);
        rgvProtocol.setTaskNo2((short)0);
        rgvProtocol.setStatus2((short)-1);
        rgvProtocol.setLoaded2((short)0);
        rgvProtocol.setAlarm((short)0);
        rgvProtocol.setxSpeed((short) 0);
        rgvProtocol.setxDistance((short) 0);
        rgvProtocol.setxDuration((short) 0);
    }
    @Override