Appearance
name-value协议接入
前言
本次文档的使用说明是以MQTT X调试工具,通过SCADA的name-value MQTT协议对接数据。
1、SCADA系统配置
1.1 打开SCADA系统工程,点击右上角的齿轮图标(系统设置),在端口配置里查看MQTT TCP端口:默认20185支持修改 
1.2 在左侧变量管理系统功MQTT接入中,点击添加设备,配置MQTT设备接入信息
| 名词 | 说明 |
|---|---|
| 设备名称 | 自定义设备名词 |
| 所属分组 | 自定义设备分组 |
| 所属协议 | 选择 name-value 协议 |
| BOX来源 | 1.自定义输入:可以自定义客户端ID、用户名、密码,2.随机分配:则是由SCADA系统自动生成客户端ID、用户名、密码 |
| 添加数量 | 所需要添加的MQTT设备数量 |
| 客户端ID | 自定义客户端ID,配置的客户端ID需要唯一且不冲突,如:demo001 |
| 用户名 | 自定义用户名 |
| 密码 | 自定义密码 |
| 状态 | 是否启用该设备 |

1.3 点击变量管理,新增MQTT设备变量分组,便于数据查看与调用 
1.4 选中已建好的变量分组,点击添加变量,点击后会自动生成一行变量的基础信息,按照实际的需求进下配置
| 名词 | 说明 |
|---|---|
| 设备名称 | 需要选择变量所对应的哪个设备 |
| 变量名称 | 自定义变量名称(如温度、压力) |
| 变量地址 | 必须与客户端设备上传数据名称完全一致 |
| 数据类型 | 根据实际选择(int、float、bool 等) |

2、MQTTX配置
2.1 打开MQTTX软件,新建MQTT链接,配置MQTT基础连接参数,配置完成后需要点击保存
| 名词 | 说明 |
|---|---|
| 名称 | 自定义转发名称:SCADA(name-value协议) |
| Client ID | SCADA系统配置的客户端 ID |
| 服务器地址 | SCADA系统所在电脑的IP地址 |
| 服务器端口 | SCADA系统的 MQTT TCP 端口:默认20185 |
| 用户名 | SCADA系统配置的用户名 |
| 密码 | SCADA系统配置的密码 |

2.3 MQTTX里,输入上传变量主题:sys/${clientId}/data(${clientId}需要替换为SCADA系统里设置的客户端ID如上述的demo001)sys/demo001/data 
2.4 MQTTX里配置订阅SCADA系统写入变量主题:sys/${clientId}/write(${clientId}需要替换为SCADA系统里设置的客户端I如上述的demo001)sys/demo001/write 
3、SCADA查看数据
3.1 在SCADA里点击正式运行工程,在MQTT接入里查看设备状态,显示在线说明已连接成功 
3.2 点击设备信息操作栏里的日志,可以查看客户端设备上传的报文信息。 
4、SCADA MQTT标准协议规范
4.1 协议内容
| 功能名称 | 类型 | topic | 说明 |
|---|---|---|---|
| SCADA读主题 | 发布 | sys/${clientId}/data | 设备端主动上报实时数据 |
| SCADA写主题 | 订阅 | sys/${clientId}/write | SCADA系统发起数据点控制 |
注意
1.topic中的${clientId}字段在实际通信时,要替换成SCADA系统里设置的客户端ID
4.2 实时数据上报主题(topic):sys/${clientId}/data,如上述文档里的:sys/demo001/data
payload示例
[ { "name":"1#wendu", "value":33 }, { "name":"1#yali", "value":2 } ]
参数说明
| 名称 | 数据类型 | 必须 | 说明 |
|---|---|---|---|
| data | Object | 是 | 需要上报的数据信息,name代表变量名称,value代表变量值,支持同时上报一个或多个数据。 |
注意
1.bool类型的数据点在平台下发控制时,数值使用1、0代表true、false
4.3 SCADA控制数据主题(topic):sys/${clientId}/write,如上述文档里的:sys/demo001/write
payload示例
参数说明
| 名称 | 数据类型 | 必须 | 说明 |
|---|---|---|---|
| data | Object | 是 | 需要控制的数据,name代表变量名称,value代表变量值,支持同时控制一个或多个数据。 |
注意
1.bool类型的数据点在平台下发控制时,数值使用1、0代表true、false
