Modbus的前世
我们平时在日常生活中进行交流主要是通过听和说来完成,这里主要是通过语言来传达信息。在说者和听者之间是遵循着一些约定成俗的“约定”,因此双方是能够听懂对方所讲的内容,就好比上海人说上海话,浙江人福建人说闽南语,各地区有不同的方言,而我们全国统一的标准语言是普通话,不管哪里人,说普通话大家都能很好的沟通,要是你用方言跟别人讲,好好的说话,还可能意思理解不对,要拧巴打起来。下面我们要说的Modbus通信协议其实它也是一种“普通话”,这个“约定”其实就是一种通信协议,这个通信协议是由当时莫迪康(Modicon)公司于1979年开发的,现在这个公司已经被施耐德( Schneider)电气公司收购了。Modbus通信协议刚开发之初就是专门为可编程控制器(PLC)通讯准备的,到目前为止它已经成为现代工业控制领域的通讯标准,它已经广泛应用在工控设备与设备之间的通讯上了。
Modbus的优点
Modbus之所以被广泛使用,我认为是由于它具有以下几个方面的优点。首先是Modbus通信协议标准是一个开放性,免费的,没有版权要求,不需要交纳许可证费,这是它被广泛使用的主要原因之一;其次是它支持多种物理通讯接口,比如我们常用的RS232接口、RS485接口以及基于工业以太网的TCP/IP接口;再次是可在各种介质上传送,如双绞线、光纤、无线,如果我们使用处理速度快的芯片时,在理论上可以挂接255个从站;最后是Modbus帧格式简单格式非常简单,用户使用容易,厂商开发简单。这也是Modbus通信协议所给定的,如下图所示。
Modbus的特点
Modbus是一个串行通信协议,在架构组成上它是一个主/从架构,主站可以根据站地址向各个从站发出命令,从站也可以向主站返回命令,但是从站之间是不能相互传达命令的,只有通过主站才能相互传达命令,这是Modbus通信协议的规定。因此在Modbus通信中,只能由主机发出请求从机进行应答,而不能由从机主动发起通讯,从机之间也是不能互相发起通信的。
Modbus的分类及报文
Modbus是一种基于串口通信的方式,它可以分为Modbus RTU 和Modbus ASCII两类。一般来说Modbus RTU比较常用,对于支持Modbus ASCII通信方式的设备也一定支持Modbus RTU通信模式。另外现在使用基于以太网的Modbus TCP也使用非常广泛了,比如我在工作中使用的西门子和施耐德的工控产品都是采用了Modbus TCP通信模式。
关于Modbus的报文是指在Modbus的通信协议中几个约定好内容的字节,比如一号设备向二号设备发送的8个字节,二号设备接收到了这8个字节后,它就会根据Modbus通信协议约定的功能去执行相应的动作。而这8个字节就是我们所说的报文了。一般我们可以用串口调试助手就可以发送Modbus报文了。