Browse Source

出库业务——逻辑完善

LZH 1 year ago
parent
commit
7e34e14415

+ 6 - 3
ruoyi-admin/src/main/resources/application-dev.yml

@@ -71,11 +71,14 @@ init-task:
 modbus:
     tcp-master:
         first: # 搅拌槽
-            open: false
+            open: true
             host: localhost
-            port: 8080
+            port: 502
         second: # 拆包机
             open: false
             host: localhost
             port: 8080
-
+        third:
+          open: false
+          host: 192.168.100.71
+          port: 502

+ 4 - 2
ruoyi-admin/src/main/resources/application-prod.yml

@@ -78,7 +78,9 @@ modbus:
             open: true
             host: 192.168.100.136
             port: 502
-
-
+        third:
+          open: true
+          host: 192.168.100.71
+          port: 502
 
 

+ 186 - 0
warewms-hard/src/main/java/com/ruoyi/hard/xuankang/beltLine.java

@@ -0,0 +1,186 @@
+package com.ruoyi.hard.xuankang;
+
+import com.jwk.spring.boot.autoconfigure.ModbusTcpMasterTemplate;
+import com.jwk.spring.boot.constant.DATA_TYPE_WRAPPER;
+import com.jwk.spring.boot.modbus4j.ModbusMasterUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Service;
+
+
+import static com.ruoyi.hard.xuankang.beltLine.CONVEYOR_LINE_COMMAND.*;
+
+
+/**
+ * @author Jwk
+ * @version 1.0
+ * @date 2023/5/6 9:41
+ */
+@Slf4j
+@Service
+public class beltLine {
+
+    /**
+     * 输送线
+     */
+    @Autowired(required = false)
+    @Qualifier("modbusTcpMasterTemplateThird")
+    private ModbusTcpMasterTemplate modbusTcpMasterTemplateThird;
+
+    /**
+     * 输送线命令
+     */
+    public enum CONVEYOR_LINE_COMMAND {
+        //读心跳
+        READ_THE_HEART(1, 0, 1, 0),
+        //读模式
+        READ_THE_MODE(1, 1, 1, 0),
+        //读状态
+        READ_THE_STATE(1, 2, 1, 0),
+        //写心跳
+        WRITE_THE_HEART(1, 9, 1, 0),
+        //写模式
+        WRITE_THE_MODE(1, 10, 1, 0),
+        //写状态
+        WRITE_THE_STATE(1, 11, 1, 0),
+        //写通过方向
+        WRITE_THE_DIRECTION(1, 12, 1, 0);
+
+
+        /**
+         * 从节点id
+         */
+        private int slaveId;
+        /**
+         * 地址
+         */
+        private int offset;
+        /**
+         * 读的长度
+         */
+        private int value;
+        /**
+         * 写的值
+         */
+        private int value1;
+
+        CONVEYOR_LINE_COMMAND(int slaveId, int offset, int value, int value1) {
+            this.slaveId = slaveId;
+            this.offset = offset;
+            this.value = value;
+            this.value1 = value1;
+        }
+
+        public int getSlaveId() {
+            return slaveId;
+        }
+
+        public int getOffset() {
+            return offset;
+        }
+
+        public int getValue() {
+            return value;
+        }
+
+        public int getValue1() {
+            return value1;
+        }
+
+    }
+
+    /**
+     * 读心跳
+     *
+     * @return
+     */
+    public Number ReadHeartbeat() {
+        Number number = read1( READ_THE_HEART.getSlaveId(),READ_THE_HEART.getOffset());
+        return number;
+    }
+
+    /**
+     * 读模式
+     *
+     * @return
+     */
+    public Number readMode() {
+        Number number = read1(READ_THE_MODE.getSlaveId(), READ_THE_MODE.getOffset());
+        return number;
+    }
+
+    /**
+     * 读状态
+     *
+     * @return
+     */
+    public Number readState() {
+        Number number = read1(READ_THE_STATE.getSlaveId(), READ_THE_STATE.getOffset());
+        return number;
+    }
+
+    /**
+     * 写通讯心跳
+     *
+     * @return
+     */
+    public Boolean writeHeartbeat(int i) {
+        return write(WRITE_THE_HEART.getSlaveId(), WRITE_THE_HEART.getOffset(), i);
+    }
+
+    /**
+     * 写模式
+     *
+     * @return
+     */
+    public Boolean writeMode(int i) {
+        return write(WRITE_THE_MODE.getSlaveId(), WRITE_THE_MODE.getOffset(), i);
+    }
+
+    /**
+     * 写状态
+     *
+     * @return
+     */
+    public Boolean writeState(int i) {
+        return write(WRITE_THE_STATE.getSlaveId(), WRITE_THE_STATE.getOffset(), i);
+    }
+
+    /**
+     * 写通过方向
+     *
+     * @return
+     */
+    public Boolean writeDirection(int i) {
+        return write(WRITE_THE_DIRECTION.getSlaveId(), WRITE_THE_DIRECTION.getOffset(), i);
+    }
+
+    /**
+     * 读的方法
+     *
+     * @param slaveId
+     * @param offset
+     * @param len
+     * @return
+     */
+    private Number read1(int slaveId, int offset) {
+        ModbusMasterUtil modbusMasterUtil = modbusTcpMasterTemplateThird.getModbusMasterUtil();
+        Number number = modbusMasterUtil.readHoldingRegister(slaveId, offset, DATA_TYPE_WRAPPER.TWO_BYTE_INT_UNSIGNED);
+        return number;
+    }
+
+    /**
+     * 写的方法
+     *
+     * @param slaveId
+     * @param offset
+     * @param value
+     * @return
+     */
+    private Boolean write(int slaveId, int offset, int value) {
+        ModbusMasterUtil modbusMasterUtil = modbusTcpMasterTemplateThird.getModbusMasterUtil();
+        return modbusMasterUtil.writeHoldingRegisters(slaveId, offset, value);
+    }
+
+}