跳到主要内容

数据库远程写入

本教程介绍的是通过数据互联协议,实现数据库对终端设备的数据远程写入。


建立组态工程

1. 新建工程

新建组态工程,配置数据组及 MQTT 服务器,之后下载工程。本文以 M10、V0 为例子,通道标识分别设置为 M10 和 V0,组标识为 group1,工程项目标识为 project1。此处必须勾选上允许远程写入才能实现从数据库远程写入。

2. 下载工程

完成服务器的配置后,做好画面,下载工程到 HMI 上。

3. 配置海为数据互联工具

点击左上角的 MQTT 服务器,主机地址应和组态工程的 MQTT 服务器地址一致。

添加任务,点击设置,在弹出的任务设置窗口里进行数据库的配置。本文以 MySQL 数据库为例子,输入 MySQL 服务器的 IP 地址、用户名、密码及数据库名称,端口号默认为 3306。工程项目标识和组标识需要与组态工程对应上,分别为 project1 和 group1。

此处必须勾选上远程写入。启用此功能,会在数据库创建两张数据表:_command 和_command_history。

4. 远程写入

下面表格为_command 和_command_history 数据表中的字段格式:

字段名称类型NULL说明
id整型NOT NULL自增主键
command_id字符串NULL该命令的 id 标识,可由用户自行指定,可为空
project_identifier字符串NOT NULL工程项目标识
group_identifier字符串NOT NULL组标识
terminal_code字符串NOT NULL终端编号
type字符串NULL该命令的执行类型
channel_identifier字符串NULL通道标识
value字符串NULL通道标识的值
payload字符串NULLchannel_identifier 和 value 的第二种选择

本例向数据库中_command 表格写入下列两条命令。下列两条命令表示需要远程写入的海为智联产品的工程项目标识为 project1**(如果是通过云数据中心,项目标识为云数据中的项目 ID)**,组标识为 group1,终端编号为 120。第一条命令表示将通道标识为 M10 的变量置位为 ON,第二条命令表示将通道标识为 M10 的变量复位为 OFF、V0 赋值 20。若命令执行成功,会将该命令移动到_command_history 数据表中。

以上两条命令可以用如下 SQL 语句来向_command 表格新增:

# 单变量方式
INSERT INTO _command(project_identifier, group_identifier, terminal_code, type, channel_identifier, value) VALUES ("project1", "group1", "120", "set_var", "M10", 0);
# payload
INSERT INTO _command(project_identifier, group_identifier, terminal_code, type, payload) VALUES ("project1", "group1", "120", "set_var", "M10,0;V0,20");