欢迎来到天天文库
浏览记录
ID:49775868
大小:99.50 KB
页数:9页
时间:2020-03-02
《MODBUS格式.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2、ModbusRTU报文基本格式起始应有不小于3.5个字符的报文间隔目标站号功能码数据CRC校验码1字节1字节N字节2字节 2.1 Modbus命令简介注:下面对于各请求命令的“应答格式”的描述是指命令被正确执行时的应答格式。若CPU接收到错误的命令或者命令被执行错误,则返回的应答帧中“功能码”部分变为如下数据:功能码的最高位置1后得到的数据。比如功能码为01,若响应错误,则返回的功能码为0x81。 2.1.1功能码01:读线圈(开关量输出)请求格式:目标站号功能码起始地址高字节起始地址低字节读取个
2、数高字节读取个数低字节CRC1字节011字节1字节1字节1字节2字节 正确应答格式:站号功能码返回数据字节数返回数据字节1返回数据字节2…CRC1字节011字节1字节1字节…2字节 2.1.2功能码02:读输入状态(开关量输入)请求格式:目标站号功能码起始地址高字节起始地址低字节读取个数高字节读取个数低字节CRC1字节021字节1字节1字节1字节2字节 word资料正确应答格式:站号功能码返回数据字节数返回数据字节1返回数据字节2…CRC1字节021字节1字节1字节…2字节 2.1.3 功能码03
3、:读保持寄存器(模拟量输出)请求格式:目标站号功能码起始地址高字节起始地址低字节读取个数高字节读取个数低字节CRC1字节031字节1字节1字节1字节2字节 正确应答格式:站号功能码返回数据字节数寄存器1高字节寄存器1低字节…CRC1字节031字节1字节1字节…2字节 2.1.4功能码04:读输入寄存器(模拟量输入)请求格式:目标站号功能码起始地址高字节起始地址低字节读取个数高字节读取个数低字节CRC1字节041字节1字节1字节1字节2字节 正确应答格式:站号功能码返回数据字节数寄存器1高字节寄存器1
4、低字节…CRC1字节041字节1字节1字节…2字节 2.1.5功能码05:写单线圈(开关量输出)请求格式:word资料目标站号功能码线圈地址高字节线圈地址低字节强制值高字节强制值低字节CRC校验码1字节051字节1字节1字节1字节2字节注:强制值=0xFF00,则置线圈为ON;强制值=0x0000,则置线圈为OFF。 应答格式:若设置成功,原文返回 2.1.6功能码06:写单保持寄存器(模拟量输出)请求格式:目标站号功能码寄存器地址高字节寄存器地址低字节强制值高字节强制值低字节CRC校验码1字节06
5、1字节1字节1字节1字节2字节 应答格式:若设置成功,原文返回 2.1.7功能码15:写多线圈(开关量输出)请求格式:目标站号功能码起始地址高字节起始地址低字节数量高字节数量低字节强制值字节数强制值第1字节…CRC1字节151字节1字节1字节1字节1字节1字节…2字节 正确应答格式:目标站号功能码起始地址高字节起始地址低字节数量高字节数量低字节CRC校验码1字节151字节1字节1字节1字节2字节 word资料 2.1.8功能码16:写多保持寄存器(模拟量输出)请求格式:目标站号功能码起始地址高字节起始
6、地址低字节数量高字节数量低字节强制值字节数强制值1高字节强制值1低字节…CRC1字节161字节1字节1字节1字节1字节1字节1字节…2字节 正确应答格式:目标站号功能码起始地址高字节起始地址低字节数量高字节数量低字节CRC校验码1字节161字节1字节1字节1字节2字节 2.2Modbus协议中的CRC校验算法在ModbusRTU协议中,使用CRC作为帧的校验方式。下面是用C编写的两种CRC算法: 2.2.1直接计算CRC/*参 数:chData――constBYTE*,指向待校验数据存储区的首地址uN
7、O ――待校验数据的字节个数返回值:WORD型,计算出的CRC值。 */WORD CalcCrc(constBYTE*chData,WORDuNo){ WORDcrc=0xFFFF; WORDwCrc; UCHARi,j;word资料 for(i=0;i8、 if(crc&1) { crc>>=1; crc^=0xA001; } else crc>>=1;
8、 if(crc&1) { crc>>=1; crc^=0xA001; } else crc>>=1;
此文档下载收益归作者所有