Modbus协议的常用基本定义——(RS485总线系统应用之2)
Modbus协议是一种应用于电子控制器的通用通信规约。是由MODICON公司最先倡导并于1979年开发的,后来逐渐发展成为国际通用的通信标准。在我国,GB/Z 19582《基于Modbus协议的工业自动化网络规范》于2004年9月发布,该指导性技术文件发布后得到了国内自动化产品生产厂家、自动化系统集成商和广大用户的高度关注和重视,并极大地推动了基于Modbus协议的产品的开发和应用。2006年4月,Modbus-IDA国际组织在中国正式授权建立了唯一的MODBUS(中国)产品一致性测试实验室(MCTL),为Modbus技术在中国的全面开发和应用提供了硬件平台支持。
按照全国工业过程测量和控制标准化技术委员会关于建立现场总线标准体系的有关要求,有关部门于2007年11月完成了GB/Z 19582《基于Modbus协议的工业自动化网络规范》标准的修订工作,将作为国家推荐标准上报国家标准化管理委员会,2008年3月国家标准化管理委员会正式批准为GB/T 19582-2008。
2. Modbus的两种传输模式
Modbus的两种传输模式分别是ASCII(美国标准信息交换代码)和RTU(远程终端装置)。用户要实现Modbus网络通信,必须选中一种传输模式并配置串口通信参数(波特率、校验方式等)。在同一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。
当消息在标准的Modbus系列网络传输时,每个字符或字节以如下方式发送(从左到右):最低有效位...最高有效位。
2.1 ASCII模式
有奇偶校验:
启始位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 奇偶位 | 停止位 |
无奇偶校验:
启始位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 停止位 | 停止位 |
ASCII模式编码说明:
.每发送一个字节包含:
1个起始位、7个数据位(最小的有效位先发送)、1个奇偶校验位(无校验则无)、1个(有校验时)或2个停止位(无校验时)
.错误检测采用LRC(纵向冗长检测)
ASCII模式的消息帧结构:
冒号符 | 地址码 | 功能代码 | 数据数量 | 数据1 | ... | 数据n | LRC高字节 | LRC低字节 | 回车符 | 换行符 |
2.2 RTU模式
有奇偶校验:
启始位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 奇偶位 | 停止位 |
无奇偶校验:
启始位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 停止位 | 停止位 |
RTU模式编码说明:
1个起始位、8个数据位(最小的有效位先发送)、1个奇偶校验位(无校验则无)、1个(有校验时)或2个停止位(无校验时)
.错误检测采用CRC(循环冗长检测)
当控制器设为在Modbus网络上以RTU模式通信时,在消息中的每个字节(8Bit)包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。
RTU模式的消息帧结构:
地址 | 功能代码 | 数据数量 | 数据1 | ... | 数据n | CRC低字节 | CRC高字节 |
3. Modbus的消息帧结构
3.1 ASCII帧
起始位 | 设备地址 | 功能代码 | 数据 | LRC校验 | 结束符 |
1个字符 | 2个字符 | 2个字符 | n个字符 | 2个字符 |
Modbus协议基本定义RS485总 相关文章:
- Modbus协议的常用基本定义——(RS485总线系统应用之2)续(12-15)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)