1.引用maven镜像
<mirror>
<id>central</id>
<name>Maven Central</name>
<url>https://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
2.引用pom
<dependency>
<groupId>com.ghgande</groupId>
<artifactId>j2mod</artifactId>
<version>2.7.0</version>
</dependency>
3.Java代码示例
public static void main(String[] args) {
String address = "192.168.10.154"; // PLC的IP地址
int port = 5011; // Modbus端口,默认为502
ModbusTCPMaster master = null;
try {
// 创建ModbusTCPMaster实例并连接
master = new ModbusTCPMaster(address, port);
master.connect();
System.out.println("Connected to " + address + ":" + port);
// 寄存器地址为1,设置其值为1以开启风扇
int registerAddress = 100; // 寄存器地址(会有很多个)
int valueToWrite = 0; // 要写入的值(1为开启,0为关闭)
// 写入寄存器, 03
//master.writeSingleRegister(registerAddress, new SimpleRegister(valueToWrite));
//写入线圈 从地址101开始写5个
//master.writeMultipleCoils(1,100,new BitVector(1));
//master.writeCoil(100,false);
System.out.println("Fan turned on.");
//保持 03
Register[] h = master.readMultipleRegisters(1, 100, 2);
for (Register register : h) {
System.out.println("保持"+register.getValue());
}
//输入 04
InputRegister[] inputRegisters = master.readInputRegisters(1, 100, 2);
for (InputRegister inputRegister : inputRegisters) {
System.out.println("输入"+inputRegister.getValue());
}
//离散 02
BitVector inputDiscrete = master.readInputDiscretes(1, 100, 2);
for (int i = 0; i < inputDiscrete.size(); i++) {
boolean value = inputDiscrete.getBit(i);
System.out.println("离散"+value);
}
//线圈01
BitVector coils = master.readCoils(1, 100, 2);
for (int i = 0; i < coils.size(); i++) {
boolean value = coils.getBit(i);
System.out.println("线圈"+value);
}
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
} finally {
if (master != null) {
master.disconnect(); // 断开连接
}
}
}
4.附Modbus测试工具