组态软件操作指南与数据库连接.docx

上传人:b****8 文档编号:9258860 上传时间:2023-05-17 格式:DOCX 页数:14 大小:176.09KB
下载 相关 举报
组态软件操作指南与数据库连接.docx_第1页
第1页 / 共14页
组态软件操作指南与数据库连接.docx_第2页
第2页 / 共14页
组态软件操作指南与数据库连接.docx_第3页
第3页 / 共14页
组态软件操作指南与数据库连接.docx_第4页
第4页 / 共14页
组态软件操作指南与数据库连接.docx_第5页
第5页 / 共14页
组态软件操作指南与数据库连接.docx_第6页
第6页 / 共14页
组态软件操作指南与数据库连接.docx_第7页
第7页 / 共14页
组态软件操作指南与数据库连接.docx_第8页
第8页 / 共14页
组态软件操作指南与数据库连接.docx_第9页
第9页 / 共14页
组态软件操作指南与数据库连接.docx_第10页
第10页 / 共14页
组态软件操作指南与数据库连接.docx_第11页
第11页 / 共14页
组态软件操作指南与数据库连接.docx_第12页
第12页 / 共14页
组态软件操作指南与数据库连接.docx_第13页
第13页 / 共14页
组态软件操作指南与数据库连接.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

组态软件操作指南与数据库连接.docx

《组态软件操作指南与数据库连接.docx》由会员分享,可在线阅读,更多相关《组态软件操作指南与数据库连接.docx(14页珍藏版)》请在冰点文库上搜索。

组态软件操作指南与数据库连接.docx

组态软件操作指南与数据库连接

第八章与数据库连接

本章容

&创建数据源及数据库

&创建表格模板

&创建记录体

&对数据库的操作

&数据集函数在关系库中的应用

概述

本章我们将讲解如何将阀门的状态变化记录到数据库中并进行查询。

数据库我们选择Access数据库,记录的容包括:

日期、时间、阀门描述、阀门状态四个字段。

我们利用KingSCADA的SQL访问功能来实现。

KingSCADASQL访问功能实现KingSCADA和其他外部数据库之间的数据传输。

提供2种访问方式:

一种是记录体的方式,即变量和数据库表中的字段建立绑定关系;一种是数据集方式。

记录体方式就是通过记录体配置项,实现把数据库里面的字段和KingSCADA的变量建立绑定关系。

绑定后,可以通过SQL插入或更新函数将绑定变量插入或更新到数据库的对应字段中;也可以通过SQL查询函数将数据库中对应字段数据查询并保存到绑定变量中,实现KingSCADA和关系数据库的数据交互。

记录体方式只能在KingSCADA服务器端应用。

数据集方式就是通过KingSCADA提供的一系列数据集函数,执行标准SQL语句,实现KingSCADA与关系数据库之间的增、查、删、改等所有数据交互功能,尤其可以通过数据集函数,实现从数据库查询出符合SQL语句的数据集合,并在报表、曲线中进行批量数据展示。

数据集方式支持在KingSCADA服务器端、C/S客户端、WEB上使用。

在这里建议采用数据集方式,更加方便、灵活。

下面具体介绍2种方式的具体使用

第一节记录体方式在关系数据库中的应用(仅参考)

一、创建数据源及数据库

以KingSCADA带的DEMO工程中的mine.mdb数据库为例,首先将mine.mdb文件从DEMO工程中拷贝到我们新建的这个培训工程中。

然后,用Windows控制面板中自带的ODBCDataSources(32bit)管理工具新建一个MicrosoftAccessDriver(*.mdb)驱动的数据源,名为:

mine,然后配置该数据源,指向刚才拷贝过来的Access数据库(即mydb.mdb),如图8-1所示:

图8-1ODBC数据源的建立

二、创建表及记录体

创建表

用ACCESS打开mine.mdb数据库,在库中新建表“KingTable”,在表中建立三个字段日期时间、液位、温度,如图8-2所示:

图8-2在mine数据库中创建表

日期时间字段为日期时间类型。

液位和温度字段为数字类型,并都设置为单精度浮点型。

创建记录体

记录体是建立数据库中数据表的字段和KingSCADA的变量之间的联系。

第一步:

在KingSCADA工程设计器中选择“通用数据源”→“记录体”选型,在右侧容显示区中单击“新建”按钮,弹出创建记录体对话框,对话框设置如下:

图8-3创建记录体对话框

记录体中定义了Access数据库数据表字段与SCADA变量之间的对应关系,对应关系如下所示:

Access数据库表格字段

SCADA变量

日期时间

\\local\日期时间

液位

\\local\liquid_level

温度

\\local\temperature

即:

将KingSCADA中\\local\日期时间变量值写到Access数据库表格日期时间字段中;将\\local\liquid_level值写到Access数据库表格液位字段中;将\\local\temperature值写到Access数据库表格温度字段中。

\\local\日期时间=\\local\$Date+“”+\\local\$Time;,表示计算机系统当前的日期和时间。

第二步:

单击“确认”按钮完成记录体的创建。

注:

记录体中的字段名称必须与表格模板中的字段名称保持一致,记录体中字段对应的变量数据类型必须和表格模板中相同字段对应的数据类型相同。

三、对数据库的操作

1、连接数据库

第一步:

在KingSCADA工程设计器的数据词典中定义一个存整型变量

变量名:

DeviceID

变量类型:

存整型

第二步:

在画面编辑器中新建一画面,名称为:

数据库操作,并在画面上添加一按钮,按钮属性设置如下:

按钮文本:

数据库连接

“按钮左键弹起”动画设置如下:

图8-4数据连接脚本程序

上述脚本的作用是使SCADA与mine数据源建立了连接(即与mydb.mdb数据库建立了连接)。

在实际工程中将此命令写入:

树型目录→脚本→系统脚本→应用程序脚本→应用程序启动时,即系统开始运行就连接到数据库上。

2、断开数据库的连接

在数据库操作画面中添加一按钮,按钮属性设置如下:

按钮文本:

断开连接

“按钮左键弹起”动画设置如下:

图8-5断开数据库连接脚本程序

在实际应用中将此命令写入:

树型目录→脚本→应用程序脚本→应用程序关闭时,即系统退出后断开与数据库的连接。

4、插入记录

我们要将液位和温度定时记录到数据库中,因此利用定时器脚本编写脚本程序即可。

新建一个定时器脚本“定时存储”,每60000毫秒执行一次,编写脚本程序如下:

图8-7插入记录脚本程序

上述脚本的作用是每分钟在数据表KingTable中插入一条新的记录。

5、查询记录

用户如果需要将数据库中的数据调入到KingSCADA中来显示,需要另外建立一个记录体,此记录体的字段名称要和数据库表格中的字段名称一致,连接的变量类型与数据库中字段的类型一致,操作过程如下:

第一步:

在KingSCADA工程设计器的数据词典中定义三个存变量:

a、变量名:

日期时间记录

变量类型:

存字符串

b、变量名:

液位记录

变量类型:

存实型

c、变量名:

温度记录

变量类型:

存实型

第二步:

在数据库操作画面上添加三个文本框,在文本框的“字符串输出”动画中分别连接变量日期时间记录、液位记录、温度记录,用来显示查询出来的结果。

第三步:

在KingSCADA的通用数据源中定义一个记录体,记录体窗口属性设置如图8-8所示:

图8-8记录体属性设置对话框

第四步:

在画面中添加一按钮,按钮属性设置如下:

按钮文本:

全部查询

“按钮左键按下”动画设置如下:

图8-9记录查询脚本程序

此脚本的作用是:

以记录体Bind2中定义的格式返回KingTable表格中第一条数据记录。

进入运行系统,运行此画面,单击“全部查询”按钮数据库中的数据记录显示在文本框中。

第五步:

在画面上添加四个按钮,按钮属性设置如下:

a、按钮文本:

第一条记录

“按钮左键按下”动画:

SQLFirst(DeviceID);

b、按钮文本:

下一条记录

“按钮左键按下”动画:

SQLNext(DeviceID);

c、按钮文本:

上一条记录

“按钮左键按下”动画:

SQLPrev(DeviceID);

d、按钮文本:

最后一条记录

“按钮左键按下”动画:

SQLLast(DeviceID);

上述脚本的作用分别为查询数据中第一条记录、下一条记录、上一条记录和最后一条记录从而达到了数据查询的目的。

第二节数据集函数在关系库中的应用(重点推荐)

KingSCADA提供一系列数据集函数,通过数据集函数使用标准SQL语句可以与关系数据库进行数据交互,下面举例说明通过数据集函数实现对关系数据库进行简单的增、查、删、改操作。

以上面的mine.mdb数据库中的KingTable表为例进行实例说明。

1、保存数据到关系库

假如系统要求每10秒钟将液位和温度记录到数据库中,那么我们可以在定时器脚本中实现。

新建一个定时器脚本“定时存储”,每10000毫秒执行一次,编写脚本程序如下:

图8-10插入记录脚本程序

详细脚本如下,作用是每分钟在数据表KingTable中插入一条新的记录。

stringConnectStr,SqlCommand;

//通过OLEDB方式连接ACCESS数据库的连接字符串

ConnectStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:

\培训\培训工程\培训工程\mine.mdb;PersistSecurityInfo=False";

//将系统时间日期和时间合成一个包含日期和时间的字符串

\\local\日期时间记录=\\local\$Date+""+\\local\$Time;

//SQL语句,将日期时间、液位、温度的数据值插入数据到数据库的KingTable表中

SqlCommand="insertintoKingTableValues('"+\\local\日期时间记录+"','"+\\local\liquid_level+"','"+\\local\temperature+"')";

//数据集函数,执行SQL语句

KDBExecuteStatement(ConnectStr,SqlCommand);

2、查询数据并显示到报表

在工程中新建画面“数据集函数与关系库”,在画面上添加一个“查询”按钮,一个报表控件、两个日期时间控件,如下图所示。

图8-11数据集函数与关系库画面

在查询脚本里写如下脚本:

stringConnectStr;

stringSqlStr;

//通过OLEDB方式连接ACCESS数据库的连接字符串

ConnectStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:

\培训\培训工程\培训工程\mine.mdb;PersistSecurityInfo=False";

//起始时间和结束时间从日期时间控件获取

stringStartTime,EndTime;

StartTime=UIDateTime1.Value;

EndTime=UIDateTime2.Value;

SqlStr="select日期时间,液位,温度fromKingTablewhere日期时间>=#"+StartTime+"#"+"and日期时间<=#"+EndTime+"#";

Trace("SqlStr"+SqlStr);

//数据集函数,执行SQL语句

KDBGetDataset("Dataset",ConnectStr,SqlStr);

Report1.SetDataset2("Dataset",2,1);//将查询的结果显示在报表里

 

3、删除数据库中数据

在画面“数据集函数与关系库”上添加一个“删除”按钮,在按钮脚本里写如下脚本:

stringConnectStr;

stringSqlStr;

//通过OLEDB方式连接ACCESS数据库的连接字符串

ConnectStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:

\培训\培训工程\培训工程\mine.mdb;PersistSecurityInfo=False";

//起始时间和结束时间从日期时间控件获取

stringStartTime,EndTime;

StartTime=UIDateTime1.Value;

EndTime=UIDateTime2.Value;

SqlStr="delete*fromKingTablewhere日期时间>=#"+StartTime+"#"+"and日期时间<=#"+EndTime+"#";

//Trace("SqlStr"+SqlStr);

//数据集函数,执行SQL语句删除数据库中的记录

boola=KDBExecuteStatement(ConnectStr,SqlStr);

//Trace("a="+a);

4、更改数据库中数据

在画面“数据集函数与关系库”上添加一个“修改”按钮,在按钮脚本里写如下脚本:

stringConnectStr;

stringSqlStr;

//通过OLEDB方式连接ACCESS数据库的连接字符串

ConnectStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:

\培训\培训工程\培训工程\mine.mdb;PersistSecurityInfo=False";

//将温度大于等于0的数据改为“\\local\temperature”变量实际值

SqlStr="updateKingTableset温度="+\\local\temperature+"where温度>=0";

//Trace("SqlStr"+SqlStr);

//数据集函数,执行SQL语句,将温度大于等于0的数据改为“\\local\temperature”变量实际值

boola=KDBExecuteStatement(ConnectStr,SqlStr);

 

图8-12数据集函数与关系库画面

注意:

KingSCADA和数据库之间是同步方式,尽量保证数据库网络通畅性,防止阻塞,造成KingSCADA卡顿。

 

课后练习:

1、熟悉KingSCADA其它数据集函数,并动手练习这些函数的使用。

2、将其他阀门、水泵的状态变化存储到数据库中。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2