Modbus常用

1.  功能码

modbus的操作对象有四种:线圈、离散输入、输入寄存器、保持寄存器。

线圈:PLC的输出位,开关量,在MODBUS中可读可写

离散量:PLC的输入位,开关量,在MODBUS中只读

输入寄存器:PLC中只能从模拟量输入端改变的寄存器,在MODBUS中只读

保持寄存器:PLC中用于输出模拟量信号的寄存器,在MODBUS中可读可写

根据对象的不同,modbus的常用功能码有:

  • 0x01:读线圈
  • 0x05:写单个线圈
  • 0x0F:写多个线圈
  • 0x02:读离散量输入
  • 0x04:读输入寄存器
  • 0x03:读保持寄存器
  • 0x06:写单个保持寄存器
  • 0x10:写多个保持寄存器

通用采集器一般包含DI,DO,AI相关接口,对此类接口主要应用功能码01~06。

3类接口具体对应关系示例如下:

继电器定义,功能码01/05(01:读线圈,05写线圈)

序号                   地址                   数据描述

01                       00001                DO1

08                       00008                DO8

 

开关量输入定义,功能码02(02:读取输入状态)

序号                   地址                   数据描述

01                       10001                DI1

02                       10002                DI2

08                       10008                DI8

 

输入寄存器定义,功能码04(04:读取输入寄存器)

序号                   地址                   数据描述

01                       30001                AI1

08                       30008                AI8

 

保持寄存器定义,功能码03/06(03:读取保持寄存器,06:写单个寄存器)

序号                   地址                   数据描述

01                       40001                系统实际时间的低16位

02                     40002                系统实际时间的高16位

03                       40003                第一路开关量32位计数器低16位。

04                       40004                第一路开关量32位计数器高16位。

19                       40019                为串口1收发延时设置,16位,以1ms为单位。

20                       40020                为串口2收发延时设置,16位,以1ms为单位。

21                       40021                串口1波特率设置

22                       40022                串口2波特率设置。

我们都知道ModbusRTU一帧数据包含1字节地址(物理地址),1字节功能码(上述对应功能码01~06),数据和2字节CRC。 

 

2. 数据

一帧报文中数据内容根据功能码不同而不同,详见“ModBus协议”。

例如:

01功能码(读DI):功能码:02--1字节,起始地址:0x0000~0xFFFF--2字节,

                            线圈数量:1~2000--2字节

响应PDU:功能码:02--1字节,字节数:N*,输出数量/8[+1](未整除+1),

     输入状态:N*X1个字节

错误:差错码:0x82--1字节,异常码:0x1~0x4--1字节。

3. 模拟软件

modbus设备分为主站(poll)和从站(slave),主站只有一个,从站有多个,主站向各个从站发送请求帧,从站给予响应。一般情况下,主站是client端,从站是server端。

modbus pollmodbus slave是一组modbus仿真软件,可以实现modbus RTUTCP、串口仿真等。

4. 简述 

 

参考:

1. modbusTCP协议

2. http://www.modbus.org/tech.php modbus官网及各语言code

3. https://github.com/stephane/libmodbus/ libmodbus

4. https://libmodbus.org/docs/v3.1.6/ libmodbus官网及API

5. libmodbus官方中文手册详解

6.  c 的modbus源码编译(windows和linux)  libmodbus编译

7. windows使用modbus开源纯C库通过TCP 读写寄存器的值  libmodbus应用

8. MODBUS的接入   配置文件参考

9. Modbus RTU通用规约说明、模板及规约配置(DOC)      配置文件参考

posted @ 2016-03-19 17:48  yuxi_o  阅读(1694)  评论(0编辑  收藏  举报