基于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

主页:

Modbus Slave 主页

 

ID 表示从机号,F表示寄存器功能码

按F8或点击Setup->Slave Definition 设置从机参数

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

选择Modbus TCP/IP

设置ip地址和端口号,默认端口号是502,可以自己设置一个端口号

然后点击OK

设置数据的显示方式

给寄存器添加值

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

5.运行主机程序

主机收到的值

communication窗口显示的通讯数据帧

Rx表示收到的数据帧

Tx表示发送的数据帧

 

posted on 2016-03-22 16:42  cz_cyc  阅读(1722)  评论(1)    收藏  举报

导航