简单粗暴的理解 MODBUS通信协议

转自:http://baijiahao.baidu.com/s?id=1586302823192131962&wfr=spider&for=pc

MODBUS通讯协议,是1979年由美国Modicon 公司提出的,就是被称为PLC 之父的迪克·莫利先生创造的品牌。MODBUS是世界上第一个用于工业现场的总线协议,可以说,它的出现标志着工业现场从模拟量时代向通讯时代迈进。

PLC之父 迪克·莫利

虽然已经过去了四十多年,但是MODBUS 协议依然焕发着生命力,免费,是一个重要原因,但是它简单可靠的机制更适合工业应用,这才是它长久不衰的原因所在。MODBUS 是一种主----从通讯机构,因为它只定义了协议层,支持多种电气接口包括 RS-232 RS-485 甚至是以太网,特别是RS-485上的广泛应用,它已经成为事实上的RS-485 通讯标准。各种智能仪表,PLC,DCS 都有它的身影,你尽管放心大胆的用,是不会有人或者组织,找你麻烦问你要专利费的,因为它是完全免费的。

MODBUS 帧结构

(*本文由譬如朝露2017-12-9发表于头条,其他平台复制粘贴请去掉此段*)

如图所示,这是一个MODBUS 的帧结构, 它有四部分组成,如果你看不懂,没关系,看下面这段代码

01 16 1000 1234 ABCD

这段代码的意思 是 向 地址 01 的 控制器 写入 1000 1234 。 就是这么简单。下面,我们来详细说明

地址域 就是指 从站的地址,比如一个变频器,或者是一个仪表,这个地址就是它的通讯地址

功能码 就是你要做的事情,通讯的目的 就是读写数据,所以 MODBUS 功能码虽然很多,但是只有两个是我们常用的,就是读和写。读的功能码是03 写的功能码是16,注意,这里的读写都是一次性写16个位,也就是一个WORD.下图是所有的功能码。

MODBUS 功能码

数据 就是我们传递的消息,这个对于我们来说才是最终目的。 1000 1234 就是我们传递的消息,是我们要告诉从站的内容,它又分两部分 地址 和内容。如果把从站比喻成一个大楼 地址域就是大楼的门牌号,而数据里的地址就是大楼的房间号,换成变频器 也就是 变频器的参数地址。所以这段帧 就是这样理解

告诉 01大楼的1000房间 1234 往01变频器的1000参数写1234

差错校验 是为了防止出错而做的保护,就是双方约定的各种计算方法,也就是我们在实际应用中的 偶校验 奇校验 停止位等等。 这里的ABCD 是随便写的 ,没任何意义。

怎么样 MODBUS是不是很简单,欢迎大家留言讨论

你可能感兴趣的:(简单粗暴的理解 MODBUS通信协议)