使用Modbus4j建立TCP连接的Java示例

Modbus4j是一个用于Modbus协议的Java实现库,可以方便地在Java应用程序中使用Modbus通信协议。本文将介绍如何使用Modbus4j建立TCP连接,并提供一个简单的Java示例代码。

步骤

步骤一:添加Modbus4j依赖

首先,在你的Java项目中添加Modbus4j的依赖。你可以在Maven项目中使用以下依赖:

<dependency>
    <groupId>com.serotonin</groupId>
    <artifactId>modbus4j</artifactId>
    <version>3.0.1</version>
</dependency>

步骤二:建立TCP连接

使用Modbus4j建立TCP连接的步骤如下:

  1. 创建一个ModbusMaster实例:
IpParameters params = new IpParameters();
params.setHost("127.0.0.1");
params.setPort(502);

ModbusFactory factory = new ModbusFactory();
ModbusMaster tcpMaster = factory.createTcpMaster(params, true);
tcpMaster.setTimeout(5000);
tcpMaster.setRetries(3);
  1. 初始化连接:
tcpMaster.init();
tcpMaster.connect();

步骤三:进行Modbus通信

建立TCP连接后,你可以使用ModbusMaster实例进行Modbus通信,例如读取寄存器值、写入寄存器等操作。

示例代码

下面是一个简单的示例代码,演示如何使用Modbus4j建立TCP连接并读取寄存器的值:

import com.serotonin.modbus4j.BatchRead;
import com.serotonin.modbus4j.BatchResults;
import com.serotonin.modbus4j.ModbusFactory;
import com.serotonin.modbus4j.ModbusMaster;
import com.serotonin.modbus4j.locator.BaseLocator;
import com.serotonin.modbus4j.msg.ReadInputRegistersRequest;
import com.serotonin.modbus4j.msg.ReadInputRegistersResponse;

public class ModbusTcpExample {
    public static void main(String[] args) {
        try {
            ModbusFactory factory = new ModbusFactory();
            ModbusMaster tcpMaster = factory.createTcpMaster("127.0.0.1", true);
            tcpMaster.setTimeout(5000);
            tcpMaster.setRetries(3);

            tcpMaster.init();
            tcpMaster.connect();

            BatchRead<Integer> batch = new BatchRead<>();
            batch.addLocator(0, BaseLocator.inputRegister(1, 0, BaseLocator.DataType.FOUR_BYTE_FLOAT));
            BatchResults<Integer> results = tcpMaster.send(batch);

            float value = results.getIntValue(0);
            System.out.println("Value read: " + value);

            tcpMaster.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

序列图

sequenceDiagram
    participant Client
    participant ModbusMaster
    Client->>ModbusMaster: 创建ModbusMaster实例
    Client->>ModbusMaster: 初始化连接
    ModbusMaster->>ModbusMaster: 建立TCP连接
    Client->>ModbusMaster: 发送Modbus请求
    ModbusMaster->>ModbusServer: 处理Modbus请求
    ModbusServer->>ModbusMaster: 返回Modbus响应
    ModbusMaster->>Client: 返回结果

关系图

erDiagram
    CUSTOMER ||--o| ORDER : places
    ORDER ||--o| ORDER_DETAIL : contains
    ORDER_DETAIL ||--| PRODUCT : references

通过本文的介绍,你可以学习如何使用Modbus4j建立TCP连接,并在Java应用程序中进行Modbus通信。希望这篇文章对你有所帮助!