在上一期中,我们了解了
1.Modbus通信协议的含义
2/业内使用的Modbus通信类型。
在此章中,我们将了解
Modbus通信协议是如何在设备之间工作。
modbus通信协议
每个Modbus信息都有相同的结构,每个信息都有四个基本元素组成。所有数据的这些元素的顺序都是相同的。可以容易地解析Modbus消息的内容。
ADU: 应用数据单元 ****PDU: 协议数据单元
数据传输始终由Modbus网络中的主站启动。Modbus主站发送消息,并根据消息的内容,从站解释消息并回应主站。消息的头部是从站的地址用于定义哪个从设备应响应消息。
Modbus网络上的所有其他子站与收到的地址码不匹配,则忽略该消息。
Modbus功能执行读写操作是把从站内部寄存器进行读写操作。包括配置,监视和控制从站的输入和输出。Modbus设备通常包括寄存器映射包括配置,输入和输出数据进行写入和读取。
我们应该始了解从站的寄存器映射以便更好地了解其整体运作。
Modbus数据模型是具有四种基本数据类型:
1.包括离散输入;
2.线圈输出;
3.输入寄存器(输入数据);
4.并保存寄存器(输出数据)
设备的Modbus存储寄存器围绕四种基本数据类型进行组织并且进一步识别该数据类型通过设备内存地址中使用的前导号码,例如:
基于0的寄存器引用消息读取或写入离散输出或线圈
基于1的寄存器参考读取离散输入
基于3的寄存器引用读取输入寄存器
基于4的寄存器,引用读取或写入输出或保持寄存器
功能码列表
功能码字段指定哪个寄存器数据组它可以读取或写入从属设备。
功能码 | 名称 | 作用 |
---|---|---|
1 | 读取线圈状态 | 取得一组逻辑线圈的当前状态(ON/OFF) |
2 | 读取输入状态 | 取得一组开关输入的当前状态(ON/OFF) |
3 | 读取保持寄存器 | 在一个或多个保持寄存器中取得当前的二进制值 |
4 | 读取输入寄存器 | 在一个或多个输入寄存器中取得当前的二进制值 |
5 | 强置单线圈 | 强置一个逻辑线圈的通断状态 |
6 | 预置单寄存器 | 把具体二进值装入一个保持寄存器 |
7 | 读取异常状态 | 取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态 |
8 | 回送诊断校验 | 把诊断校验报文送从机,以对通信处理进行评鉴 |
9 | 编程(只用于484) | 使主机模拟编程器作用,修改PC从机逻辑 |
10 | 控询(只用于484) | 可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送 |
11 | 读取事件计数 | 可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时 |
12 | 读取通信事件记录 | 可是主机检索每台从机的ModBus事务处理通信事件记录。如果某项事务处理完成,记录会给出有关错误 |
13 | 编程(184/384 484 584) | 可使主机模拟编程器功能修改PC从机逻辑 |
14 | 探询(184/384 484 584) | 可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送 |
15 | 强置多线圈 | 强置一串连续逻辑线圈的通断 |
16 | 预置多寄存器 | 把具体的二进制值装入一串连续的保持寄存器 |
17 | 报告从机标识 | 可使主机判断编址从机的类型及该从机运行指示灯的状态 |
18 | (884和MICRO 84) | 可使主机模拟编程功能,修改PC状态逻辑 |
19 | 重置通信链路 | 发生非可修改错误后,是从机复位于已知状态,可重置顺序字节 |
20 | 读取通用参数(584L) | 显示扩展存储器文件中的数据信息 |
21 | 写入通用参数(584L) | 把通用参数写入扩展存储文件,或修改之 |
22~64 | 保留作扩展功能备用 | |
65~72 | 保留以备用户功能所用 | 留作用户功能的扩展编码 |
73~119 | 非法功能 | |
120~127 | 保留 | 留作内部作用 |
128~255 | 保留 | 用于异常应答 |
虽然这些Modbus功能代码代表最常见的读写功能,您可以查看Modbus规范以获取更多信息。有关其他详细的Modbus协议技术信息请参阅modbus.org网站。
http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf
仿真调试
与从站设备或主PLC或计算机的通信可以使用Modbus模拟器软件完成在您的个人计算机上运行。
Modscan32可以用作modbus主站仿真,读取从站设备信息。
Modsim32可以用于从站仿真。
连接可以是串行或以太网并以抓站或从站的形式。该软件将允许您执行所有Modbus协议通信功能代码,用于简单地读取或写入现有从站。您可以设置一台PC来运行从站仿真软件另一个运行主站仿真软件。首先连接到从站通过设置串行COM端口的通信参数。然后在DeviceID字段中输入从站的地址。
此外,还有几家公司提供产品和支持帮助您进行协议通信。ProSoft,HMS,和MOXA仅。
至此Modbus通信协议到此结束。