多年工作经验的工程师说MODBUS通讯

前面给大家介绍了工业自动化控制系统,以及其中的IO部分,今天继续给大家介绍串口通信部分。在工业自动化控制系统中现场最常用到的就是Modbus通信,而学习Modbus相对来说是有点难度的,因此我计划除了本文介绍以外,还将Modbus通信国标的PDF版以及调试Modbus必须用到的两个工具分享给大家,并录制一段视频给大家演示一下怎么建立Modbus通信连接。

1、 Modbus 协议由来及国标规范

Modbus是Modicon(莫迪康现为施耐德电气公司的一个品牌)在1979年开发的一项在ISO模型第7层的应用层报文传输协议。Modbus应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。Modbus已经形成国家规范,主要分成三个部分:

基于Modbus协议的工业自动化网络规范:

GB/Z19582.1 第1部分:Modbus应用协议;

GB/Z19582.2 第2部分:Modbus协议在串行链路上的实现指南

GB/Z19582.3 第3部分:Modbus协议在TCP/IP上的实现指南

第1部分描述了Modbus事物处理;

第2部分提供了一个有助于开发者实现串行链路上的Modbus应用层的参考信息;

第3部分提供了一个有助于开发者实现TCP/IP上的Modbus应用层的参考信息;

以上是深入学习Modbus的重要资料,用于提高成为行业专家,不需要太深入了解,只是应用,看本文即可。

2、 Modbus通信协议简介

Modbus是主/从通信协议。主站主动发送报文, 只有与主站发送报文中呼叫地址相同的从站才向主站发送回答报文。具体数据结构见下图。

多年工作经验的工程师说MODBUS通讯

3、 Modbus通信各个参数的设置简介

我们经常做Modbus通信的时候都有一些术语:RS-485,波特率9600(串口通信时),站地址(设备地址),模式,数据位,停止位,奇偶校验。了解这些术语,并设置匹配是通讯是否成功的关键。

主要通讯介质:Modbus 协议主要用于控制器之间的通信。通过此协议,两个控制器相互之间,或控制器通过网络和其它设备之间进行通信。其主要传送介质有RS-232、RS-485、以太网。从现场端来说,使用最多的是RS-485。从PLC到HMI使用最多的是以太网。

波特率:波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示。最常用的是9600。

站地址(设备地址):Modbus是主/从通信协议。主站主动发送报文, 只有与主站发送报文中呼叫地址相同的从站才向主站发送回答报文。Modbus 协议是主从站通讯协议,用异步串行口完成通讯。理论上可接(寻址)一台主站和至多 247 台从站。

模式:Modbus规定了 2 种字符传输模式:ASCII 模式、RTU(二进制)模式;两种传输模式不能混用。RTU模式比较常见。

多年工作经验的工程师说MODBUS通讯

只有Modbus的主从设备,以上参数都设置一致,才能建立起物理通讯。具体数据怎么获取,需要先了解Modbus存储区以及报文发送接收规则。

4、 Modbus存储区(数据段)存储规则

主要定义MODBUS 涉及到的控制器(或 MODBUS 设备)存储区。用来存放数据,在工程实践中为了方便,工程师一般会把数据放在可读写的两个区。0XXXX放开关量数据,4XXXX放浮点量数据。如果是现场设备,如阀门、泵、低压配电柜、UPS等485通讯设备,需要工程师根据其提供的说明书进行组态。

多年工作经验的工程师说MODBUS通讯

5、 Modbus数据报文解析

Modbus是主/从通信协议。主站主动发送报文, 只有与主站发送报文中呼叫地址相同的从站才向主站发送回答报文。具体数据结构见下图。

(1) 读取输出状态

功能码:01H

Modbus主站询问报文格式:

多年工作经验的工程师说MODBUS通讯

本例:读 11H 号从站输出线圈,起始地=0013H=19,对应地址 00020;线圈数=0025H=37;末地址=00020+37-1=00056;(本例为16进制)。因此,本询问报文功能是:读 17(11H)号从站输出线圈 00020—00056,共 37 个线圈状态;

从站应答格式:

多年工作经验的工程师说MODBUS通讯

本例:11H 号从站回答请求报文,功能码01,字节5个;(本例为16进制)。因此,本询问报文功能是:回答17号从站线圈状态,CD=11001101,6B=01101011,B2=10110010,0E=00001110,1B=00011011,;因此,本回答报文功能是:回答17(11H)号从站输出线圈 00020—00056,共 37 个线圈状态为11001101、01101011、10110010、00001110、00011。

其他功能码作用类似,不在此逐一解释,附上功能码表,有兴趣的可以自己研究一下。注意我们比较常用的功能码就4个。

多年工作经验的工程师说MODBUS通讯

6、 总结

今天我们一起了解了一下Modbus通讯。在第一节、第二节主要简单介绍了一下Modbus。第三节重点描述了Modbus通讯参数的设置。第四节描述了寄存器。第五节主要描述了Modbus数据报文解析的解析。如果你有一定的Modbus的基础,这篇文章应该能帮你梳理一边知识点。如果你没有接触过Modbus可能还需要我通过两个软件加视频的方式带你入门。如果你已经有一定基础了,建议看看Modbus的国标。可以提高升华,有需要Modbus国标的朋友可以关注并私聊我。


分享到:


相關文章: