您现在的位置是:首页 > PLC技术 > PLC技术

Modbus RTU通信帧的结构

来源:艾特贸易2018-07-04

简介图 10-26 是 Modbus RTU 通信帧的基本格式,其中的从站地址为 0 ~ 247 ,它和功能码均占 1 个字节,命令帧中 PLC 地址区的起始地址和 CRC 各占 1 个字。数据以字或字节为单位(与功能码有关

    10-26Modbus RTU通信帧的基本格式,其中的从站地址为0247,它和功能码均占1个字节,命令帧中PLC地址区的起始地址和CRC各占1个字。数据以字或字节为单位(与功能码有关),以字为单位时高字节在前,低字节在后(与S7-200的规定相同)。但发送时CRC的低字节在前,高字节在后。帧中的数据均为十六进制数。表10-17给出了S7-200支持的Modbus从站协议功能。

RTU通信帧的基本格式

    10-26    RTU通信帧的基本格式

    10-17    S7-200支持的Modbus从站协议功能

S7-200支持的Modbus从站协议功能

    1.功能1

    功能1用来读单个或多个开关量输出点的ON/OFF状态(见图10-27)。响应帧(见图10-28)PLC返回的输出位按每81个字节打包,第一位在返回的起始数据字节的最低位(第0位)。如果请求读取的输出点不能被8整除,则返回的最后一个数据字节的高位用0填充。

功能1的请求帧

    10-27    功能1的请求帧

功能1的响应帧

    10-28    功能1的响应帧

    【例10-4  用功能1读取1号站中从Q0.0开始的10点输入值,Q0.0对应的Modbus地址为16#0000(1个字),读取的点数对应的十六进制数为16#000ACRC16#0DBC,则请求帧为01 01 00 00 00 0A BC 0D(十六进制数),注意CRC的低字节在前。假设Q0.0Q1.1中仅Q1.0Q0.7Q0.31状态,读取的第一个字节QB016#88,第二个字节QB116#01CRC16#3C1E,响应帧为01 01 0288 01 1E 3C(十六进制数)

    2.功能2

    功能2用来读单个或多个开关量输出点的ON/OFF状态,帧格式和返回的输入位的输入格式同功能1

    3.功能3

    功能3读取单个或多个保持寄存器(V存储区中的字)的内容,最多可以读取120个字。

    【例10-5  用功能3读取18号站中从VW20开始的两个字(VW20VW22)VW20对应的Modbus地址为000010,即16#000A,则请求帧如图10-29所示。假设VW20VW22的值分别为16#123416#ABCD,则响应帧如图10-30所示。

功能3的请求帧

    10-29    功能3的请求帧

功能3的响应帧

    10-30    功能3的响应帧

    4.功能4

    功能4用来读单个或多个模拟量输入值,其请求帧和响应帧的格式同功能3

    5.功能5

    功能5将某一开关量输出点(Q)置位或复位。数据字16#FF00表示将输出置位为1,数据字16#0000表示令输出为0,其他的数据无效,其响应帧与请求帧(见图10-31)的格式相同。

功能5举例

    10-31    功能5举例

    【例10-6  用功能5l号站的Q0.3置为1Q0.3Modbus地址为3,请求帧与响应帧均为0105 00 03 FF 00 7C 3A(十六进制数)

    6.功能6

    功能6将一个数据字写入V存储器,其响应帧与请求帧(见图10-32)的格式相同。

功能6举例

    10-32    功能6举例

    【例10-7  用功能6将数据16#AA55写入1号站中的V存储器字VW20VW20Modbus地址为16#000A,请求帧与响应帧均为0106 00 0A AA 55 17 57(十六进制数)

    7.功能15

    功能15用来改写多个开关量输出点。8位输出组成1个字节,请求帧(见图10-33)中的起始位写入第一个数据字节的最低位。起始的输出位必须是1个字节的最低位(例如Q0.0Q2.0),所写的输出点数必须为8的倍数。位数占1个字节,字节数占1个字节。这些点不是被强制的,程序可以改写这些值。

    【例10-8  用功能15改写l号站中从Q0.0开始的16点输入值,如果写入的数据为16#3803,则请求帧如图10-33所示,响应帧如图10-34所示。

功能15的请求帧

    10-33    功能15的请求帧

功能15举例

    10-34    功能15举例

    8.功能16

    功能16用来写多个V存储器字,1个请求帧(如图10-35所示)最多可写入120个字。字数占1个字节,字节数占1个字节。

    【例10-9  用功能16将数据16#886616#4477写入1号站中的V存储器字VW10VW12中,则请求帧如图10-35所示,响应帧如图10-36所示。

功能16的请求帧

    10-35    功能16的请求帧

功能16举例

    10-36    功能16举例

(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:艾特贸易网客服为您服务