1、XMT-J 温度巡回检测串行通讯接口协议 概述 XMT-J 温度巡检通讯接口协议,具备 16 位的求和校验码,通讯可靠,支技 9600波特率,并且将上位机访问一台仪表的平均时间缩短到 0.1 秒以下,仪表允许在一个RS485 通讯接口上连接多达 101 台仪表(为保证通讯可靠,仪表数量大于 64 台时需要 加一个 RS485 中继器)。 接口规格 XMT-J温度巡检仪表使用异步串行通讯接口,接口电平符合 RS485 标准中的规定。数据格式为 1 个起始位, 8 位数据,无校验位, 2个停止位 。通讯传输数据的波特率可调为 1200 9600Bit/S。XMT-J 温度巡检仪采用多机通讯协议,采
2、用RS485 的通讯接口,则可将 1101 台的仪表同时连接在一个通讯接口上。 RS485 通讯接口通讯距离长达 1km 以上,只需两根线就能使多台 XMT-J温度巡检仪与计算机进行通讯。使用普通个人计算机 PC 能作上位机。 读写指令 XMT-J 温度巡检仪采用 16 进制数据格式来表示各种指令代码及数据。XMT-J 温度巡检仪软件通讯指令经过优化设计,只有两条:一条为读指令,一条为写指令。 地址代号 地址代号:为了在一个通讯接口连接多台 XMT-J 温度巡检仪,需要对每台 XMT-J 温度巡检仪编一个互不相同的代号。XMT-J 温度巡检仪有效的地址为 0100,所以一条通讯线路上最多可连接
3、 101 台 XMT-J 温度巡检仪。仪表的地址代号由参数 T2(仪表地址)+80H(128) 。 T2 是仪表的菜单内部地址参数,详见仪表使用手册。 XMT-J 温度巡检仪通讯协议规定,地址代号为两个字节,其数值范围(16 进制)是 80H-BFH,两个字节必需相同,数值为“ 仪表地址+80H” 。例如,仪表参数 T2=10(16 进制数为 0AH, OA+80H=8AH),则该仪表的地址代号表示为:8AH 8AH 参数代号 仪表的参数用 1 个 8 位二进制数(一个字节,写为 16 进制数)的参数代号来表示。它在指令中表示要读/ 写的参数名。 16进制 表示的仪表代号 10进制代号 意义
4、00H LOCK 0 密码 01H T1 1 巡检时间 02H T2 2 仪表地址 03H A1 3 上限报警 04H A2 4 下限报警 05H DP 5 小数点位数 06H LU 6 仪表通道数设定 07H SN 7 输入信号设定 08H BO 8 波特率 09H CN 9 通讯方式 0AH ST 10 室温参数 0BH 11 1通道修正 0CH 12 2通道修正 0DH 13 3通道修正 0EH 14 4通道修正 0FH 15 5通道修正 10H 16 6通道修正 11H 17 7通道修正 12H 18 8通道修正 13H 19 9通道修正 14H 20 10通道修正 15H 21 11
5、通道修正 16H 22 12通道修正 17H 23 13通道修正 18H 24 14通道修正 19H 25 15通道修正 1AH 26 16通道修正 1BH 27 1通道温度 1CH 28 2通道温度 1DH 29 3通道温度 1EH 30 4通道温度 1FH 31 5通道温度 20H 32 6通道温度 21H 33 7通道温度 22H 34 8通道温度 23H 35 9通道温度 24H 36 10通道温度 25H 37 11通道温度 26H 38 12通道温度 27H 39 13通道温度 28H 40 14通道温度 29H 41 15通道温度 2AH 42 16通道温度 表 1 参数代号列表
6、 读/写指令 读:地址代号+52H (82)+ 要读参数的代号+0+0+CRC 校验码 写:地址代号+43H (67) +要写参数的代号+ 写入数低字节+ 写入数高字节+CRC 校验码 读指令的CRC校验码为:要读参数的代号的*256+82+T2 T2 是仪表地址参数值,范围是 0100 (注意不要加上 80H)。 CRC 为以上数做二进制,16 位整数加法后得到的余数(溢出部分不处理),余数为 2 个字节,其低字节在前,高字节在后。 写指令的CRC校验码规则为:要写的参数代号*256+67+ 要写的参数值+ T2 。 要写的参数值用 16 位二进制整数表示。 无论是读还是写,仪表都返回以下数
7、据: 通道号+ 温度值+ 报警状态+ 所读/ 写参数值+CRC 校验码 其中通道号占 1 个字节,温度值占 2 个字节,报警状态占 1 个字节,参数值占 2 个字节,数值范围 0 220, CRC 校验码占 2 个字节,共 8 个字节。 CRC 校验码为通道号+ 温度+ 报警状态+ 参数值,按整数加法相加后得到的值(取低位 2字节)。 每 2 个 8 位数据代表一个 16 位整数,低位字节在前,高位字节在后,测量用补码表示,因为传递的是 16 位二进制数,所以无法表示小数点,要求用户在上位机处理。 上位机每向仪表发一个指令,仪表返回一个数据。编写上位机软件时,注意每条有效指令,仪表在 00.2
8、 秒内作出应答,而上位机也必须等仪表返回数据后,才能发新的指令。否则将引起错误。如果仪表超过最大响应时间仍没应答,则原因可能无效指令、通讯线路故障,仪表没有开机,通讯地址不合等,此时上位机应重发指令。 注意事项: 从通讯口向仪表写数据时,每个存储单元(包括给定值)的写入次数是有限的, XMT-J温度巡检仪提供至少 10 万次写入次数,如果写入次数超出要求,仪表存储单元可能损坏。 上位机由于线路与时间传输问题,计算机消息处理等时间开销,一般采样周期大于200mS, 最好为300mS. 示例 读数据指令: 仪表参数设为 BO:9600 CN:0 T2:0(仪表地址为 0) 读 LOCK 值: 向仪
9、表发送指令: 80H 80H 52H 00H 00H 00H 00H 52H 读第一通道温度: 向仪表发送指令: 80H 80H 52H 1BH 00H 00H 1BH 52H 仪表参数设为 BO:9600 CN:0 T2:1(仪表地址为 1) 读 LOCK 值: 向仪表发送指令: 81H 81H 52H 00H 00H 00H 00H 53H 读第一通道温度: 向仪表发送指令: 81H 81H 52H 1BH 00H 00H 1BH 53H 仪表通讯参数 仪表内部参数代号 T2 CN BO 表示意义 仪表地址 通讯方式 波特率 设定值 0-100 0 9600 通过组件读取温度 我厂提供了一
10、个通讯组件,可以方便的读取到温度数据,首先,先注册组件程序,然后设置属性与调用方法,完成数据读写。 示例程序 VB 示例程序 其中THYBMeter1为控件名, ReadVal(int i) 读数据时输入一个10进制的讯数代号就可以了。 THYBMeter1.MeterType = 2 巡检仪类型,定值,不能设其它 THYBMeter1.Addr = 0 仪表地址 THYBMeter1.CommPort = 4 串口号 THYBMeter1.CommOpen 打开串口 Val = THYBMeter1.ReadVal(CInt(Text1.Text) 读数据,其它Text1.Text 为要读的参数代号 val 是将要返回的参数的值 ALM1 = THYBMeter1.ALM1 返回上限报警值 ALM2 = THYBMeter1.ALM2 返回下限报警值 CH=THYBMeter1.SV 当前通道号 PV= THYBMeter1.PV 当前测量值 其中THYBMeter1为控件名, ReadVal(int i) 读数据时输入一个10进制的讯数代号就可以了。 本例需要ThybMeterDriver.ocx 的支持。 需要 ThybMeterDriver.ocx请向我厂索取