您现在的位置是:首页 > PLC技术 > PLC技术
Modbus RTU通信帧的结构
来源:艾特贸易2018-07-04
简介图 10-26 是 Modbus RTU 通信帧的基本格式,其中的从站地址为 0 ~ 247 ,它和功能码均占 1 个字节,命令帧中 PLC 地址区的起始地址和 CRC 各占 1 个字。数据以字或字节为单位(与功能码有关
图10-26是Modbus RTU通信帧的基本格式,其中的从站地址为0~247,它和功能码均占1个字节,命令帧中PLC地址区的起始地址和CRC各占1个字。数据以字或字节为单位(与功能码有关),以字为单位时高字节在前,低字节在后(与S7-200的规定相同)。但发送时CRC的低字节在前,高字节在后。帧中的数据均为十六进制数。表10-17给出了S7-200支持的Modbus从站协议功能。
图10-26 RTU通信帧的基本格式
表10-17 S7-200支持的Modbus从站协议功能
1.功能1
功能1用来读单个或多个开关量输出点的ON/OFF状态(见图10-27)。响应帧(见图10-28)中PLC返回的输出位按每8位1个字节打包,第一位在返回的起始数据字节的最低位(第0位)。如果请求读取的输出点不能被8整除,则返回的最后一个数据字节的高位用0填充。
图10-27 功能1的请求帧
图10-28 功能1的响应帧
【例10-4】 用功能1读取1号站中从Q0.0开始的10点输入值,Q0.0对应的Modbus地址为16#0000(占1个字),读取的点数对应的十六进制数为16#000A,CRC为16#0DBC,则请求帧为01 01 00 00 00 0A BC 0D(十六进制数),注意CRC的低字节在前。假设Q0.0~Q1.1中仅Q1.0、Q0.7和Q0.3为1状态,读取的第一个字节QB0为16#88,第二个字节QB1为16#01,CRC为16#3C1E,响应帧为01 01 0288 01 1E 3C(十六进制数)。
2.功能2
功能2用来读单个或多个开关量输出点的ON/OFF状态,帧格式和返回的输入位的输入格式同功能1。
3.功能3
功能3读取单个或多个保持寄存器(V存储区中的字)的内容,最多可以读取120个字。
【例10-5】 用功能3读取18号站中从VW20开始的两个字(VW20和VW22),VW20对应的Modbus地址为000010,即16#000A,则请求帧如图10-29所示。假设VW20和VW22的值分别为16#1234和16#ABCD,则响应帧如图10-30所示。
图10-29 功能3的请求帧
图10-30 功能3的响应帧
4.功能4
功能4用来读单个或多个模拟量输入值,其请求帧和响应帧的格式同功能3。
5.功能5
功能5将某一开关量输出点(Q)置位或复位。数据字16#FF00表示将输出置位为1,数据字16#0000表示令输出为0,其他的数据无效,其响应帧与请求帧(见图10-31)的格式相同。
图10-31 功能5举例
【例10-6】 用功能5将l号站的Q0.3置为1,Q0.3的Modbus地址为3,请求帧与响应帧均为0105 00 03 FF 00 7C 3A(十六进制数)。
6.功能6
功能6将一个数据字写入V存储器,其响应帧与请求帧(见图10-32)的格式相同。
图10-32 功能6举例
【例10-7】 用功能6将数据16#AA55写入1号站中的V存储器字VW20,VW20的Modbus地址为16#000A,请求帧与响应帧均为0106 00 0A AA 55 17 57(十六进制数)。
7.功能15
功能15用来改写多个开关量输出点。8位输出组成1个字节,请求帧(见图10-33)中的起始位写入第一个数据字节的最低位。起始的输出位必须是1个字节的最低位(例如Q0.0或Q2.0),所写的输出点数必须为8的倍数。位数占1个字节,字节数占1个字节。这些点不是被强制的,程序可以改写这些值。
【例10-8】 用功能15改写l号站中从Q0.0开始的16点输入值,如果写入的数据为16#3803,则请求帧如图10-33所示,响应帧如图10-34所示。
图10-33 功能15的请求帧
图10-34 功能15举例
8.功能16
功能16用来写多个V存储器字,1个请求帧(如图10-35所示)最多可写入120个字。字数占1个字节,字节数占1个字节。
【例10-9】 用功能16将数据16#8866和16#4477写入1号站中的V存储器字VW10和VW12中,则请求帧如图10-35所示,响应帧如图10-36所示。
图10-35 功能16的请求帧
图10-36 功能16举例
(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:)
点击排行
