上报数据库
本教程介绍的是如何通过互联网,将数据上报并存储到数据库,实现对远程数据的采集。
编写组态程序
1. 新建工程
打开海为组态软件 Haiwell SCADA Develop,新建工程,添加设备及变量。
2. 添加数据组
双击左边工程树的数据组,然后选择添加数据组。
在弹出的数据组编辑窗口添加通道变量,存储方式必须勾选远程上报 MQTT。这里添加的变量为 switch、value。上报服务质量(QoS)有三种等级:
-
至多一次(QoS 0)- 发送者只发送一次消息;
-
至少一次(QoS 1)- 消息至少送达接收者一次,但也有可能会多发;
-
只有一次(QoS 2)- 保证消息只被接收一次。
组标识对应数据库中的表格名称,通道标识对应数据库表格中的 字段, MySQL 数据库中无需提前建立表格及字段。
3. 服务器配置
双击左边工程树的数据中心数据上报服务器进行 MQTT 服务器配置。勾选启用,输入服务器地址,即为之前安装的 EMQ 服务器 IP 地址。EMQ 服务器的默认端口为 1883。服务器项目标识可以使用随机生成的标识,也可以自己进行命名,但是必须具有唯一性。上报验证的启用根据需求即可,这里启用了上报验证方便在接下来进行验证。
4. 下载工程
完成服务器的配置后,做好画面,下载工程到 HMI 上。
配置数据互联工具
1. 海为数据互联工具
海为 数据互联工具是海为开发的数据库对接工具,在组态软件打开使用即可。
2. 配置工具
点击左上角的数据上报服务器进行 MQTT 服务器配置,与 Haiwell SCADA Develop 中数据上报服务器的服务器配置类似,这里不再赘述。
3. 添加任务
点击海为数据互联工具右上角的添加任务进行 MySQL 数据库的配置。添加任务后点击设置进行任务设置。
工程项目标识应与组态数据中心的服务器项目标识保持一致,组标识为组态中数据组的组标识。数据库设置与通过MySQL-front 远程访问数据库的设置类似。主机填写 MySQL 服务器的主机 IP 地址,端口默认为 3306。用户和密码为 MySQL 数据库的 root 用户和密码。数据库名称自行定义(qqq555)或者选择此前在第二步搭建 MySQL 数据库中创建的数据库。
4. 开始任务
添加完任务后,点击右下角的开始执行任务。如果任务成功执行,下方的开始会变成红色的终止。
验证
1.MQTT 服务器
进入 EMQ 服务器的 Web 管理控制台(Dashboard)。点击 Clients 标签,可以在右边的窗口看到有两个连接状态。Username(用户名)分别为 HMI 和 tool,分别为 Haiwell SCADA 和海为数据互联根据设置的上报验证用户名。因此我们可以验证,HMI/网关 和海为数据工具已经成功连接上了 MQTT 服务器。
2.MySQL 数据库
通过 MySQL-front 远程访问 MySQL 服务器,点开 scada 数据库。在这里可以看到,scada 数据库已经生成了一个名称为 group1 的表格。双击 group1 表格,并选择数据浏览器,这里可以看到 Y0、M0 和 V0 的数值已经存储到数据库并在不断更新。因此我们可以验证,HMI/网关 的历史数据已经成功存储到 MySQL 数据库。