MODBUS-RTU通讯协议说明手册_第1页
MODBUS-RTU通讯协议说明手册_第2页
MODBUS-RTU通讯协议说明手册_第3页
MODBUS-RTU通讯协议说明手册_第4页
MODBUS-RTU通讯协议说明手册_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MODBUS-RTU通讯协议说明手册STM系列超声波液位仪陕西上太自动仪表有限公司(2012)服务 热线:029 -8 4211211官网 网站: www.s tyb.c n目录通讯定义 -2-通讯方式、协议 -2-协议简介 -2-协议描述 -3-4.1RTU传输模式000000000000000000000000000000000-3-4.2MODBUS通讯模型000000000 00000000000000000000-4-.-4.4 数据在内部寄存器的存储形式-5-五 举例说明-6-5.1 主机读取从机液位显示值数据命令为格式。 。 。 。 。 。 。 。 。 -65.2 主机向从机写入

2、数据命令格式。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 -65.3 主机要求从机将数据保存到 EEPROM中的命令。-6-六循环冗余(CRC16校验方法 -7-七浮点型数据格式 -87.1 IEEE75断准单精度7?点数简析-87.2 基于C语言的4个字节转换为浮点数-8-通讯定义起始位1bit数据位8bit奇偶校验位无(默认)N/O/E停止位1bit波特率9600 (默认) 600-19200 bps表二通讯方式、协议仪器与外部设备通讯方式为 RS485采用MODBUS协议-RTU模式。 三协议简介MODBUS是一个访问/应答协议,并提供功能码规定的服务。用于

3、 在通过不同类型的总线或网络连接的设备之间的主机 /从机通讯。主机 发送命令访问从机,从机接受命令后做出相应处理,并向主机做出应 答。应答| |访问应答访问从机X从机Y四协议描述MODBUS有两种传输模式,RTU或ASCII本仪表采用RTU传输模地址功能码数据CRCK 验表4.1 RTU传输模式RTU模式串行位起始位12345678检验停止位表MODBUS-RTU 数据帧地址功能码数据CRCK 验1f1 W0-252字节2 W表 四CRC检验CRC检验,是基于循环冗余检验算法的错误检验域。不管有无数 据帧有无奇偶检验,均执行此检验。CRC包含有两个8位字节组成的 衣蛾16位值。CRC乍为数据帧

4、最后的数据附件在数据帧后,计算后首 先附加底字节,然后附加高字节。CRC值由主机计算,从机接受到数据帧后重新计算,并将计算结 果与接收到的CRCfi比较,如果不相等,则为错误。4.2 MODBUS通讯模型主机从机启动访问(功能码 数据请求)启动响应、执行操作(操作码数据响应)接受响应图二4.3 协议支持本协议功能码,表明了当前要执行何种功能。表五功能码类型功能码(十进制)功能码描述读取数据03读取菜单数据读取数据04读取变量(液位或其他)数据写数据10向菜单寄存器写入数据参数保存12写入的数据保存到EEPROMfr常用变量内部寄存器地址描述(以下寄存器地址均为起始地址)仪表类型寄存器(W)寄存

5、器定义超声波液位计0液位值2温度值超声波明渠流量计0液位值22瞬时濡星-4 -串口地址功能码寄存器地址读取数据长度CRCS验码(探头信号)24每小时流量26累计流星28累计次数超声波明渠流量计(电流信号)0液位值28瞬时流星30每小时流量32东计流星34累计次数表六4.4 数据在内部寄存器的存储形式内部寄存器所存储的变量数据,是一个IEEE754标准单精度浮点数。用四位十六进制表示,占有四个内部寄存器地址。如读回的数据为 42 F9 80 00在内部存储形式为:起始地址+3起始地址+2起始地址+1寄存器起始地址42F98000表七五举例说明5.1 主机读取从机液位显示值数据命令为格式样例 01

6、 04 00 00 00 02 71 CB-5 -010400 0000 0271 CB表八读取数据长度为两个字,一个字返回两个字节 从机返回命令为格式样例 01 04 04 40 A0 00 00 EE 66表九串口地址功能码返回数据长度读取的数据CRCK验码01040440 A0 00 00EE 665.2 主机向从机写入数据命令格式样例 01 10 00 00 00 02 04 40 A0 00 00 E6 4D表十串口地址功能码寄存器地址寄存需长度写入数据长度写入的数据CRC校验码011000 0000 020440 A0 00 00E6 4D5.3 主机要求从机将数据保存到 EEPR

7、OMfr的命令01 12 00 A0 00 02 04 00 00 00 A1 99 A5这是一条特殊命令,完成后返回01 13 00 00 00 00 00 09 63六 循环冗余(CRC16校验方法循环冗余校验CRC区为2字节,含一个16位二进制数据。由发送设备计算CRC©,并把计算值附在信息中,接收设备在接收信息时,-6 -重新计算CRCfi,并把计算值与接收的在 CRCS中实际值进行比较,若两者不相同,则产生一个错误。CRCF始时先把寄存器的16位全部置成“ 1” ,然后把相邻2 个 8 位字节的数据放入当前寄存器中,只有每个字符的8位数据用作产生CRC起始位,停止位和奇偶校

8、验位不 加到CRCo产生CRCffi问,每8位数据与寄存器中值进行异或运算,其结果 向右移一位(向LSB方向),并用“0”填入MSB,检测LSB若LSB为“1”则与预置的固定值异或,若 LSB为“0”则不作异或运算。重复上述处过程,直至移位8 次,完成第8 次移位后,下一个8位数据,与该寄存器的当前值异或,所有信息处理完后,寄存器中的最终值为CRCfi。产生CRC勺过程:1、把16位CRCJ存器置成FFFFH2、第一个8位数据与CRCJ存器低8位进行异或运算,把结果放 入CRCW存器。3、CRC寄存器向右移一位,MSB填零,检查LSB4、(若LSB为0):重复3,再右移一位。(若LSB为1):

9、CRCf存器与A001 H 进行异或运算。5、重复3 和 4 直至完成8 次移位,完成8 位字节的处理。6、 重复2 至 5 步, 处理下一个8 位数据, 直至全部字节处理完毕。7、CRC寄存器的最终值为CRCfi。8、把CRCfi放入信息时,高8位和低8位应分开放置。- 7 -发送信息中的16位CRCfi时,先送低8位,后送高8位 七 浮点型数据格式7.1IEEE754B准单精度浮点数简析IEEE754s准单精度浮点数由1位符号位+ 8位阶码+ 23位尾数组成, 用四位十六进制数表示。如 124.75用十六进制表示为42 F9 80 00。计算方法是:24.75 换算成二进制:1111100

10、.11用科学计数法表示为:1.11110011*2 A6阶码6+127= 133,并用0表示正,1表示负。因此124.75的二进制数为:0 10000101 11110011000000000000000品 42F98000H 7.2 基于C语言的4个字节转换为浮点数/ 共用体/ 浮点数 4 个字节/ 数值UnionFloat testData_float;Unsigned char testArray4;TData;注:在共用体中,浮点数和四个字节的字符组共用一段存储空间。详解:超声波液位计液位值为例,读回数据位42 F9 80 00,转换- 8 -浮点数为124.75。内部寄存器存储形式如下:表d起始地址+3起始地址+2起始地址+1寄存器起始地址0302010042F98000程序:Fola

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论