有关Java读取Modbus协议连接PLC的示例(使用modbus4j)
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.concurrent.ExecutionException;
import com.intelligt.modbus.jlibmodbus.Master;
import com.intelligt.modbus.jlibmodbus.exception.ModbusInitException;
import com.intelligt.modbus.jlibmodbus.exception.ModbusTransportException;
public class ModbusPLCReader {
public static void main(String[] args) {
try {
// 初始化Modbus主机
Master master = Master.getInstance();
// 设置主机IP地址和端口
InetAddress addr = InetAddress.getByName("192.168.0.10");
master.init(addr, 502); // 端口通常是502,但是这取决于PLC配置
// 读取功能码为3的保持寄存器,从地址0开始,读取1个寄存器
short[] registers = master.readHoldingRegisters(0, 1);
// 打印读取到的寄存器值
for (short register : registers) {
System.out.println("Register value: " + register);
}
// 关闭Modbus连接
master.destroy();
} catch (ModbusInitException | UnknownHostException | ModbusTransportException | InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
}
这段代码展示了如何使用modbus4j库来初始化Modbus主机,连接到PLC,并读取保持寄存器的值。需要注意的是,实际使用时需要替换IP地址和端口,并根据实际的Modbus从设备地址和功能码进行相应的调整。
评论已关闭