关于Modbus通讯协议的基本信息介绍
MODBUS基本概念
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。
Modbus具有以下几个特点:
● 标准开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。
● Modbus支持多种电气接口,如RS232、RS485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
● Modbus协议帧格式简单、紧凑,通俗易懂,用户使用容易,厂商开发简单。
MODBUS网络的两种传输模式
控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。
●ASCII模式
当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为一个ASCII码(两个十六进制字符)发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。
●RTU模式
当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的
十六进制字符。
这种方式的主要优点是:在同样的波特率下,可比ASCII模式传送更多的数据。
Modbus RTU信息帧
Modbus信息以帧的方式传输,每帧有确定的起始点和结束点,使接收设备在信息的起点开始读地址,并确定要寻址的设备,以及信息传输的结束时间。
RTU模式中,信息开始至少需要有3.5个字符的静止时间,依据使用的波特率,很容易计算这个静止的时间(如下图中的T1-T2-T3-T4)。
各个区允许发送的字符均为16进制的0-9,A-F。
网络上的设备连续监测网络上的信息,包括静止时间。当接收地址数据时,每台设备立即对它解码,以决定是否是自己的地址。发送完后一个字符号后,也有一个3.5个字符的静止时间,然后才能发送一个新的信息。整个信息必须连续发送。如果在发送帧信息期间,出现大于1.5个字符的静止时间时,则接收设备刷新不完整的信息,并假设下一个地址数据。
地址设置
有效的从机设备地址范围0-247(十进制),各从机设备的寻址范围为1-247。
主机把从机地址放入信息帧的地址区,并向从机寻址。从机响应时,把自己的地址放入响应信息的地址区,让主机识别已作出响应的从机地址。
地址0为于广播地址,所有从机均能识别。
功能码设置
Modbus常用的功能代码:
数据区的内容
数据区有2个16进制的数据位,数据范围为00-FF(16进制)。
主机向从机设备发送的信息数据中包含了从机执行主机功能代码中规定的请求动作,如逻辑线圈地址,处理对象的数目,以及实际的数据字节数等。
7 错误校验
CRC域是两个字节,包含一16位的值,2个8位字节,它由传输设备计算后加入到消息中。接收设备重新计算收
到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。