1 / 2
文档名称:

RM410通讯协议.doc

格式:doc   大小:19KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

RM410通讯协议.doc

上传人:1314042**** 2020/11/11 文件大小:19 KB

下载得到文件列表

RM410通讯协议.doc

文档介绍

文档介绍:模块名称
RM410
模块功能
14路热电偶远端测量模块
读指令格式
@+站号+R
读指令说明
@ :是指令标识符
站号:也称作模块号或模块地址,从00-15。
一条485通讯线上最多可挂接16个rm模块。
注意不要把站号和通道号搞混,每个rm410模块有14个通道
R :指明操作类型为“读操作”
举例:***@00R、***@01R、***@15R
注意:"+"号不是指令的一部分
读指令返回数据格式
1--4字节:通道1数据
5--8字节:通道2数据
……
53--56字节:通道14数据
57--60字节:为冷端补偿数据
61--64字节:与用户使用无关
65-66字节:前64个字节的校验码
读指令返回数据格式说明
返回数据共66个字节,66=4*14+4+4+2
rm410共14个通道,每个通道占4个字节,再加上4字节的冷端补偿数据,
以及4字节的用户无关数据,凑足64个字节
用户把每个通道的数据(4字节的字符串)解析出来后,应该把这个字符串当作十六进制串转化为一个有符号短整型(16bit),当模块处于返回温度值方式时,把转换后的数据除以10,就得到温度值,当模块处于返回电压值方式时,把转换后的数据除以1000,就得到毫伏值,
例如:
当模块处于返回温度值方式时,假设得到第1通道的字符串为"00F3",
转化为有符号短整型为243,再除100得到243摄氏度
当模块处于返回电压值方式时,假设得到第1通道的字符串为"0023",
转化为有符号短整型为35,再除10000得到0035毫伏
最后2个字节是模块回传的校验码,为了校验数据的正确性,程序员最好根据前64个字节
生成校验码,然后比较生成的校验码与模块回传的校验码的一致性。
校验码的生成方法是把前64个字符的ASCII码相异或,再把异或结果转化为16进制串
例如返回数据为:
00F300E8010A00F300ED00EB00F300EB00F000C500F300F000EA00F300EE002009
生成校验码的VC源码片断:
//64个字节的字符串
char*buf = "00F300E8010A00F300ED00EB00F300EB00F000C500F300F000EA00F300EE0020";
unsigned char charXor = 0;
for(int i=0; i<strlen(buf); i++)
charXor = charXor ^ buf[i]; //按位异或