dbdriver驱动用于从关系数据库采集数据的驱动,我们这里以dbdriver连接db2数据库为例。
配置主要包含以下步骤:
第一步(配置驱动):选中dbdriver,然后签出,签出之后,可以看到配置驱动会由不可编辑的状态变为可编辑的状态,如下图:
点击“配置驱动”,进入下图“驱动配置页面”,界面中位于上方的列表显示该驱动中所有“设备”信息,下方列表显示选中“设备”的所有数据块信息。
第二步(添加、配置设备):双击设备列表中的空白表格或者右键点击设备列表中的空白表格选择“创建设备”,如下图
如下图,在弹出的“设备配置”对话框中填写参数:
❖设备名称:保证名字唯一,由用户指定;
❖数据库连接:数据库连接中配置的数据库。数据库连接参见数据源连接。
❖连接参数:不可修改,自动加载数据库连接中的配置。数据库连接参见数据源连接。
❖任务号:同一个驱动下的不同设备建议分配不同的任务号。不同的任务号之间是以多线程的并行方式运行,不会相互影响。若通讯正常的设备与通讯故障的设备使用同一个任务号,那么就会降低正常设备的运行速度。任务号的设定,可以用来调整系统中多个通讯的性能。
点击“确认”按钮,设备信息显示在界面上方的设备列表中,选择此设备,下方的数据块列表可用,如下图:
第三步(选择设备):配置此设备的数据块。双击数据块列表中的空白表格或者右键点击数据块列表中的空白表格选择“创建数据项”,如下图
弹出“数据块配置”对话框对话框根据用户实际情况进行配置,如下图:
❖名称:名字唯一,由用户指定。
❖地址:地址和数据块名称相同,在变量配置中,使用数据块名称作为变量配置中的设备地址。
❖元素个数:用户要在数据块中保存的查询记录的最大条数。
❖元素大小:用户查询的每条记录的元素大小。
❖任务号:同一个任务号的数据块之间是按照顺序以单线程的方式运行;而不同任务号的数据块之间是以多线程的并行的方式运行,不会相互影响。
❖SQL语句:需要查询的SQL查询语句。(由于编码集的问题,SQL语句暂不支持中文)
例子:
select count(*) from mydb2.table1;
注意:oracle数据库和mysql数据库的可选参数1的配置如同db2数据库,但是oracle数据库的sql语句后面不需要添加分号。
❖数据类型:SQL语句中配置的字段类型,字段类型支持int1,int2,int4,uint1,uint2,uint4,float,double和stringN,stringN意思为最大长度为N个字节的字符串,N的值为大于1且小于等于256
注意:字段类型大小的和不能小于所配置的元素大小;元素大小不能超过256个字节。
❖轮询周期:SQL语句的执行周期。
配置结果如下,dbdriver_device0设备包含两个数据块:
选择设备和数据块列表,右击可以对已经创建的设备和数据块的任意记录进行删除和修改。
设备和数据块列表都支持快捷方式,如:Delect删除、Ctrl+C复制、Ctrl+V粘贴。
第四步:关闭该配置界面,签入dbdriver
添加变量参见新增变量 。
注意:配置完成后需要部署到scada节点,使得配置生效。
使用db驱动的变量中的设备地址的配置格式为:blockname:Bx#y
其中blockname表示驱动中对应设备下的对应数据块名;Bx#y,其中B表示Byte,x为偏移量,表示该数据块的起始地址,最小从0开始;#为特殊标示符,y表示读取的字节个数。上图中的设备地址dbdata1::B3#2就表示为dbdata1数据块下从第三位开始读取2位数据。
具体的数据请根据数据块配置中的元素个数、元素大小和可选参数2的相关配置进行配置。
选择dbdriver驱动。
添加设备:
首先要进行数据源连接
数据库连接:选择已连接的数据库,本例以MYSQL为例。
连接参数:默认设置,不可修改。
添加数据块:
如图中配置。
元素个数:数据库表的行数;
元素大小(字节):每行的总长度;
SQL语句;SQL语句,填写想要获得的列;
数据类型:填写stringN类型,赋予每列长度;
点击确定,并签入dbdriver驱动。
配置变量:
添加txt类型变量,
设备地址如图db1:B0#10,表示数据块DB1中从第0个BYTE开始,往后读10个BYTE。
按此配置三个变量如下图:
签入部署。
数据库中表为:
即可读出表中的数据: