组态软件操作指南与数据库连接_第1页
组态软件操作指南与数据库连接_第2页
组态软件操作指南与数据库连接_第3页
组态软件操作指南与数据库连接_第4页
组态软件操作指南与数据库连接_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章与数据库连接-100 -第八章与数据库连接本章内容创建数据源及数据库创建表格模板创建记录体对数据库的操作数据集函数在关系库中的应用概述本章我们将讲解如何将阀门的状态变化记录到数据库中并进行查询。数据库我们选择Access数据库,记录的内容包括:日期、时间、阀门描述、阀门状态四个字段。我们利用KingSCADA的SQL访问功能来实现。KingSCADA SQL访问功能实现 KingSCADA和其他外部数据库之间的数据传输。提供2种访问方式:一种是记录体的方式,即变量和数据库表中的字段建立绑定关系;一种是数据集方式。记录体方式就是通过记录体配置项,实现把数据库里面的字段和KingSCADA的

2、变量建立绑定关系。绑定后,可以通过 SQL插入或更新函数将绑定变量插入或更新到数据库的对应字段中;也可以通过SQL查询函数将数据库中对应字段数据查询并保存到绑定变量中,实现KingSCADA和关系数据库的数据交互。记录体方式只能在 KingSCADA服务器端应用。数据集方式就是通过 KingSCADA提供的一系列数据集函数,执行标准SQL语句,实现KingSCADA与关系数据库之间的增、查、删、改等所有数据交互功能,尤其可以通过数据集函数,实现从数据库内查询出符合SQL语句的数据集合,并在报表、曲线中进行批量数据展示。数据集方式支持在 KingSCADA服 务器端、C/S客户端、WEB上使用。

3、在这里建议采用数据集方式,更加方便、灵活。下面具体介绍2种方式的具体使用第一节记录体方式在关系数据库中的应用(仅参考)一、创建数据源及数据库以KingSCADA 带的DEMO 工程中的 mine.mdb数据库为例,首先将 mine.mdb文件从 DEMO 工程中 拷贝到我们新建的这个培训工程中。然后,用 Windows控制面板中自带的 ODBCData Sources (32bit) 管理工具新建一个 Microsoft Access Driver(*.mdb) 驱动的数据源,名为: mine,然后配置该数据源,指向刚才拷贝过来的Access数据库(即mydb.mdb),如图 8-1 所示:图

4、8-1ODBC数据源的建立、创建表及记录体创建表|用ACCESS打开mine.mdb数据库,在库中新建表“ KingTable ”,在表中建立三个字段日期时间、液 位、温度,如图8-2所示:!安全警告部分活动内容已被禁用;呼1ttstP=chir Iuxr期位度日液温字段名称数据类型日期/时间Id数字料.字图8-2在mine数据库中创建表日期时间字段为日期时间类型。液位和温度字段为数字类型,并都设置为单精度浮点型。创建记录体记录体是建立数据库中数据表的字段和KingSCADA的变量之间的联系。第一步:在KingSCADA工程设计器中选择“通用数据源” 一 “记录体”选型,在右侧内容显示区中 单

5、击“新建”按钮,弹出创建记录体对话框,对话框设置如下:图8-3创建记录体对话框记录体中定义了 Access数据库数据表字段与 SCADA变量之间的对应关系,对应关系如下所示:Access数据库表格子段SCADA变量日期时间日期时间液位localliquid_level温度localtemperature即:将KingSCADA 中 日期时间变量值写到 Access数据库表格日期时间字段中;将 localliquid_level值写到 Access数据库表格液位字段中;将localtemperature值写到 Access数据库表格温度字段中。日期时间=local$Date+ '

6、6;'+local$Time;,表示计算机系统当前的日期和时间。第二步:单击“确认”按钮完成记录体的创建。注:记录体中的字段名称必须与表格模板中的字段名称保持一致,记录体中字段对应的变量数据类型 必须和表格模板中相同字段对应的数据类型相同。三、对数据库的操作1、连接数据库第一步:在KingSCADA工程设计器的数据词典中定义一个内存整型变量变量名:DeviceID变量类型:内存整型第二步:在画面编辑器中新建一画面,名称为:数据库操作,并在画面上添加一按钮,按钮属性设置如下:按钮文本:数据库连接“按钮左键弹起”动画链接设置如下:图8-4数据连接脚本程序上述脚本的作用是使 SCADA与mi

7、ne数据源建立了连接(即与 mydb.mdb数据库建立了连接)。在实际工程中将此命令写入:树型目录一脚本 一系统脚本 一应用程序脚本一应用程序启动时,即系统开始运行就连接到数据库上。2、断开数据库的连接在数据库操作画面中添加一按钮,按钮属性设置如下:按钮文本:断开连接“按钮左键弹起”动画链接设置如下:图8-5断开数据库连接脚本程序在实际应用中将此命令写入:树型目录一脚本一应用程序脚本一应用程序关闭时,即系统退出后断开与数据库的连接。4、插入记录我们要将液位和温度定时记录到数据库中,因此利用定时器脚本编写脚本程序即可。新建一个定时器脚本“定时存储”,每60000毫秒执行一次,编写脚本程序如下:图

8、8-7插入记录脚本程序上述脚本的作用是每分钟在数据表KingTable中插入一条新的记录。5、查询记录用户如果需要将数据库中的数据调入到KingSCADA中来显示,需要另外建立一个记录体,此记录体的字段名称要和数据库表格中的字段名称一致,连接的变量类型与数据库中字段的类型一致,操作过程如 下:第一步:在KingSCADA工程设计器的数据词典中定义三个内存变量:a、变量名:日期时间记录变量类型:内存字符串b、变量名:液位记录变量类型:内存实型c、变量名:温度记录变量类型:内存实型第二步:在数据库操作画面上添加三个文本框,在文本框的“字符串输出”动画中分别连接变量日期 时间记录、液位记录、温度记录

9、,用来显示查询出来的结果。第三步:在KingSCADA的通用数据源中定义一个记录体,记录体窗口属性设置如图8-8所示:北京亚控科技发展有限公司第八章与数据库连接-102 -图8-8记录体属性设置对话框第四步:在画面中添加一按钮,按钮属性设置如下:按钮文本:全部查询“按钮左键按下”动画链接设置如下:E1动画,辑动融表:分口Butt1 I门卜左维揄下量并-富龄变1,机方宜画面轴酶Ln tea 57B版辑 SSMST Tr _ |LeftDr)rtn( lloat xjloar*象性里一 保两局变 司二®巾 s-Lii-ij.1 S(JLSelect(lacalXDeuiceID r &q

10、uot;KinqTdble'1, "Gind2" r口 | 重量 | | 幅 | 晒消 |图8-9记录查询脚本程序此脚本的作用是:以记录体Bind2中定义的格式返回 KingTable表格中第一条数据记录。进入运行系统,运行此画面,单击“全部查询”按钮数据库中的数据记录显示在文本框中。第五步:在画面上添加四个按钮,按钮属性设置如下:北京亚控科技发展有限公司第八章与数据库连接-106 -a、按钮文本:第一条记录“按钮左键按下”动画链接:SQLFirst( DevicelD );b、按钮文本:下一条记录“按钮左键按下”动画链接:SQLNext( DevicelD );c

11、、按钮文本:上一条记录“按钮左键按下”动画链接:SQLPrev( DevicelD );d、按钮文本:最后一条记录“按钮左键按下”动画链接:SQLLast( DevicelD );上述脚本的作用分别为查询数据中第一条记录、下一条记录、上一条记录和最后一条记录从而达到了 数据查询的目的。第二节 数据集函数在关系库中的应用(重点推荐)KingSCADA提供一系列数据集函数,通过数据集函数使用标准 SQL语句可以与关系数据库进行数据 交互,下面举例说明通过数据集函数实现对关系数据库进行简单的增、查、删、改操作。以上面的mine.mdb数据库中的KingTable表为例进行实例说明。1、保存数据到关系

12、库假如系统要求每10秒钟将液位和温度记录到数据库中,那么我们可以在定时器脚本中实现。新建一个定时器脚本“定时存储”,每10000毫秒执行一次,编写脚本程序如下:图8-10插入记录脚本程序详细脚本如下,作用是每分钟在数据表KingTable中插入一条新的记录。string ConnectStr ,SqlCommand ;/通过OLEDB方式连接ACCESS数据库的连接字符串ConnectStr =培训培训工程培训工程mine.mdb;Persist Security Info=False" ; /将系统时间日期和时间合成一个包含日期和时间的字符串local 日期时间记录local $D

13、ate+" " local $Time ;/ SQL语句,将日期时间、液位、温度的数据值插入数据到数据库的KingTable表中SqlCommand = "insert into KingTable Values。'local 日期时间记录+ "','" local liquid_level+"','" local temperature +"')";/数据集函数,执行SQL语句KDBExecuteStatement (ConnectStr , SqlCom

14、mand );2、查询数据并显示到报表在工程中新建画面“数据集函数与关系库”,在画面上添加一个“查询”按钮,一个报表控件、两个日期时间控件,如下图所示。图8-11数据集函数与关系库画面在查询脚本里写如下脚本:string ConnectStr ;string SqlStr ;/通过OLEDB方式连接ACCESS数据库的连接字符串ConnectStr =培训培训工程培训工程mine.mdb;Persist Security Info=False" ;/起始时间和结束时间从日期时间控件获取 string StartTime ,EndTime ;StartTime =UIDateTime1

15、 .Value;EndTime =UIDateTime2 .Value ;SqlStr = "select 日期时间,液位,温度 from KingTable where日期时间 >=#" + StartTime +"#" +" and 日期时间 <=#" + EndTime + "#"Trace ("SqlStr" +SqlStr);/数据集函数,执行SQL语句KDBGetDataset ("Dataset" , ConnectStr , SqlStr);Rep

16、ort1 .SetDataset2( "Dataset" ,2,1); / 将查询的结果显示在报表里3、删除数据库中数据在画面“数据集函数与关系库”上添加一个“删除”按钮,在按钮脚本里写如下脚本: string ConnectStr ;string SqlStr ;/通过OLEDB方式连接ACCESS数据库的连接字符串ConnectStr =培训培训工程培训工程mine.mdb;Persist Security Info=False" ;/起始时间和结束时间从日期时间控件获取string StartTime ,EndTime ;StartTime =UIDateT

17、ime1 .Value;EndTime =UIDateTime2 .Value ;SqlStr = "delete * from KingTable where 日期时间 >=#" +StartTime +"#"+" and 日期时间 <=#" +EndTime + "#"Trace("SqlStr"+SqlStr);/数据集函数,执行SQL语句删除数据库中的记录 bool a= KDBExecuteStatement (ConnectStr , SqlStr);Trace(&quo

18、t;a="+a);4、更改数据库中数据在画面“数据集函数与关系库”上添加一个“修改”按钮,在按钮脚本里写如下脚本: string ConnectStr ;string SqlStr ;/通过OLEDB方式连接ACCESS数据库的连接字符串ConnectStr =培训培训工程培训工程mine.mdb;Persist Security Info=False" ;/将温度大于等于0的数据改为localtemperature”变量实际值SqlStr = "update KingTable set 温度=" local temperature +" where 温度 >=0" Trace(&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论