https://github.com/digitalpetri/modbus
Modbus TCP, Modbus TCP Security, Modbus RTU on Serial, and Modbus RTU on TCP for Java 17+.
https://github.com/digitalpetri/modbus
java modbus modbus-rtu modbus-security modbus-serial modbus-tcp modbus-tls
Last synced: 8 days ago
JSON representation
Modbus TCP, Modbus TCP Security, Modbus RTU on Serial, and Modbus RTU on TCP for Java 17+.
- Host: GitHub
- URL: https://github.com/digitalpetri/modbus
- Owner: digitalpetri
- License: epl-2.0
- Created: 2014-09-13T00:17:42.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2025-03-30T12:33:08.000Z (about 2 months ago)
- Last Synced: 2025-04-11T20:44:28.577Z (about 1 month ago)
- Topics: java, modbus, modbus-rtu, modbus-security, modbus-serial, modbus-tcp, modbus-tls
- Language: Java
- Homepage:
- Size: 377 KB
- Stars: 708
- Watchers: 32
- Forks: 235
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
[](https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.digitalpetri.modbus%22%20AND%20a%3A%22modbus%22)
A modern, performant, easy to use client and server implementation of Modbus, supporting:
- Modbus TCP
- Modbus TCP Security (Modbus TCP with TLS)
- Modbus RTU on Serial
- Modbus RTU on TCP### Quick Start Examples
#### Modbus TCP Client
```java
var transport = NettyTcpClientTransport.create(cfg -> {
cfg.hostname = "172.17.0.2";
cfg.port = 502;
});var client = ModbusTcpClient.create(transport);
client.connect();ReadHoldingRegistersResponse response = client.readHoldingRegisters(
1,
new ReadHoldingRegistersRequest(0, 10)
);System.out.println("Response: " + response);
```#### Modbus RTU on Serial Client
```java
var transport = SerialPortClientTransport.create(cfg -> {
cfg.serialPort = "/dev/ttyUSB0";
cfg.baudRate = 115200;
cfg.dataBits = 8;
cfg.parity = SerialPort.NO_PARITY;
cfg.stopBits = SerialPort.ONE_STOP_BIT;
});var client = ModbusRtuClient.create(transport);
client.connect();client.readHoldingRegisters(
1,
new ReadHoldingRegistersRequest(0, 10)
);System.out.println("Response: " + response);
```### Maven
#### Modbus TCP
```xml
com.digitalpetri.modbus
modbus-tcp
2.1.0```
#### Modbus Serial
```xmlcom.digitalpetri.modbus
modbus-serial
2.1.0```
### Features
#### Supported Function Codes
Code | Function | Client | Server
-------- | -------- | ------ | ------
0x01 | Read Coils | ✅ | ✅
0x02 | Read Discrete Inputs | ✅ | ✅
0x03 | Read Holding Registers | ✅ | ✅
0x04 | Read Input Registers | ✅ | ✅
0x05 | Write Single Coil | ✅ | ✅
0x06 | Write Single Register | ✅ | ✅
0x0F | Write Multiple Coils | ✅ | ✅
0x10 | Write Multiple Registers | ✅ | ✅
0x16 | Mask Write Register | ✅ | ✅
0x17 | Read/Write Multiple Registers | ✅ | ✅- raw/custom PDUs on Modbus/TCP
- broadcast messages on Modbus/RTU
- pluggable codec implementations
- pluggable transport implementations### License
Eclipse Public License - v 2.0