组态软件操作指南与数据库连接_第1页
组态软件操作指南与数据库连接_第2页
组态软件操作指南与数据库连接_第3页
组态软件操作指南与数据库连接_第4页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、第八章与数据库连接本章容创建数据源及数据库创建表格模板创建记录体对数据库的操作数据集函数在关系库中的应用概述本章我们将讲解如何将阀门的状态变化记录到数据库中并进行查询。数据库我们选择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)管理工具新建一个MicrosoftAccessDriver(*.mdb)驱动的数据源,名为:mine,然后配置该数据源,指向刚才拷贝过来的Access 数据库(即mydb.mdb ),如图 8-1 所示:Word 文档图

4、8-1ODBC 数据源的建立二、创建表及记录体创建表用 ACCESS 打开 mine.mdb 数据库,在库中新建表“ KingTable ”,在表中建立三个字段日期时间、液位、温度,如图 8-2 所示:图 8-2 在 mine 数据库中创建表日期时间字段为日期时间类型。液位和温度字段为数字类型,并都设置为单精度浮点型。创建记录体记录体是建立数据库中数据表的字段和KingSCADA的变量之间的联系。第一步: 在 KingSCADA工程设计器中选择“通用数据源”“记录体”选型,在右侧容显示区中单击“新建”按钮,弹出创建记录体对话框,对话框设置如下:Word 文档图 8-3 创建记录体对话框记录体中

5、定义了Access 数据库数据表字段与SCADA 变量之间的对应关系,对应关系如下所示:Access 数据库表格字段SCADA 变量日期时间日期时间液位localliquid_level温度localtemperature即 : 将KingSCADA中日 期 时 间 变 量值 写 到Access 数 据 库 表 格 日 期 时 间 字 段 中 ; 将localliquid_level值写到 Access 数据库表格液位字段中;将localtemperature 值写到 Access 数据库表格温度字段中。日期时间 =local$Date+ “”+local$Time; ,表示计算机系统当前的日

6、期和时间。第二步: 单击“确认”按钮完成记录体的创建。注:记录体中的字段名称必须与表格模板中的字段名称保持一致,记录体中字段对应的变量数据类型必须和表格模板中相同字段对应的数据类型相同。三、对数据库的操作1、连接数据库第一步: 在 KingSCADA工程设计器的数据词典中定义一个存整型变量变量名: DeviceIDWord 文档变量类型:存整型第二步: 在画面编辑器中新建一画面,名称为:数据库操作,并在画面上添加一按钮,按钮属性设置如下:按钮文本:数据库连接“按钮左键弹起”动画设置如下:图 8-4 数据连接脚本程序上述脚本的作用是使SCADA 与 mine 数据源建立了连接(即与mydb.md

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

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

9、出来的结果。第三步: 在 KingSCADA的通用数据源中定义一个记录体,记录体窗口属性设置如图8-8 所示:Word 文档图 8-8 记录体属性设置对话框第四步: 在画面中添加一按钮,按钮属性设置如下:按钮文本:全部查询“按钮左键按下”动画设置如下:图 8-9 记录查询脚本程序此脚本的作用是:以记录体Bind2 中定义的格式返回KingTable 表格中第一条数据记录。进入运行系统,运行此画面,单击“全部查询”按钮数据库中的数据记录显示在文本框中。第五步: 在画面上添加四个按钮,按钮属性设置如下:Word 文档a、按钮文本:第一条记录“按钮左键按下”动画:SQLFirst( DeviceID

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

11、上面的mine.mdb 数据库中的KingTable表为例进行实例说明。1、 保存数据到关系库假如系统要求每10 秒钟将液位和温度记录到数据库中,那么我们可以在定时器脚本中实现。新建一个定时器脚本“定时存储”,每 10000 毫秒执行一次,编写脚本程序如下:图 8-10 插入记录脚本程序详细脚本如下,作用是每分钟在数据表KingTable 中插入一条新的记录。string ConnectStr ,SqlCommand ;/通过 OLEDB 方式连接 ACCESS 数据库的连接字符串Word 文档ConnectStr =培训 培训工程培训工程mine.mdb;Persist Security I

12、nfo=False;/将系统时间日期和时间合成一个包含日期和时间的字符串local 日期时间记录local $Date + local $Time ;/SQL 语句,将日期时间、液位、温度的数据值插入数据到数据库的KingTable 表中SqlCommand=insert into KingTable Values(local 日期时间记录+,local liquid_level +,local temperature +);/数据集函数,执行SQL 语句KDBExecuteStatement(ConnectStr , SqlCommand);2、 查询数据并显示到报表在工程中新建画面“数据集

13、函数与关系库” ,在画面上添加一个“查询”按钮,一个报表控件、两个日期时间控件,如下图所示。图 8-11 数据集函数与关系库画面在查询脚本里写如下脚本:string ConnectStr ;string SqlStr ;/通过 OLEDB 方式连接 ACCESS 数据库的连接字符串ConnectStr =培训 培训工程培训工程Word 文档mine.mdb;Persist Security Info=False;/起始时间和结束时间从日期时间控件获取string StartTime ,EndTime ;StartTime =UIDateTime1.Value ;EndTime =UIDateTime2.Value ;SqlStr =select日期时间 ,液位 ,温度from KingTable where日期时间 =# +StartTime +# + and日期时间 =# +StartTime +# + and日期时间=0 ;Word 文档/Trace(SqlStr+SqlStr);/数据集函数,执行SQL 语句 ,将温度大于等于0 的数据改为 “localtemperat

温馨提示

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

评论

0/150

提交评论