
1、通信接口
LJS/ZLJS 流量计采用RS485接口与上位机通信,通信的波特率为1200pbs,每个字节
为8位,无奇偶校验位。
2、数据帧的格式
2.1)上位机向流量计发送的数据帧:
55H, 55H, ADDR, CMD, Len1, Data(0), Data(1), …. Data(Len1-1), ChkSum
2.2)流量计向上位机应答的数据帧
55H, 55H, ADDR, CMD, Len2, DevStatus, DevErr, Data(0), Data(1), …. Data(Len2-3),
ChkSum
其中:
1) 55H,55H为数据帧的引导字符,表示数据帧的开始;
2)ADDR 为流量计的通信地址,1个字节,取值范围0—255;
3)CMD 为通信命令号,1个字节,详见协议简表;
4)Len1、Len2 为数据长度,1个字节,表示它后面有Len1(或Len2)个字节的数据;当
等于0时,表示后面没有数据;
5)Data(0), Data(1),…, Data(DataLen-1) 为数据区,有Len1(或Len2)个字节的数据;
6)ChkSum 为校验和,1个字节,其数值是从Address起到ChkSum前的全部数据之
和的低8位数据;
7)DevStatus:为状态码,1个字节,其各位的含义如下:
| BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 | |
| 1 | 命令不响应 | Qo 报警 | 睡眠 | 有外 电源 | 压缩因子补偿 | 有按键 | 电池 欠压 | 流量 偏小 |
| 0 | 命令 响应 | Qo 不报警 | 不睡眠 | 无外 电源 | 不补偿 | 无按键 | 电池 正常 | 流量 正常 |
| BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 | |
| 1 | 频率 电路 故障 | 温度 传感器 异常 | 压力 传感器 异常 | A/D转换电路异常 | RAM 故障 | EE PROM故障 | 串行口通信 故障 | 时钟 电路 故障 |
| 0 | 频率 电路 正常 | 温度 传感器 正常 | 压力 传感器 正常 | A/D转换电路 正常 | RAM 正常 | EE PROM 正常 | 串行口通信 正常 | 时钟 电路 正常 |
3、数据类型
在数据区中的数据有4种类型:字节、字符、字和浮点数;
3.1)字节:8位,十六进制,用B(Byte)来标记;
3.2)字符:8位,ASCII码,表示1个英文字母,用ASC标记;
3.3)字:16位,十六进制,2个字节,低字节在前,高字节在后,用W(Word)表示;
3.4)浮点数:32位,4个字节,依次为P,SMH,MM,ML,用F(Float)表示;
其中:单精度二进制浮点数为:FloatData = ±0.MH-MM-ML*2P
P 为阶码,1个字节,以十六进制补码的形式表示;
SMH 为尾数的高字节,1个字节,最高位(第7位)为符号位S,S=1 表示数据为负,
S=0 则数据为正;其余7位为浮点数尾数的高7位,第0到6位;
MM 为尾数的中间字节,1个字节,第7到14位;;
MM 为尾数的低字节,1个字节,第15到23位;;
4、通信命令简表
CMD
| (HEX) | 命令名称 | 上位机命令参数 | 流量计响应参数 | 适用范围 | |||
| Len1 | 数据区 | Len2 | 数据区 | LJS | ZLJS | ||
| 0 | 读流量计状态 | 0 | 无 | 7 | [2_1] | Yes | Yes |
| 1 | 写地址,密码 | 5 | [1_1] | 2 | [2_0] | Yes | Yes |
| 2 | 读测量参数 | 0 | 无 | 22 | [2_2] | Yes | Yes |
| 3 | 累积量清零 | 0 | 无 | 2 | [2_0] | Yes | Yes |
| 4 | 读流量计标记 | 0 | 无 | 34 | [2_3] | Yes | Yes |
| 5 | 写流量计标记 | 32 | [1_2] | 2 | [2_0] | Yes | Yes |
| 10H | 读LJS线性化表 | 0 | 无 | 32 | [2_4] | Yes | No |
| 11H | 写LJS线性化表 | 30 | [1_3] | 2 | [2_0] | Yes | No |
| 12H | 读LJS仪表常数 | 0 | 无 | 28 | [2_5] | Yes | No |
| 13H | 写LJS仪表常数 | 26 | [1_4] | 2 | [2_0] | Yes | No |
| 20H | 读ZLJS线性化表 | 0 | 无 | 32 | [2_6] | No | Yes |
| 21H | 写ZLJS线性化表 | 30 | [1_5] | 2 | [2_0] | No | Yes |
| 22H | 读ZLJS仪表常数1 | 0 | 无 | 30 | [2_7] | No | Yes |
| 23H | 写ZLJS仪表常数1 | 28 | [1_6] | 2 | [2_0] | No | Yes |
| 24H | 读ZLJS仪表常数2 | 0 | 无 | 28 | [2_8] | No | Yes |
| 25H | 写ZLJS仪表常数2 | 26 | [1_7] | 2 | [2_0] | No | Yes |
| 26H | 读ZLJS记录表指针 | 0 | 无 | 8 | [2_9] | No | Yes |
| 27H | 清ZLJS记录表指针 | 0 | 无 | 2 | [2_0] | No | Yes |
| 28H | 读月记录表的 最近第j组数据 | 3 | 0(B),j(W) | 9 | [2_A] | No | Yes |
| 28H | 读启停记录表的 最近第j组数据 | 3 | 1(B),j(W) | 13 | [2_B] | No | Yes |
| 28H | 读实时记录表的 最近第j组数据 | 3 | 2(B),j(W) | 24 | [2_C] | No | Yes |
5、数据区代码说明
| 代码 | 数据区的变量 |
| [1-1] | ADDR(B,通信地址), upassword(W,用户密码), mpassword(W,厂家密码) |
| [1-2] | Factory_ID(ASC,8byte,厂家编号), product_ID(ASC,8byte,产品编号), type(ASC,11byte,产品型号), soft_ver(ASC,2byte,软件版本),manudate(ASC,3byte,生产日期) |
| [1-3] | 线性化表f1(W),f2(W),f3(W),f4(W),f5(W), H1(F), H2(F), H3(F), H4(F), H5(F) |
| [1-4] | Fo(W),Ps(F),Ts(F),FH(F),FL(F),Kt(F),Bt(F) |
| [1-5] | 线性化表f1(W),f2(W),f3(W),f4(W),f5(W), H1(F), H2(F), H3(F), H4(F), H5(F) |
| [1-6] | FH(F),FL(F),Kt(F),Bt(F),Kp(F),Bp(F),Vo_Alarm(F) |
| [1-7] | Mn(F),Mc(F),Gr(F),Vm_H(F),dt(W),fo(W),year(B,年),month(B,月), day(B,日),hour(B,时),minite(B,分),second(B,秒) |
| [1-8] | i(B, i=0月记录, I=1启停记录, i=2实时记录),j(W, 指定记录表的倒数第j项数据) |
| [2-0] | DevStatus(B,流量计状态码),DevErr(B,流量计故障码) |
| [2-1] | null(B,保留), upassword(W,用户密码), mpassword(W,厂家密码) |
| [2-2] | Qm(F,工况流量),Qo(F,标况流量),t(F,温度),p(F,压力),sum(F,累积量) |
| [2-3] | 同[1-2] |
| [2-4] | 同[1-3] |
| [2-5] | 同[1-4] |
| [2-6] | 同[1-5] |
| [2-7] | 同[1-6] |
| [2-8] | 同[1-7] |
| [2-9] | MonLen(W,月记录表长度),SSLen(W,启停记录表长度),DayLen(W,实时记录表长度);记录表长度用已记录的数据点数来表示 |
| [2-A] | Sum(F,累积量),year(B,年),month(B,月),day(B,日) |
| [2-B] | Sum(F,累积量),year(B,年),month(B,月),day(B,日)hour(B,时),minite(B,分),second(B,秒),SSTag(B,启停标记,55H:启动,0EEH:停止) |
| [2-C] | Sum(F,累积量),Qo(F,标况流量),t(F,温度),p(F,压力),year(B,年),month(B,月),day(B,日)hour(B,时),minite(B,分),second(B,秒) |
