基于TCP/IP的MODBUS协议实现
一、前期准备
1.下载Modbus Slave(modbus从机模拟器)
2.安装并激活Modbus Slave
3.下载modbus4j.jar 第三方开发包 和 RXTXcomm.jar Java串行口编程开发包
4.将RXTXcomm.jar放到 C:\Program Files\Java\jre7\lib\ext(jre路径)下
5.如果你的C:\Program Files\Java\jre7\bin 里 没有rxtxParallel.dll和rxtxSerial.dll,请下载两个文件并放到该路径下
https://files.cnblogs.com/files/chenyuchen/modbus4j.zip
二、编写测试代码
1.打开eclipse新建java project
2.导入modbus4j.jar 包
3.测试类代码:(主机)
import com.serotonin.modbus4j.ModbusFactory;
import com.serotonin.modbus4j.ModbusMaster;
import com.serotonin.modbus4j.code.DataType;
import com.serotonin.modbus4j.code.RegisterRange;
import com.serotonin.modbus4j.ip.IpParameters;
public class Test {
public static void main(String[] args) throws Exception {
ModbusFactory factory = new ModbusFactory();
IpParameters params = new IpParameters();
//设置主机ip地址
params.setHost("localhost");
//设置主机端口号
params.setPort(12345);
ModbusMaster master = factory.createTcpMaster(params, true);
//设置重复次数
master.setRetries(0);
try {
master.init();
for (int i = 0; i <8; i++) {
System.out.println(master.getValue(5, RegisterRange.HOLDING_REGISTER,i,
DataType.TWO_BYTE_INT_UNSIGNED));//参数信息(从机号、寄存器功能码、偏移地址、数据类型)
}
}
finally {
master.destroy();
}
}
}
4.设置从机
打开Modbus Slave
主页:

ID 表示从机号,F表示寄存器功能码
按F8或点击Setup->Slave Definition 设置从机参数

按F3或点击Connection->connect进行连接

选择Modbus TCP/IP

设置ip地址和端口号,默认端口号是502,可以自己设置一个端口号
然后点击OK
设置数据的显示方式

给寄存器添加值

打开communication窗口可查看通讯数据帧


5.运行主机程序
主机收到的值

communication窗口显示的通讯数据帧

Rx表示收到的数据帧
Tx表示发送的数据帧
浙公网安备 33010602011771号