收藏 分享(赏)

仪表通讯协议:.doc

上传人:weiwoduzun 文档编号:2412663 上传时间:2018-09-15 格式:DOC 页数:5 大小:23KB
下载 相关 举报
仪表通讯协议:.doc_第1页
第1页 / 共5页
仪表通讯协议:.doc_第2页
第2页 / 共5页
仪表通讯协议:.doc_第3页
第3页 / 共5页
仪表通讯协议:.doc_第4页
第4页 / 共5页
仪表通讯协议:.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、仪表通讯协议:通讯格式为 8 位数据,2 个停止位,无校验位。数据包采用 16 位求和校验,它的纠错能力比奇偶校验高数万倍,可确保通讯数据的正确可靠。XM 系列仪表在上位计算机、通讯接口或线路发生故障时,仍能保持仪表本身的正常工作。仪表读写方式如下:读指令: Addr80H Addr80H 52H 要读参数的代号 00 00 CRC 校验码写指令: Addr80H Addr80H 43H 要写参数的代号 写入数低字节 写入数高字节 CRC 校验码读指令的 CRC 校验码为:52HAddr 要读参数的代号, Addr 为仪表地址参数值范围是 0100。写指令的 CRC 校验码为:43H要写的参数

2、值Addr 要写的参数代号。每 2 个 8 位数据代表一个 16 位整型数,低位字节在前,高位字节在后,各温度值采用补码表示,热电偶或热电阻输入时其单位都是 0.1。1V 或 0V 等线性输入时,单位都是线性最小单位。因为传递的是 16 位二进制数,所以无法表示小数点,要求用户在上位机处理。例:如需接收测量值和 Loc 值,且仪表的通信地址为 1,则发送读指令如下:81 81 52 00 00 00 53 00其中 81 81 为仪表的地址代号,52 00 为读参数的指令,53 00 为 CRC 校验码。只要上位机发送的命令格式正确时,将返回以下数据:XX XX XX XX XX XX XX

3、XX XX XXA1 A2 A3 A4 A5每个变量由两个字节组成,十进制转换格式为低位在前、高位在后含义如下:第一行的 A1、A2、A3、A4、A5 为变量名称,第一列为仪表为各仪表的型号仪表型号变量名称 A1 A2 A3 A4 A5SAIL-P 温度测控仪SAIL-M 温度巡检仪 测量值 - -相应的通信地址的参数值 CRC 校验码上位机通过分析可得到仪表当前的工作状态。上位机每向仪表发一个指令,仪表返回一个数据。编写上位机软件时,注意每条有效指令,仪表在 00.2 秒内作出应答,而上位机也必须等仪表返回数据后,才能发新的指令,否则将引起错误。如果仪表超过最大响应时间仍没有应答,则原因可能

4、为无效指令、通讯线路故障,仪表没有开机,通讯地址不合等,此时上位机应重发指令。特殊定义指令:对于 SAIL-M 系列仪表,兼容以上协议外,增加新的命令字(0x61,0x70),作用如下:读指令: Addr80H Addr80H 61H 00 00 00 CRC 校验码返回(16 路):Addr80H Addr80H 巡检通道数 最高路 pv 高字节 最高路 pv 低字节 第一路pv 高字节 第一路 pv 低字节返回(32 路):最高路 pv 高字节 最高路 pv 低字节 第一路 pv 高字节 第一路 pv 低字节读指令: Addr80H Addr80H 70H 00 00 00 CRC 校验码

5、返回(16 路):Addr80H Addr80H 巡检通道数 下限报警字节 1 下限报警字节 2 上限报警字节 1 上限报警字节 2 开路报警字节 1 开路报警字节 2返回(32 路):下限报警字节 1 . 下限报警字节 4 上限报警字节 1 . 上限报警字节 4 开路报警字节 1 . 开路报警字节 4注 1:发送数据时的校验码要符合原有协议注 2:16 路巡检报警字节 1 最高位到最低位分别为第 16 路第 9 路,报警字节 2 最高位到最低位分别为第8 路第 1 路注 3:32 路巡检报警字节 1 最高位到最低位分别为第 32 路第 25 路,报警字节 2 最高位到最低位分别为第 24 路

6、第 17 路报警字节 3 最高位到最低位分别为第 16 路第 9 路,报警字节 4 最高位到最低位分别为第 8 路第 1路用户自编程方法:将 Addr 为 1 的仪表的给定值(参数代号 0)写为 100.0(整数为 1000),用 BASIC 语言(VB)的编程方法如下:1、初始化通讯口,包括与仪表相同的波特率,数据位 8,停止位 2,无校验,如果采用 RS485 通讯口,要注意某些型号的 RS485 通讯口(或 RS232/RS485 通讯转换器)对 RTS、DTR 等控制线有一定的要求,上位机软件必须对这些控制线进行编程。2、VB3 编程指令如下:COMM1.OUTPUT=CHR$(129

7、)+CHR$(129)+CHR$(67)+CHR$(0)+CHR$(232)+CHR$(3)+CHR$(44)+CHR$(4)如果下传 20 给设定值则为:COMM1.OUTPUT=CHR$(129)+CHR$(129)+CHR$(67)+CHR$(0)+CHR$(200)+CHR$(0)+CHR$(12)+CHR$(1)数据分解如下(vb5):Dim instringDim pv as integerDim sv as integerDim mv as integerDim cs as integerDim crc as integerinstring = MSComm1.Input 设已经

8、有数据返回Open “datafile.bin“ For Binary As #1Put #1, 1, instringGet #1, 13, pv 因 VB5 字符格式为 32 位,所以从第三 13 位数据 开始才是真实数据(可以用 debug.exe 来查看 datafile.bin 对照)Get #1, 15, svGet #1, 17, mvGet #1, 19, csGet #1, 21, crcForm1.Print pv, sv, mv, cs, crcClose #13、VC+6.0 参考代码如下:a. SendData: glsmeter-SendCode = code;gl

9、smeter-SendAddr = addr;RequestFrame0 = 0x80+addr;RequestFrame1 = RequestFrame0;if (read_write)RequestFrame2 = 0x52;RequestFrame3 = code;RequestFrame4 = 0;RequestFrame5 = 0;tempAdd = 0x52 + addr + writenum + (code8;tempAdd = 0x43 + addr + writenum + (code8);RequestFrame 为请求帧数组(8 字节) b.ReceiveData:for(j=0;j8)AfxMessageBox(“数据接收有误!“); ReceiveFrame 为接收帧数组(10 字节) (以上代码为 VC+程序,仪表报文以前低后高形式两两组合为一个字)注意事项:从通讯口向仪表写数据时,每个存储单元(包括给定值)的写入次数是有限的,XM 仪表提供至少 10 万次的写入次数。如果写入次数超出要求,仪表存储单元可能损坏。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 说明文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报