Introduction to MODBUS over Serial Line

By WangXinyu, Wed 02 December 2015, in category IoT

MODBUS

MODBUS over Serial Line介绍

本文参考'MODBUS over Serial Line V1.02',根据个人的理解对MODBUS over Serial Line进行介绍,若要阅读协议文档请访问MODBUS官网

1. MODBUS简介

MODBUS标准定义了一个应用层的消息传输协议,即位于OSI模型的第七层,它为连接至不同类型总线或网络的设备提供了Client/Server通信机制。此外,MODBUS也标定了一个串行线上的协议,即MODBUS over Serial Line,用于主机与从机之间交换MODBUS请求。

2. MODBUS over Serial Line概述

MODBUS over Serial Line也可被称为MODBUS Serial Line protocol,该协议位于OSI模型的第二层,即数据链路层。它是一种主从式的协议,支持的物理层协议是TIA/EIA-485或TIA/EIA-232,即RS485和RS232。

3. MODBUS over Serial Line明细

3.1 主从式协议的原则

MODBUS over Serial Line主从式系统的特点如下:

主节点下达的MODBUS请求有如下两种模式:

3.2 寻址规则

MODBUS的寻址空间包括256个地址,主节点没有地址,一条MODBUS串行总线上的从节点必须有一个独立的地址,具体的地址分配如下:

3.3 帧结构

帧结构图如下,PDU即Protocol Data Unit。主机下达请求时,将从机的地址写入地址字段,从机返回响应时,将自己的地址写入地址字段。功能码用于指示功能,数据字段包含请求或响应的参数。

ModbusPDU.png

3.4 状态转换图

主机状态转换图:

ModbusMasterStat.png

从机状态转换图:

ModbusSlaveStat.png

3.5 两种串行传输模式——RTU与ASCII

3.5.1 RTU模式

RTU即Remote Terminal Unit,该模式下,数据以二进制数字形式传输,例如需传输的一个字节是0x5B,实际传输的数据也是0x5B。RTU模式主要包含如下几点约定:

3.5.2 ASCII模式

ASCII模式下,数据以ASCII字符形式传输,例如需传输的一个字节是0x5B,实际传输的是0x35(“5”)和0x42(“B”),显然该模式的传输效率比RTU低。通常,只有当设备不满足RTU模式所需的定时器要求时,才使用ASCII模式。ASCII主要包含如下几点约定:

注:本文为作者原创,欢迎批评指正,转载请注明出处。