如何链接数据
这里,解说如何与在云服务的“设备管理”中登录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"]的数组。
|
|||||||||
| Row[数据库表的主键列的值].数据库表的列名 | 只读 |
获取由“数据库表的主键列的值”特定的行的“数据库表的列名”的数据。 能取得数据库表的主键列的值与“数据库表的主键列的值”匹配的行中,由“数据库表的列名”指定的列的值。 例)如在上述的表中,指定db:query1:Row[John].Age,可以得到38。 |
■ “更新”“追加”数据库操作的项目
| 项目名 | 访问方法 | 说明 |
|---|---|---|
| Row | 只写 |
是用于“更新”或“追加”的一行的数据。 如果在数据库操作的“写入数据”设置中,追加了多个列,则需要写入使用逗号分隔的各列的数据(字符串)。 如果数据库操作类型是“更新”,更新与数据库操作设置中指定的条件相匹配的行的数据。 如果数据库操作类型是“追加”,则会追加一行新的数据。 例)db:query1:Row 如果在“写入数据”中指定了三个列“field_1”,“field_2”和“field_3”,则需要写入例如“1,2,3”的字符串。 如果列数不匹配,则不会写入数据。 |
| 数据库表的列名 | 只写 |
在数据库表的列中写入数据。 “数据库表的列名”是在数据库操作设置的“写入数据”中追加的列名。 如果数据库操作类型为“更新”,则根据数据库操作设置的条件更新数据。 如果数据库操作类型为“追加”,则根据数据库操作设置的内容追加一行数据。 例)db:query1:field_1 |