新闻中心

PRESS CENTER 纵横智控
你的位置: 首页 新闻 技术应用
纵横智控

EG边缘计算网关读写满足 CJ/T 188-2004 标准的户用计量仪表

2025-09-16 11:00:33 阅读: 发布人:纵横智控

概述

EG8200边缘计算网关支持读写满足 CJ/T 188-2004 标准的户用计量仪表 。

协议可参考:https://iotrouter.yuque.com/attachments/yuque/0/2023/pdf/38696274/1698394496011-8d0bb7e8-9f74-4d73-852c-1d673d8e3b44.pdf

标准用法

支持在CJ188节点中配置多个要采集的数据,通过输入消息来触发数据采集。CJ188节点按照数据点的配置顺序进行采集,每采集完一个数据点即输出一个消息对象。

串口配置:选择CJ188设备接入的串口号

数据名称:要采集的数据点名称,键值对的KEY,用户自定义

水表类型:2位16进制字符,例如:10表示冷水水表

水表地址:14位字符串格式的水表地址,例如:00202307160177

数据标识:4位16进制字符,例如:901F表示读计量数据

详情请参考协议文档


示例采集一个表号为00202307160177的冷水水表的计量数据,数据名称自定义为data,采集结果存储在属性msg.data中,如图所示:结果含义请参考高级用法输出:

EG边缘计算网关读写满足 CJ/T 188-2004 标准的户用计量仪表

源码:见文末

高级用法

支持向CJ188节点输入符合规定的消息对象,实现【写数据】、【读数据】、【写阀门状态】等功能。

《 CJ/T 188-2004 户用计量仪表数据传输技术条件》规定的数据标识一般包含多个属性,因此解析数据成功后将多个属性合为一个对象输出,当CJ188节点的输入包含msg.key属性,输出以msg.key值作为对象名,否则以msg.address作为对象名。

写输入

msg.type

#水表类型:2位16进制字符串,例如:10表示冷水水表

msg.address

#水表地址:14位字符串格式的水表地址,例如:00202307160177

msg.cmd

#控制码:字符串格式,具体请参考协议文档

msg.ret

#正常应答控制码:字符串格式,具体请参考协议文档

msg.datalen

#数据长度:字符串格式,具体请参考协议文档

msg.identify

#数据标识:字符串格式,具体请参考协议文档

msg.seq

#序列号:字符串格式,具体请参考协议文档

msg.val

#要写入的值,写必填,读请忽略此属性

msg.key

#输出结果对象名(选填,如果未携带该字段,输出对象名为msg.address)

写输出

msg.type

#输入的字段

msg.address

#输入的字段

msg.cmd

#输入的字段

msg.ret

#输入的字段

msg.datalen

#输入的字段

msg.identify

#输入的字段

msg.seq

#输入的字段

msg.val

#输入的字段

msg.status

# OK"正常回复"TIMEOUT"超时

msg.reqpayload

#请求的命令帧

msg.payload

#响应的命令帧,如果超时则为空

msg.key(msg.address)

#写入结果 【true】:成功 【write reply Error】:回复错误 【write Error】:控制码错误

读输入

msg.type

#水表类型:2位16进制字符串,例如:10表示冷水水表

msg.address

#水表地址:14位字符串格式的水表地址,例如:00202307160177

msg.cmd

#控制码:字符串格式,具体请参考协议文档

msg.ret

#正常应答控制码:字符串格式,具体请参考协议文档

msg.datalen

#数据长度:字符串格式,具体请参考协议文档

msg.identify

#数据标识:字符串格式,具体请参考协议文档

msg.seq

#序列号:字符串格式,具体请参考协议文档

 

msg.key

#输出结果对象名(选填,如果未携带该字段,输出对象名为msg.address)

读输出

msg.type

#输入的字段

msg.address

#输入的字段

msg.cmd

#输入的字段

msg.ret

#输入的字段

msg.datalen

#输入的字段

msg.identify

#输入的字段

msg.seq

#输入的字段

msg.status

# OK"正常回复"TIMEOUT"超时

msg.reqpayload

#请求的命令帧

msg.payload

#响应的命令帧,如果超时则为空

msg.key(msg.address)

#读取结果

#【read reply Error】:回复错误

#【read Error】:控制码错误

#【read data identification error】:数据标识错误

#【Object】:参考对象说明


#读取对象参考

#数据标识 属性含义

#901F读计量数据 cct:当前累计流量

#atosd:结算日累计流量

#data:实时时间

#st:状态ST,16进制

#value:状态ST,低2位D0D1,16进制

#D120~D12B 历史计量数据

#8102读价格表 price1:价格1

#dosage1:用量1

#price2:价格2

#dosage2:用量2

#price3:价格3

#dosage3:用量3

#8103读结算日

#8104读抄表日

#8105计数器寄存器 seq:本次购买序号

#som:本次购入金额

#ca:累计购入金额

#ra:剩余金额

#st:状态ST,16进制

#value:状态ST,低2位DOD1,16进制

901F输出示例

{

"cct":"000001.00",//当前累积流量

"atosd":"000001.00",//结算日累积流量

"date":"0000-00-00-00-00-00",//实时时间

"st":"02ff",//状态ST 16进制

"valve":"02"//状态ST 低2位 D0 D1 16进制(即阀门状态)

}

8102输出示例


8105输出示例

{

"seq":"01",//本次购买序号

"aom":"000001.00",//本次购入金额

"ca":"000001.00",//累计购入金额

"ra":"000001.00",//剩余金额

"st":"02ff",//状态ST 16进制

"valve":"02"//状态ST 低2位 D0 D1 16机制

}

示例

1. 读901F

msg.address = '00202307160177'

//address 表地址

msg.type = '10'

//type 表类型

msg.cmd = '01'

//cmd 控制码

msg.ret = '81'

//ret 正常应答控制码

msg.datalen = '03'

//datalen 数据长度

msg.identify = '901F'

//identify 数据标识

msg.seq = '00'

//seq 序列号

return msg;

EG边缘计算网关读写满足 CJ/T 188-2004 标准的户用计量仪表

2. 写数据:开阀

msg.address = '00202307160177'

//address 表地址

msg.type = '10'

//type 表类型

msg.cmd = '2A'

//cmd 控制码

msg.ret = 'A5'

//ret 正常应答控制码

msg.datalen = '04'

//datalen 数据长度

msg.identify = 'A017'

//identify 数据标识

msg.seq = '00'

//seq 序列号

msg.val = '55'

//val 值

return msg;

EG边缘计算网关读写满足 CJ/T 188-2004 标准的户用计量仪表


源码/教程:https://iotrouter.yuque.com/zn3vdn/eg8000/xlkzl9b4ubz345a3

注意

读取超时:请检查【表地址】等参数是否正确、物理线路是否正常。计量仪表本身可能不支持某些数据标识

读取错误:数据无法解析,CJ188节点的输出包含了【请求报文】、【响应报文】,可自行使用函数计算节点将CJ188节点的输出对象进行解析

热门产品