是的,Java Modbus4j 庫支持多種 Modbus 協議。Modbus4j 是一個用于實現 Modbus 通信協議的 Java 庫,它支持 Modbus ASCII、Modbus RTU 和 Modbus TCP 協議。這使得 Modbus4j 可以在不同的設備和網絡環境中使用,提高了其靈活性和適用性。
要使用 Modbus4j,你需要將其添加到項目的依賴中。如果你使用的是 Maven,可以在 pom.xml 文件中添加以下依賴:
<dependency>
<groupId>net.wimpi</groupId>
<artifactId>modbus4j</artifactId>
<version>2.3.0</version>
</dependency>
然后,你可以在項目中創建一個 ModbusClient 對象,并使用它來發送和接收 Modbus 命令。例如,以下代碼展示了如何使用 Modbus4j 連接到一個 Modbus TCP 服務器并讀取寄存器的值:
import net.wimpi.modbus.ModbusFactory;
import net.wimpi.modbus.io.ModbusTCPTransaction;
import net.wimpi.modbus.msg.ReadHoldingRegistersRequest;
import net.wimpi.modbus.msg.ReadHoldingRegistersResponse;
public class Modbus4jExample {
public static void main(String[] args) {
try {
ModbusFactory factory = ModbusFactory.getInstance();
ModbusTCPTransaction trans = factory.createTransaction();
trans.connect("127.0.0.1", 502);
ReadHoldingRegistersRequest req = new ReadHoldingRegistersRequest(1, 10);
ReadHoldingRegistersResponse res = (ReadHoldingRegistersResponse) trans.sendRequest(req);
System.out.println("Register value: " + res.getRegisterValue(0));
trans.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
這個示例中的代碼將連接到本地主機的 Modbus TCP 服務器(IP地址為 127.0.0.1,端口號為 502),然后讀取地址為 1 的寄存器的值,并將其打印到控制臺。