如何链接数据


这里,解说如何与在云服务的“设备管理”中登录CONPROSYS设备的数据进行链接,如何取得在云服务“数据库操作”中设定的数据库操作结果。


打开HMI编辑环境“显示”/“设备树”菜单,可以看到在服务器上登录的设备和数据库操作的列表。

设备树的显示内容如下。

类别 说明
dt

dt类别下,显示登录的CONPROSYS设备,和共享数据组。

选择这些节点,在右侧的面板会列出详细的变量的列表。

share

share组,可以自由的登录在共同一工程项目的画面上共享使用的数据变量。

链接dt:share:<任意变量名>,会登录此新的共享变量。

设备ID.云键 (DeviceID.CloudKey)

在云服务器上登录的CONPROSY设备的类别,为设备ID +“.”+云键的形式(DeviceID.CloudKey)。

设备ID在云服务器上登录的CONPROSY设备的ID。

云键为在CONPROSYS设备的PLC连接设定里设定的云键。

点击列表中的每个项目,当前数值的二进制值以16位或32位格式显示在底部。


如要登录新的设备,请到云服务器的“设备管理”


关于CONPROSYS设备的设定方法,请参阅设备的设定步骤

关于数据标签名和数据树的变量的关系,请参阅这里

设备ID (DeviceID)

这里显示了每个设备唯一的标识,和可以使用设备数据的用户的权限信息。

显示设备注册时设置的设备ID。

有关变量的列表,请参阅 设备警报保留变量


只有在操作组中启用的用户或操作用户才能使用该设备的数据。

但是,当通过“数据库操作”和共享组检索数据时,该权限不适用。


要注册新设备或更改权限,请从系统菜单中选择“设备管理”。


db

在db类别下面,显示已登录的数据库操作。

选择这些节点,在右侧的面板会列出详细的数据库操作的关联的结果的变量的列表。

数据库操作ID 显示已登录的数据库操作的ID。


如何使用数据库操作


在设备树中选择数据库操作时,将显示以下画面。

在上部,是关于数据库操作执行的时机的设定。

关于数据库操作的设定,请参阅数据库操作的设定


□ 打开页面时执行数据库操作

在画面被打开时,执行一次数据库操作。


□ 定期执行数据库操作

在画面被打开后,以指定的时间间隔执行数据库操作。

注意:如果画面未在浏览器中打开,则不会执行数据库操作。


关于数据库操作的项目(变量)

显示的项目及其使用方法,随着数据库操作类型而异。以下说明各数据库操作类型及其显示的项目。


■ 共同项目

项目名访问方法说明
Run 读/写

写入非0值时,启动数据库操作。当数据库操作执行完成后,Run的值将为0。

例)db:query1:Run,如果链接到“switch”或“button”部件的事件写,则在单击部件时执行数据库操作

Status 只读

获取数据库操作的执行状态。

“OK”表示正常执行完成,“Running”表示正在执行。

其他字符串,表示执行数据库操作时出错。

例)db:query1:Status

Time 只读

获取执行数据库操作的时间。该值是从1970/1/1起的经过时间(ms)。

使用文字部件的高级选项,可以将此值显示为指定的日期时间格式。

例)db:query1:Time


■ “取得”数据库操作的项目

项目名访问方法说明
Offset 只写

执行数据库操作时,获取此项指定的偏移值后的数据。

默认值为0,必须是大于或等于0的数字。

例)db:query1:Offset

Limit 只写

执行数据库操作时,如果结果的行数超过此项中指定的值,限制获取的数据行数为此指定的行数。

默认值为2000。

例)db:query1:Limit

NumTotal 只读

获取数据库操作结果的数据行数。

例)db:query1:NumTotal

Row### 只读

获取数据库操作结果指定行的数据。

###可以是0到NumTotal间的数字。

如果行有多个列,则该值为包括所有列的数据的数组。如果链接的画面部件的属性不支持数组,则使用数组中的最后一个值。

例)db:query1:Row0

Row###.数据库表的列名 只读

获取数据库操作结果中指定行指定列的数据。

###可以是0到NumTotal间的数字。

“数据库表的列名”是数据库操作设定中,“输出数据”中指定的列名。

例)db:query1:Row0.field_1

数据库表的列名 只读

获取指定数据库表的列名的数据。

“数据库表的列名”是数据库操作设定中,“输出数据”中指定的列名。

如果指定的列存在数据,则该值为各行指定列的数据的数组。如果链接的画面部件的属性不支持数组,则使用数组中的最后一个值。

例)db:query1:field_1

Row[数据库表的主键列的值] 只读

获取由“数据库表的主键列的值”特定的行的数据。

能取得数据库表的主键列的值与“数据库表的主键列的值”匹配的行的值。

如果行有多个列,则该值为包括所有列的数据的数组。如果链接的画面部件的属性不支持数组,则使用数组中的最后一个值。

例)下表中的主键列为“Name”时

指定db:query1:Row[John]时,可获得值为["John", 38, "man"]的数组。

NameAgegender
John38man
Mary4woman
Row[数据库表的主键列的值].数据库表的列名 只读

获取由“数据库表的主键列的值”特定的行的“数据库表的列名”的数据。

能取得数据库表的主键列的值与“数据库表的主键列的值”匹配的行中,由“数据库表的列名”指定的列的值。

例)如在上述的表中,指定db:query1:Row[John].Age,可以得到38。


■ “更新”“追加”数据库操作的项目

项目名访问方法说明
Row 只写

是用于“更新”或“追加”的一行的数据。

如果在数据库操作的“写入数据”设置中,追加了多个列,则需要写入使用逗号分隔的各列的数据(字符串)。

如果数据库操作类型是“更新”,更新与数据库操作设置中指定的条件相匹配的行的数据。

如果数据库操作类型是“追加”,则会追加一行新的数据。

例)db:query1:Row


如果在“写入数据”中指定了三个列“field_1”,“field_2”和“field_3”,则需要写入例如“1,2,3”的字符串。

如果列数不匹配,则不会写入数据。

数据库表的列名 只写

在数据库表的列中写入数据。

“数据库表的列名”是在数据库操作设置的“写入数据”中追加的列名。

如果数据库操作类型为“更新”,则根据数据库操作设置的条件更新数据。

如果数据库操作类型为“追加”,则根据数据库操作设置的内容追加一行数据。

例)db:query1:field_1