From 10373a585e3d1d04a7eddb2e3297eeeb2c729e71 Mon Sep 17 00:00:00 2001 From: jiazx0107@163.com <jiazx0107@163.com> Date: 星期一, 28 八月 2023 09:29:51 +0800 Subject: [PATCH] 更新MODBUS-TCP协议,调整配置 --- /dev/null | 208 ----------------------------------------- igds-protocol-modbus/src/main/java/com/ld/igds/modbus/service/HModbusService.java | 1 igds-protocol-modbus/pom.xml | 41 +++++--- igds-web/pom.xml | 3 igds-web/src/main/resources/verb-conf.properties | 4 5 files changed, 30 insertions(+), 227 deletions(-) diff --git a/igds-protocol-modbus/pom.xml b/igds-protocol-modbus/pom.xml index 708d3c0..150f570 100644 --- a/igds-protocol-modbus/pom.xml +++ b/igds-protocol-modbus/pom.xml @@ -64,21 +64,32 @@ </dependencies> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <source>1.8</source> - <target>1.8</target> - <compilerArguments> - <extdirs>src\main\webapp\WEB-INF\lib</extdirs> - </compilerArguments> - </configuration> - </plugin> - </plugins> - </build> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>${java.version}</source> + <target>${java.version}</target> + </configuration> + </plugin> + </plugins> + + <resources> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.xml</include> + <include>**/*.js</include> + </includes> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/resources</directory> + </resource> + </resources> + </build> <!-- <repositories>--> diff --git a/igds-protocol-modbus/src/main/java/com/ld/igds/modbus/service/HModbusService.java b/igds-protocol-modbus/src/main/java/com/ld/igds/modbus/service/HModbusService.java index 216aad2..7652715 100644 --- a/igds-protocol-modbus/src/main/java/com/ld/igds/modbus/service/HModbusService.java +++ b/igds-protocol-modbus/src/main/java/com/ld/igds/modbus/service/HModbusService.java @@ -15,7 +15,6 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ModbusConfig.java b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ModbusConfig.java deleted file mode 100644 index 59d269d..0000000 --- a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ModbusConfig.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.ld.igds.protocol.modbus; - -import com.serotonin.modbus4j.ModbusFactory; -import com.serotonin.modbus4j.ModbusMaster; -import com.serotonin.modbus4j.exception.ModbusInitException; -import com.serotonin.modbus4j.ip.IpParameters; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; - -import java.util.HashMap; - -@Configuration -@Import(com.serotonin.modbus4j.ModbusFactory.class) -public class ModbusConfig { - - - @Bean - public HashMap<String, ModbusMaster> contextModbusMap() { - return new HashMap<>(); - } - - @Autowired - private ModbusFactory modbusFactory; - - @Autowired - @Qualifier("contextModbusMap") - private HashMap<String, ModbusMaster> masterMap; - - /** - * @Description: 閫氳繃ip鑾峰彇瀵瑰簲鐨刴odbus杩炴帴鍣� - */ - public ModbusMaster getMaster(String ip, int port) { - ModbusMaster modbusMaster = masterMap.get(ip); - if (modbusMaster == null || !modbusMaster.isConnected()) { - setMaster(ip, port); - modbusMaster = masterMap.get(ip); - } - return modbusMaster; - - } - - /** - * @Description: 璁剧疆ip瀵瑰簲鐨刴odbus杩炴帴鍣� - */ - private void setMaster(String ip, Integer port) { - ModbusMaster master; - IpParameters params = new IpParameters(); - params.setHost(ip); - params.setPort(port); - //璁剧疆涓簍rue锛屼細瀵艰嚧TimeoutException: request=com.serotonin.modbus4j.ip.encap.EncapMessageRequest@774dfba5", - //params.setEncapsulated(true); - master = modbusFactory.createTcpMaster(params, false);// TCP 鍗忚 - try { - //璁剧疆瓒呮椂鏃堕棿 - master.setTimeout(2 * 1000); - //璁剧疆閲嶈繛娆℃暟 - master.setRetries(3); - //鍒濆鍖� - master.init(); - } catch (ModbusInitException e) { - e.printStackTrace(); - } - masterMap.put(ip, master); - } -} \ No newline at end of file diff --git a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ModbusUtil.java b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ModbusUtil.java deleted file mode 100644 index 416e7cb..0000000 --- a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ModbusUtil.java +++ /dev/null @@ -1,208 +0,0 @@ -package com.ld.igds.protocol.modbus; - -import com.serotonin.modbus4j.BatchRead; -import com.serotonin.modbus4j.BatchResults; -import com.serotonin.modbus4j.ModbusMaster; -import com.serotonin.modbus4j.code.DataType; -import com.serotonin.modbus4j.exception.ModbusInitException; -import com.serotonin.modbus4j.exception.ModbusTransportException; -import com.serotonin.modbus4j.locator.BaseLocator; -import com.serotonin.modbus4j.msg.ReadCoilsRequest; -import com.serotonin.modbus4j.msg.ReadCoilsResponse; -import com.serotonin.modbus4j.msg.ReadDiscreteInputsRequest; -import com.serotonin.modbus4j.msg.ReadDiscreteInputsResponse; -import com.serotonin.modbus4j.msg.ReadHoldingRegistersRequest; -import com.serotonin.modbus4j.msg.ReadHoldingRegistersResponse; -import com.serotonin.modbus4j.msg.ReadInputRegistersRequest; -import com.serotonin.modbus4j.msg.ReadInputRegistersResponse; -import com.serotonin.modbus4j.msg.WriteCoilRequest; -import com.serotonin.modbus4j.msg.WriteCoilResponse; -import com.serotonin.modbus4j.msg.WriteCoilsRequest; -import com.serotonin.modbus4j.msg.WriteCoilsResponse; -import com.serotonin.modbus4j.msg.WriteRegisterRequest; -import com.serotonin.modbus4j.msg.WriteRegisterResponse; -import com.serotonin.modbus4j.msg.WriteRegistersRequest; -import com.serotonin.modbus4j.msg.WriteRegistersResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * @Desc: 宸ュ叿绫� - * @author: Andy - * @update-time: 2023/8/11 - */ -@Slf4j -@Component -public class ModbusUtil { - - //浠庢満榛樿鍊� - private Integer slaveId = 1; - - @Autowired - private ModbusConfig modbusConfig; - - - /** - * 璇荤嚎鍦�--01 - * - * @param ip - * @param port - * @param offset - * @param numberOfRegister - */ - public boolean[] readStatus01(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { - - ModbusMaster master = modbusConfig.getMaster(ip, port); - ReadCoilsRequest request = new ReadCoilsRequest(slaveId, offset, numberOfRegister); - ReadCoilsResponse response = (ReadCoilsResponse) master.send(request); - boolean[] booleans = response.getBooleanData(); - - return valueRegroup(numberOfRegister, booleans); - } - - /** - * @Description: 02H-璇荤鏁h緭鍏ラ噺 - * @Param: [ip, offset, numberOfRegister] - * @return: boolean[] - * @throws: - */ - public boolean[] readStatus02(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { - ModbusMaster master = modbusConfig.getMaster(ip, port); - ReadDiscreteInputsRequest request = new ReadDiscreteInputsRequest(slaveId, offset, numberOfRegister); - ReadDiscreteInputsResponse response = (ReadDiscreteInputsResponse) master.send(request); - boolean[] booleans = response.getBooleanData(); - return valueRegroup(numberOfRegister, booleans); - } - - /** - * @Description: 03H-璇讳繚鎸佸瘎瀛樺櫒 - * @Param: [ip, offset, numberOfRegister] - * @return: short[] - * @throws: - */ - public short[] readStatus03(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { - - ModbusMaster master = modbusConfig.getMaster(ip, port); - ReadHoldingRegistersRequest request = new ReadHoldingRegistersRequest(slaveId, offset, numberOfRegister); - ReadHoldingRegistersResponse response = (ReadHoldingRegistersResponse) master.send(request); - return response.getShortData(); - } - - /** - * @Description: 04H-璇昏緭鍏ュ瘎瀛樺櫒 - * @Param: [ip, offset, numberOfRegister] - * @return: short[] - * @throws: - */ - public short[] readStatus04(String ip, int port, int offset, int numberOfRegister) throws ModbusTransportException { - ModbusMaster master = modbusConfig.getMaster(ip, port); - ReadInputRegistersRequest request = new ReadInputRegistersRequest(slaveId, offset, numberOfRegister); - ReadInputRegistersResponse response = (ReadInputRegistersResponse) master.send(request); - return response.getShortData(); - } - - - public BatchResults<Integer> readBatch(String ip, int port) throws Exception { - ModbusMaster master = modbusConfig.getMaster(ip, port); - - if (null == master) return null; - - return readBatch(master); - } - - /** - * 鎵归噺璇诲彇澶氫釜 - * - * @param master - * @throws ModbusTransportException - */ - public BatchResults<Integer> readBatch(ModbusMaster master) throws Exception { - BatchRead<Integer> batch = new BatchRead<>(); - batch.addLocator(0, BaseLocator.holdingRegister(1, 1, DataType.TWO_BYTE_INT_SIGNED)); - batch.addLocator(1, BaseLocator.inputStatus(1, 0)); - batch.setContiguousRequests(true); - BatchResults<Integer> results = master.send(batch); - log.info("batchRead:" + results.getValue(0)); - log.info("batchRead:" + results.getValue(1)); - - return results; - } - - /** - * @Description: 鍐欏崟涓紙绾垮湀锛夊紑鍏抽噺鏁版嵁锛岀浉褰撲簬鍔熻兘鐮侊細05H-鍐欏崟涓嚎鍦� - * @Param: [ip, writeOffset, writeValue] - * @return: boolean - * @throws: - */ - public boolean writeValue05(String ip, int port, int writeOffset, boolean writeValue) throws ModbusTransportException { - - ModbusMaster tcpMaster = modbusConfig.getMaster(ip, port); - WriteCoilRequest request = new WriteCoilRequest(slaveId, writeOffset, writeValue); - WriteCoilResponse response = (WriteCoilResponse) tcpMaster.send(request); - return !response.isException(); - } - - /** - * @Description: 鍐欏涓紑鍏抽噺鏁版嵁锛堢嚎鍦堬級锛岀浉褰撲簬鍔熻兘鐮侊細0FH-鍐欏涓嚎鍦� - * @Param: [ip, startOffset, data] - * @return: boolean - * @throws: - */ - public boolean writeValues15(String ip, int port, int startOffset, boolean[] data) throws ModbusTransportException { - - ModbusMaster tcpMaster = modbusConfig.getMaster(ip, port); - WriteCoilsRequest request = new WriteCoilsRequest(slaveId, startOffset, data); - WriteCoilsResponse response = (WriteCoilsResponse) tcpMaster.send(request); - return !response.isException(); - - } - - /** - * @Description: 鍐欏崟涓繚鎸佸瘎瀛樺櫒锛岀浉褰撲簬鍔熻兘鐮侊細06H-鍐欏崟涓繚鎸佸瘎瀛樺櫒 - * @Param: [ip, writeOffset, writeValue] - * @return: boolean - * @throws: - */ - public boolean writeValue06(String ip, int port, int writeOffset, short writeValue) throws ModbusTransportException, ModbusInitException { - - ModbusMaster tcpMaster = modbusConfig.getMaster(ip, port); - WriteRegisterRequest request = new WriteRegisterRequest(slaveId, writeOffset, writeValue); - WriteRegisterResponse response = (WriteRegisterResponse) tcpMaster.send(request); - return !response.isException(); - - } - - /** - * @Description: 鍐欏涓繚鎸佸瘎瀛樺櫒锛岀浉褰撲簬鍔熻兘鐮侊細10H-鍐欏涓繚鎸佸瘎瀛樺櫒 - * @Param: [ip, startOffset, data] - * @return: boolean - * @throws: - */ - public boolean writeValues16(String ip, int port, int startOffset, short[] data) throws ModbusTransportException, ModbusInitException { - - ModbusMaster tcpMaster = modbusConfig.getMaster(ip, port); - WriteRegistersRequest request = new WriteRegistersRequest(slaveId, startOffset, data); - WriteRegistersResponse response = (WriteRegistersResponse) tcpMaster.send(request); - return !response.isException(); - } - - /** - * @Description: 杞崲宸ュ叿锛屽皢Boolean杞崲鎴�0锛�1 - * @Param: [numberOfBits, values] - * @return: boolean[] - * @throws: - */ - private boolean[] valueRegroup(int numberOfBits, boolean[] values) { - boolean[] bs = new boolean[numberOfBits]; - int temp = 1; - for (boolean b : values) { - bs[temp - 1] = b; - temp++; - if (temp > numberOfBits) { - break; - } - } - return bs; - } -} \ No newline at end of file diff --git a/igds-web/pom.xml b/igds-web/pom.xml index 8190d3a..70316ca 100644 --- a/igds-web/pom.xml +++ b/igds-web/pom.xml @@ -187,7 +187,7 @@ </dependency> - <!-- 绉佹湁鍗忚-椋庢鑷磋繙IOT銆佸埗姘満--> + <!-- 绉佹湁鍗忚-椋庢鑷磋繙IOT銆佸埗姘満 <dependency> <groupId>com.ld.igds</groupId> <artifactId>igds-protocol-iot</artifactId> @@ -203,6 +203,7 @@ </exclusion> </exclusions> </dependency> + --> <!-- 绉佹湁鍗忚-璐濆崥绮儏 <dependency> diff --git a/igds-web/src/main/resources/verb-conf.properties b/igds-web/src/main/resources/verb-conf.properties index 34cdd7e..622cf9a 100644 --- a/igds-web/src/main/resources/verb-conf.properties +++ b/igds-web/src/main/resources/verb-conf.properties @@ -1,7 +1,7 @@ ##----\u901A\u98CE\u53C2\u6570\u914D\u7F6E----verb.mapImg.deptId.a--## ## 5000_001 -verb.mapImg.5000_001.a=default_pfc2_a.png -verb.mapImg.5000_001.b=default_pfc2_b.png +verb.mapImg.5000_001.a=pfc_a.png +verb.mapImg.5000_001.b=pfc_b.png verb.mapImg.5000_0137.a=default_qyc_a.png verb.mapImg.5000_0137.b=default_qyc_b.png -- Gitblit v1.9.3