通讯协议解析基础知识_第1页
通讯协议解析基础知识_第2页
通讯协议解析基础知识_第3页
通讯协议解析基础知识_第4页
通讯协议解析基础知识_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、一、数字信息的基本概念二、数字通讯的基本形式三、串行通讯的字符四、帧和主-从结构五、通讯协议中的编码方法六、Modbus通讯协议七、CJ/T 188通讯协议八、GB/T 26831通讯协议一、数字信息的基本概念 二级制位(比特,bit):数字信息的最小单位。 一个bit的值有两种可能:0或者1。 字节(Byte):1Byte = 8bit 例如00000000、11111111、01010101 数字信息由诸多Byte组成,进而由诸多bit组成。 例如“你好”可以按GB2312标准编码为如下数字信息: 11000100 11100011 10111010 11000011 这条数字信息由4个字

2、节组成,并由32个位组成。二、数字通讯的基本形式 串行通讯 在一条数据通道上,一位一位地依次传输字节的各个位。 例如串行传输“你好”,则 11000100111000111011101011000011 并行通讯 在多条数据通道上,一并传输字节的各个位。 例如并行传输“你好”,则 1 1 1 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 仪表所使用的RS-485、M-bus通讯接口,均属于串行通讯接口。 串行通讯更适合于远距离通讯,其线间串扰小,信号完整性优于并行通讯。三、串行通讯的字符 在串行通讯中,数字信息的基本单元是“

3、字符”。 一个“字符”包含以下内容: 开始位(1位) 数据位(8位,即1字节) 校验位(0位或1位) 停止位(1位) 一个“字符”由10位或11位组成,1字节数据包括在字符中。 当然,也有7位数据位、2位停止位、附加1位地址位的情况。 在通讯解析时,开始位、检验位、停止位等是隐藏的,只有数据字节对我们是可见的。 注意,和波特率一样,校验位(无校验/奇校验/偶校验)作为一项通讯参数,在采集设备上的设定必须和仪表保持一致。四、帧和主-从结构 帧:由若干字节组成,能表达一组完整的信息。 目前在仪表上应用的通讯协议,基本均采用主-从结构。即采集设备发出命令帧,仪表返回数据帧。 通讯协议的主要内容就是对

4、命令帧和数据帧的帧结构作出说明。采集设备仪表命令帧数据帧五、通讯协议中的编码方法 在通讯协议中,字节是以十六进制数表示的。即“xxH”的形式,H表示该数为十六进制。 十六进制和十进制的转换(例如地址转换) 1) 手算转换 2) 计算器软件转换 BCD码 BCD码有多种,我们采用的是8421码。 8421码:用十六进制的表面形式,表达一个十进制数。 例如 12345678H 12345678(十进制) 12345678H = 305419896(十进制) 对8421码,以十六进制观察数据帧是简便的。表示表示 BCD码 例如:仪表响应 26H 41H 4AH 00H 01H 35H 79H 取出数

5、据部分的第1316字节00H 01H 35H 79H 代表十进制数值00013579 根据协议,该数值代表13579 1000 = 13.579m3 ASCII码 ASCII码是一种英语字符编码。字符中包含大/小写英文字母、数字、符号等,每个字符用1个字节表示。 ASCII码 例如,30H代表字符“0” 31H代表字符“1” 39H代表字符“9” 2DH代表字符“-”(负号) 对ASCII码,以字符形式观察数据帧是简便的。 ASCII码 例如:仪表响应 26H 3AH 00H 00H 2DH 31H 32H 33H 34H 35H 36H 37H 31H 32H 33H 取出数据部分的第354

6、7字节并转为ASCII码 代表十进制数值-1234567123 根据协议,该数值代表-1234567123 1000 = -1234567.123m3 整型和长整型 整型和长整型都是计算机领域基本的数据类型,基本的数据表达方式。 整型(int)用2个字节表达一个整数,如 27H 10H表示10000 长整型(long)用4个字节表达一个整数,如 07H 5BH CDH 15H表示123456789 Modbus协议中使用的整型和长整型都是有符号的。 整型转换为十进制数的方法 1、在计算器中选择十六进制、单字。 2、输入整型码。 3、切换至二进制,观察位数,如果位数 = 16 则表明是负数,需要

7、按一下“+/-”键。 4、切换至十进制。 例如:F9H 00H = -1792 79H 00H = 30976 长整型转换为十进制数的方法 1、在计算器中选择十六进制、双字。 2、输入整型码。 3、切换至二进制,观察位数,如果位数 = 32 则表明是负数,需要按一下“+/-”键。 4、切换至十进制。 例如:FFH F6H F8H BEH = -591682 浮点型 浮点型也是计算机领域基本的数据类型,基本的数据表达方式。 仪表中使用的浮点型确切地说是单精度浮点型(float),它用4个字节表示一个浮点数。 例如,42H F6H E9H 79H表示123.456 一般可以使用小工具软件进行转换。

8、六、Modbus通讯协议 Modbus通讯协议是为PLC(可编程逻辑控制器)拟定的,它是工业通信领域的标准协议。 Modbus通讯协议中的数据有ASCII和RTU两种编码方式。仪表采用RTU方式,即使用长整型或浮点型表达数据。 仪表仅支持03号命令:读保持寄存器六、Modbus通讯协议 寄存器:PLC中,每个寄存器占用2个字节 由于浮点型和长整型数据占用4个字节,所以需要占用2个寄存器。 例如插入式超声热量表Modbus通讯协议中, 累积流量占用0002H和0003H两个寄存器; 流速占用000AH和000BH两个寄存器。六、Modbus通讯协议 命令帧格式(均为16进制值) 41 03 00

9、 00 00 19 8A C0 41设备地址65 03功能码:读保持寄存器 00 00起始寄存器地址 = 0 00 19读取寄存器数量 = 25 8A C0CRC校验六、Modbus通讯协议 数据帧格式(均为16进制值) 41 03 32 59 2B 41设备地址65 03功能码:读保持寄存器 32寄存器数据字节数 = 50(252) 中间为各寄存器数据 59 2BCRC校验六、Modbus通讯协议 在寄存器中,高字节在前。 例如,12345的长整型为00003039H,我们的仪表会按顺序发出00H 00H 30H 39H,而不是39H 30H 00H 00H。 00003039 高 低六、Modbus通讯协议 在一些软件中,将高字节在前的情况称之为 Long Inverse Float Inverse 练习解析数据帧七、CJ/T 188通讯协议 CJ/T 188通讯协议是为户用计量仪表集中抄表而设计的。是城建行

温馨提示

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

评论

0/150

提交评论