*
lsh
2 天以前 23b4e7942a8524ed1e89d93c55a470f0dc263d5a
src/main/java/com/zy/core/thread/RgvThread.java
@@ -84,15 +84,24 @@
    private void taskIssued() {
        while (true) {
            try {
                if(!connectRgv){
                    try {
                        Thread.sleep(1000L);
                    } catch (Exception e){
                    }
                    continue;
                }
                int step = 1;
                Task task = MessageQueue.poll(SlaveType.Rgv, slave.getId());
                if (task != null) {
                    step = task.getStep();
                }
                switch (step) {
                    // 读数据
                    //漫游任务完成信号
                    case 1:
//                        readStatus();
                        taskComplete();
                        break;
                    //工位1写入数据
                    case 2:
@@ -126,10 +135,14 @@
                        command4.setDestinationStaNo1((short)0);     // 目标站
                        write3(command4);
                        break;
                    // 漫游
                    case 5:
                        write5((Long) task.getData());
                        break;
                    default:
                        break;
                }
                Thread.sleep(100);
                Thread.sleep(50);
            } catch (Exception e) {
                log.error("RGV写线程异常"+e.getMessage());
//                e.printStackTrace();
@@ -162,6 +175,15 @@
    private void readStatusRgv() {
        while (true) {
            try {
                if(!connectRgv){
                    try {
                        Thread.sleep(1000L);
                    } catch (Exception e){
                    }
                    initRgv();
                    continue;
                }
                Thread.sleep(40);
                readStatus();
@@ -229,7 +251,7 @@
            OperateResultExOne<byte[]> result = siemensNet.Read("DB100.0", (short) 20);
            OperateResultExOne<byte[]> resultV = siemensNet.Read("DB20.16", (short) 2);
            OperateResultExOne<byte[]> resultE = siemensNet.Read("DB20.26", (short) 2);
            if (result.IsSuccess) {
            if (result.IsSuccess && resultV.IsSuccess && resultE.IsSuccess) {
                if (null == rgvProtocol) {
                    rgvProtocol = new RgvProtocol();
                    rgvProtocol.setRgvNo(slave.getId());
@@ -340,6 +362,33 @@
            return false;
        }
    }
    /**
     * 完成
     */
    private void taskComplete() {
        try {
            OperateResultExOne<byte[]> result = siemensNet.Read("DB24.11", (short) 1);
            boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, 0, 1);
            if (status[0]){
                OperateResult result4 = siemensNet.Write("DB24.11.0", false);
            }
        } catch (Exception e) {
            log.error("RGV数据任务下发复位线程异常!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
        }
    }
    private void write5(Long devperimeter){
        try {
            siemensNet.Write("DB24.12", devperimeter.intValue());
            Thread.sleep(10L);
            siemensNet.Write("DB24.11.0", true);
        } catch (Exception ignore) {
            log.error("写入RGV plc工位1漫游数据失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
        }
    }
    private boolean write3(RgvCommand command) throws InterruptedException {
        if (null == command) {
            log.error("RGV写入命令为空");
@@ -407,18 +456,18 @@
    /******************************************************************************************/
    /**************************************** 测试专用 *****************************************/
    /*****************************************************************************************/
    public static void main(String[] args) throws InterruptedException {
        RgvSlave slave = new RgvSlave();
        slave.setId(1);
        slave.setIp("192.168.6.9");
        slave.setRack(0);
        slave.setSlot(0);
        RgvThread rgvThread = new RgvThread(slave);
        rgvThread.connect();
        rgvThread.readStatus();
        System.out.println(JSON.toJSONString(rgvThread.rgvProtocol));
        Thread.sleep(3000L);
    }
//    public static void main(String[] args) throws InterruptedException {
//        RgvSlave slave = new RgvSlave();
//        slave.setId(1);
//        slave.setIp("192.168.6.9");
//        slave.setRack(0);
//        slave.setSlot(0);
//        RgvThread rgvThread = new RgvThread(slave);
//        rgvThread.connect();
//        rgvThread.readStatus();
//        System.out.println(JSON.toJSONString(rgvThread.rgvProtocol));
//        Thread.sleep(3000L);
//
//    }
}