数据库远程写入
本教程介绍的是通过数据互联协议,实现数据库对终端设备的数据远程写入。
建立组态工程
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 | 字符串 | NULL | channel_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");