HELP
额,,,,请各位大侠指导下小弟怎么编写通讯协议 .........通讯协议
这个是我的通讯协议,,,,请帮忙下通讯协议
这个是我的通讯协议,,,,请帮忙下 顶顶顶~~~~:) :) 额,,,还没好心人发现吗:hug: :hug:协议
仪表通讯协议1、通讯口设置
通讯方式 异步串行通讯接口,如RS-485,RS-232 等
波特率 300~9600bps(可设定仪表参数自由更改,设定仪表参数BT)
2、字节数据格式
. 一位起始位
. 八位数据位
. 一位停止位
. 无校验
1 * * * * * * * * 1
起始位 数据位 停止位
3、通讯数据传输格式(固定帧长度)
## ** XX XX XX XX XX
说明: ##(1 个字节)──标志字节,0016~7F16 各位意义如下:
位 7 6 5 4 3 2 1 0
意义 0
峰值保
持状态
清零
状态
第四
报警
状态
第三
报警
状态
第二
报警
状态
第一
报警
状态
数据
符号
最低位为0 时,则收到的数据为正值;最低位为1 时,则收到的数据为
负值。
**(1 个字节)──接收到的数据的小数点位(得到的数据为0~310,0 代表
没有小数;1 代表1 位小数;2 代表2 位小数;3 代表3 位小数)
XX(5 个字节)──接收到的测量值(得到的数据为0~9999910,最左边的
为最低位,从左到右依次增高,最右边的为最高位)
4、仪表通讯帧格式
@ 帧命令 帧数据 CRC CR
说明:@── 通讯命令起始符4016
── 仪表设备号(三字节,参见仪表操作手册中之参数“DE”)
帧命令── 操作命令(双字节) 帧命令 RD RO WO SK OK EE
意义
读仪表实
时测量值
读仪表内
部参数
写仪表内
部参数
发送虚拟
按键值
命令/通讯
成功
命令/通讯
失败
帧数据── 各种操作命令所对应的数据(长度视不同仪表型号而不同)包括地
址数据
CRC── 校验和(双字节)(CRC 字节之前其它几个字节异或和(XOR),转换为
ASCII 码 即@ASCII 与ASCII 与帧类型ASCII 与帧数据ASCII 之异或和
CRC =@ASCII xor ASCII xor 帧命令ASCII xor 帧数据ASCII
CR——结束符,0D16
5、读仪表动态数据(实时测量值)帧
发送命令帧:
@ RD CRC CR
回送命令帧:
@ RD 帧数据CRC CR
例:当前1 号仪表—设备号=7 实时测量值PV=1453.210,欲读仪表实时测量
值,方法如下:
4016xor3016 xor 3016 xor 3716 xor 5216 xor 4416 =6116(转为ASCII 码则为
3616、3116)
发送命令
40 30 30 37 52 44 36 31 0D
仪器设备号 命令 校验码
仪表回传:4016xor 3016xor 3016xor 3716xor 5216xor 4416xor 3016xor 3116xor 3216xor 3316xor
3516xor 3416xor 31 =5116(转为ASCII 码则为3516,3116)
40 30 30 37 52 44 30 31
仪器设备号 命令 标志 小数点
32 33 35 34 31 35 31 0D
数据 校验码
例子中测量值数据=1×10000+4×1000+5×100+3×10+2=1453210
实际测量值=测量值×小数点=14532×10-1=1453.210(如小数点为2,则乘以10-2,以此类推)
页:
[1]