M-Bus协议
符合M-Bus协议(国标CJ/T188-2004)的水表、热量表、燃气表和电度表等设备,可以通过楼宇网关实现设备接入。
1.添加协议
点击网关右侧的设置图标,首先,在弹出菜单中选择“添加协议”,如下图所示:然后,在下拉选择的协议列表中选择“MeterBus(官方)”,如下图所示:
2.通道配置
接下来,需要对连接通道“添加配置”。边缘网关接入M-Bus总线的方式有串口和IP两种,如下图所示:IP模式下,如上图所示,需要以JSON格式配置以下参数:datalink:指定通道模式,此处为IP。ip_addr: M-Bus设备的本地IP地址。port: M-Bus设备的IP端口号。串口模式下,如上图所示,需要以JSON格式配置以下参数:datalink:指定通道模式,此处为COM。seril_com: 楼宇网关上连接M-Bus设备的串口名称。baud: 串口波特率。
3.新建设备
如下图所示,通过点击通道右侧的“设置”图标,选择“新建设备”,如下图所示:设备的参数请按下图所示进行配置:设备名称:自定义设备名称。设备别名:自定义设备的别名。功能定义:用来定义设备的功能,可以选择已有模型(请参照品类管理章节)、上传文件或者后续添加。设备配置:勾选“添加配置”,请以JSON格式为设备配置如下参数:
meter_type:符合国标CJ/T188-2004规定的仪表代码,用于代表某一仪表类型。比如上图中的“10”代表要接入的设备是一款冷水水表,如下图所示:address:接入仪表的全网唯一识别地址。password_flag:接入仪表是否采用数据加密传送,如果为“1”(加密传输),需要增加password字段以配置密钥,密钥为8字节的十六进制字符串,比如,密钥{0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}应配置为”password”:”1122334455667788“。report_space:接入仪表的属性采样周期,单位是毫秒。
3.1添加属性
名称:属性的功能名称标识符:属性的英文名称,该设备下标识符要唯一数据类型:依赖于属性的扩展参数prop_type取值范围:属性的取值范围步长:设置属性值的精度单位:物理单位读写:属性的读写权限,依赖于属性的扩展参数prop_type
扩展参数的配置如下图:prop_type、功能定义、数据类型和读写权限的对应关系如下:
prop_type | 功能定义 | 物模型的数据类型 | 读写权限 |
---|---|---|---|
0 | 当前累积流量 | float | 只读 |
1 | 结算日累积流量 | float | 只读 |
2 | 结算日热量 | float | 只读 |
3 | 当前热量 | float | 只读 |
4 | 热功率 | float | 只读 |
5 | 流量 | float | 只读 |
6 | 累积流量 | float | 只读 |
7 | 供水温度 | float | 只读 |
8 | 回水温度 | float | 只读 |
9 | 累计工作时间 | int32 | 只读 |
10 | 实时时间 | text | 只读 |
11 | 状态ST0 | int32 | 只读 |
12 | 状态ST1 | int32 | 只读 |
13 | 阀门状态 | enum | 读写 |
14 | 电池电压状态 | bool | 只读 |
3.2添加服务
如上图所示,M-Bus设备的功能定义中增加了对服务的支持,配置参数有:名称:服务的功能名称标识符:服务的英文名称,该设备下标识符要唯一调用方式:异步和同步方式二选一输入参数:对于特定服务,需要设置输入参数,并且参数的个数和每个参数的标识符和数据类型固定,请参考下面的表格。输出参数:对于特定服务,需要设置输出参数,并且参数的个数和每个参数的标识符和数据类型固定,请参考下面的表格。
扩展参数配置如下:service_type的取值请根据所需功能定义,按照下表的对应关系进行设置。
服务类型 | 功能定义 | 参数 | 标识符 | 数据类型 | 取值范围 | 参数说明 |
---|---|---|---|---|---|---|
0 | 读历史计量数据 | 输入 | month | Int32 | 1~12 | 月份 |
输出 | history_data | Float | 0~100000000 | 结算日累计流量 | ||
1 | 写价格表 | 输入 | price_one | float | 0~100000 | 价格一 |
amount_one | 0~100000 | 用量一 | ||||
price_two | 0~100000 | 价格二 | ||||
amount_two | 0~100000 | 用量二 | ||||
price_three | 0~100000 | 价格三 | ||||
start_date | 1~31 | 启用日期 | ||||
输出 | 无 | 无 | 无 | 无 | ||
2 | 读价格表 | 输入 | 无 | 无 | 无 | 无 |
输出 | price_one | float | 0~100000 | 价格一 | ||
amount_one | float | 0~100000 | 用量一 | |||
price_two | 0~100000 | 价格二 | ||||
amount_two | 0~100000 | 用量二 | ||||
price_three | 0~100000 | 价格三 | ||||
start_date | 1~31 | 启用日期 | ||||
3 | 写购入金额 | 输入 | buy_serial | Int32 | 0~255 | 购入序列号 |
buy_money | Float | 0~100000 | 购入金额 | |||
输出 | 无 | 无 | 无 | 无 | ||
4 | 读购入金额 | 输入 | 无 | 无 | 无 | 无 |
输出 | buy_serial | Int32 | 0~255 | 购入序列号 | ||
buy_money | Float | 0~100000 | 购入金额 | |||
accu_buy_money | 0~100000 | 累计购入金额 | ||||
balance | 0~100000 | 余额 | ||||
5 | 设置密码 | 输入 | password_ver | Int32 | 0~255 | 密码版本号 |
password | Text | 16字节 | 密码 | |||
输出 | 无 | 无 | 无 | 无 | ||
6 | 设置标准时间 | 输入 | standard_time | Text | “2019/10/21-12:31:15” | 标准时间 |
输出 | 无 | 无 | 无 | 无 | ||
7 | 读结算日 | 输入 | 无 | 无 | 无 | 无 |
输出 | settlement_date | Int32 | 1~31 | 结算日 | ||
8 | 设置结算日 | 输入 | settlement_date | Int32 | 1~31 | 结算日 |
输出 | 无 | 无 | 无 | 无 | ||
9 | 读抄表日 | 输入 | 无 | 无 | 无 | 无 |
输出 | meter_read_date | Int32 | 1~31 | 抄表日 | ||
10 | 设置抄表日 | 输入 | meter_read_date | Int32 | 1~31 | 抄表日 |
输出 | 无 | 无 | 无 | 无 |
如上表所示,读抄表日服务设置如下输出参数:参照上面的属性和服务的添加步骤,根据点位需求可以为仪表设备添加多个属性和服务定义,如下图所示。
4.功能定义
创建好的设备如下图所列,选择右侧的“功能定义”,根据仪表的点位信息为其添加各个功能点。如下图所示:
4.1 添加属性
名称:属性的功能名称。标识符:属性的英文名称,该设备下标识符要唯一。数据类型:会根据BACnet属性的扩展参数自动更改。取值范围:设置BACnet属性的范围。步长:设置属性值的精度。单位:物理单位。读写:设置属性的读写权限。扩展参数的配置如下图所示:
prop_type的取值请根据所需功能定义,按照下表的对应关系进行设置。
prop_type | 功能定义 | prop_type | 功能定义 |
---|---|---|---|
0 | 当前累积流量 | 7 | 供水温度 |
1 | 结算日累积流量 | 8 | 回水温度 |
2 | 结算日热量 | 9 | 累计工作时间 |
3 | 当前热量 | 10 | 实时时间 |
4 | 热功率 | 11 | 状态ST0 |
5 | 流量 | 12 | 状态ST1 |
6 | 累积流量 | 13 | 阀门状态 |
14 | 电池电压状态 |
4.2 添加服务
如上图所示,M-Bus设备的功能定义中增加了对服务的支持,配置参数有:名称:服务的功能名称。标识符:服务的英文名称,该设备下标识符要唯一。调用方式:异步和同步方式二选一。输入参数:对于特定服务,需要设置输入参数,并且参数的个数和每个参数的标识符和数据类型固定,请参考下面的表格。输出参数:对于特定服务,需要设置输出参数,并且参数的个数和每个参数的标识符和数据类型固定,请参考下面的表格。 扩展参数配置如下图所示:service_type的取值请根据所需功能定义,按照下表的对应关系进行设置。
service_type | 功能定义 | 输入参数 | 输出参数 | ||||
---|---|---|---|---|---|---|---|
标识符 | 数据类型 | 参数说明 | 标识符 | 数据类型 | 参数说明 | ||
0 | 读历史计量数据 | month | Int32 | 月份 | history_data | Float | 结算日累计流量 |
1 | 写价格表 | price_one | float | 价格一 | 无 | ||
amount_one | 用量一 | ||||||
price_two | 价格二 | ||||||
amount_two | 用量二 | ||||||
price_three | 价格三 | ||||||
start_date | 启用日期 | ||||||
2 | 读价格表 | 无 | price_one | float | 价格一 | ||
amount_one | 用量一 | ||||||
price_two | 价格二 | ||||||
amount_two | 用量二 | ||||||
price_three | 价格三 | ||||||
start_date | 启用日期 | ||||||
3 | 写购入金额 | buy_serial | Int32 | 购入序列号 | 无 | ||
buy_money | Float | 购入金额 | |||||
4 | 读购入金额 | 无 | buy_serial | Int32 | 购入序列号 | ||
buy_money | Float | 购入金额 | |||||
accu_buy_money | 累计购入金额 | ||||||
balance | 余额 | ||||||
5 | 设置密码 | password_ver | Int32 | 密码版本号 | 无 | ||
password | Text | 密码 | |||||
6 | 设置时间 | standard_time | Text | 标准时间(”2019/10/21-12:31:15”) | 无 | ||
7 | 读结算日 | 无 | settlement_date | Int32 | 抄表日 | ||
8 | 设置结算日 | settlement_date | Int32 | 抄表日 | 无 | ||
9 | 读抄表日 | 无 | meter_read_date | Int32 | 抄表日 | ||
10 | 设置抄表日 | meter_read_date | Int32 | 抄表日 | 无 |
如上表所示,读抄表日服务设置如下输出参数: 参照上面的属性和服务的添加步骤,根据点位需求可以为仪表设备添加多个属性和服务定义,如下图所示:
5.网关部署
为网关配置好协议及其所有设备的功能定义之后,需要将这些配置从云端部署到边缘网关,如下图所示,单击“部署”按钮,如下图所示:部署进度和结果,如下图所示:部署完成后,可查看所有设备是否成功上线。