自动化立体仓库 - WCS系统
#
luxiaotao1123
2022-03-17 64b19ec9fe5eab3e7be031844c4ee228175d7e54
src/main/java/com/zy/core/thread/SteThread.java
@@ -142,9 +142,9 @@
                if (waitingRes.IsSuccess) {
                    steProtocol.setWaiting(waitingRes.Content);
                }
                steProtocol.setAlarm(siemensS7Net.getByteTransform().TransInt32(result.Content, 6));
                steProtocol.setAlarm0(siemensS7Net.getByteTransform().TransInt32(result.Content, 8));
                steProtocol.setCharge(siemensS7Net.getByteTransform().TransInt16(result.Content, 10));
                steProtocol.setAlarm(siemensS7Net.getByteTransform().TransInt16(result.Content, 6));
                steProtocol.setAlarm0(siemensS7Net.getByteTransform().TransInt16(result.Content, 8));
                steProtocol.setCharge(siemensS7Net.getByteTransform().TransSingle(result.Content, 10));
//                steProtocol.setFullCharge();
//                steProtocol.setLowCharge();
                steProtocol.setFeed(siemensS7Net.getByteTransform().TransInt16(result.Content, 14));
@@ -224,9 +224,14 @@
            // 作业
            if (command.getTaskMode() != 0) {
                // 1.任务号
                OperateResult result0 = siemensS7Net.Write("V1000", command.getTaskNo());
                OperateResult result0 = siemensS7Net.Write("V998", command.getTaskNo().shortValue());
                try {
                    Thread.sleep(200);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                // 2.作业
                OperateResult result1 = siemensS7Net.Write("V1000", command.getTaskMode());     // todo
                OperateResult result1 = siemensS7Net.Write("V1000", command.getTaskMode());
                // 3.确认开始任务
                if (result0.IsSuccess && result1.IsSuccess) {
                    result = siemensS7Net.Write("V2000.0", true);
@@ -244,14 +249,17 @@
                } else if (command.getDelete() != null) {
                    result =  siemensS7Net.Write("V2000.3", command.getDelete());
                // 无效指令
                } else {
                } else if (command.getRun() != null) {
                    result =  siemensS7Net.Write("V1016", command.getRun());
                    // 无效指令
                }else {
                    return false;
                }
            }
        // 任务完成
        } else {
            result = siemensS7Net.Write("D0", true);
            result = siemensS7Net.Write("V2000.1", true);
        }
        try {
@@ -363,19 +371,21 @@
    public static void main(String[] args) throws InterruptedException {
        SteSlave slave = new SteSlave();
        slave.setId(1);
        slave.setIp("192.168.3.39");
        slave.setPort(5015);
        slave.setIp("192.168.2.1");
        slave.setPort(502);
        SteThread thread = new SteThread(slave);
        thread.connect();
        thread.readStatus();
        System.out.println(JSON.toJSONString(thread.steProtocol));
        // 任务作业
        SteCommand command = new SteCommand();
        command.setSteNo(1); // 堆垛机编号
        command.setTaskNo(new Random().nextInt(9000)); // 工作号
        command.setTaskMode(SteTaskModeType.IN_LEFT); // 任务模式
        thread.write(command);
//        SteCommand command = new SteCommand();
//        command.setSteNo(1); // 堆垛机编号
//        Random random = new Random();
//        int taskNo = random.nextInt(9090);
//        command.setTaskNo(taskNo); // 工作号
//        command.setTaskMode(SteTaskModeType.MOVE_LEFT); // 任务模式
//        thread.write(command);
        // 任务完成
//        SteCommand command = new SteCommand();
@@ -390,14 +400,19 @@
        // 复位信号
//        SteCommand command = new SteCommand();
//        command.setReset((short) 1);
//        command.setReset(Boolean.TRUE);
//        thread.write(command);
        // 删除指令
//        SteCommand command = new SteCommand();
//        command.setDelete((short) 1);
//        command.setDelete(Boolean.TRUE);
//        thread.write(command);
        // 穿梭车运行禁止
        SteCommand command = new SteCommand();
        command.setRun((short)0);
        thread.write(command);
    }
}