GitHub - digitalpetri/modbus: Modbus TCP, Modbus RTU/TCP, and Modbus RTU/Serial for Java 17+.
modbus tcp 通讯modbus-master-tcp Java使用说明-左搜
modbus学习笔记——帧 - feipeng8848 - 博客园
<dependency>
<groupId>com.digitalpetri.modbus</groupId>
<artifactId>modbus-master-tcp</artifactId>
<version>1.2.1</version>
</dependency>
public ReadHoldingRegistersResponse readHoldingRegisters(int address, int quantity, int unitId)
throws InterruptedException, ExecutionException {
initModbusTcpMaster();
try {
CompletableFuture<ReadHoldingRegistersResponse> future = master
.sendRequest(new ReadHoldingRegistersRequest(address, quantity), unitId);
return future.get();// 工具类做的同步返回.实际使用推荐结合业务进行异步处理
}catch (Exception e){
log.error("modbus获取数据失败",e);
}
// finally {
// if(readHoldingRegistersResponse!=null&&readHoldingRegistersResponse.refCnt()>0){
// ReferenceCountUtil.release(readHoldingRegistersResponse);
// }
// }
return null;
}
public void initModbusTcpMaster() {
if (master == null) {
// 创建配置
ModbusTcpMasterConfig config = new ModbusTcpMasterConfig.Builder(modbusTcpUrl).setPort(modbusTcpUrlPort).build();
// ModbusTcpMasterConfig config = new ModbusTcpMasterConfig.Builder("106.87.15.26").setPort(8234).build();
master = new ModbusTcpMaster(config);
master.connect();
}else if(!master.isConnected()){
master.connect();
}
// System.out.println(master.isConnected());
}
保持连接不马上断开


4530

被折叠的 条评论
为什么被折叠?



