首页信息与系统科学控制科学与技术工控组态软件及应用 11 第11章 组态王与数据库.pptx

11 第11章 组态王与数据库.pptx

页数:43页文件大小:1.24 MB来源: 工控组态软件及应用ppt课件

本课件讲解组态王与数据库的连接与操作:先说明实时数据库在监控系统中的作用及组态王支持的数据库类型,再介绍 SQL 访问管理器中表格模板与记录体的建立方法,随后完整演示 ODBC 数据源配置、连接数据库、创建表格、插入记录与查询记录四类操作,最后介绍 KVDBGrid 控件实现数据库查询与打印的方法。

第十一章组态王与数据库教学目标页,列出掌握SQL访问功能与数据库连接等要求
实时数据库作用页,将其比作飞机黑匣子并可在线存储多年工艺数据
11.1节支持的数据库类型页,列出Oracle、SyBase、SQL Server、dBase与MS Access
查看本课件的文字版(共 43 页,供检索与复制)

第1页:第11章组态王与数据库教学目标

第11章 组态王与数据库。【本章教学目标与要求】

  • 了解组态王支持的数据库的类型;
  • 掌握组态王 SQL 访问功能;
  • 熟悉 Access 数据库与组态王的连接;
  • 掌握组态王如何与通用数据库连接;
  • 熟悉组态王数据库指令的应用。

第2页:实时数据库的作用

组态监控系统中存在大量实时数据处理:控制工程师要通过由这些数据绘制的趋势曲线调节合适的控制参数;管理人员则要求将这些数据组织成表格以帮助进行节能、提高生产率、计算总产值、总能耗等各种高层次的综合分析。

实时数据库可用于测控过程的自动采集、存储和监视,可在线存储每个工艺过程点的多年数据,可以提供清晰、精确的操作情况画面,用户既可浏览工厂当前的生产情况,也可回顾过去的生产情况。可以说,实时数据库对于流程工厂来说就如同飞机上的“黑匣子”。

第3页:组态王支持的数据库类型

11.1 组态王支持的数据库类型。在计算机控制系统的设计中引入数据库技术,为实现实时作业软件的通用化奠定了基础。组态王支持的数据库主要有 Oracle、SyBase、MS SQL Server 数据库、dBase 数据库、MS Access 数据库等。

第4页:Oracle 数据库

1、Oracle 数据库:Oracle 是 Oracle 公司的数据库管理系统,是一个协调服务器和一个用于支持任务决定型应用程序的开放式数据库管理系统。Oracle 可以完全移植到 80 多个不同的硬件和操作系统平台上,从 PC 机到大型机和超级计算机,平台包括 UNIX、OS/2、Macintosh、Windows3.x、Windows 9x、Windows NT 和 Novell Netware 等。这种移植性允许自由选择数据库服务器平台以满足目前和将来的需要而又不影响已有的应用程序。

第5页:MS SQL Server 数据库

2、MS SQL Server 数据库:MS SQL Server 是 Microsoft 公司的一个高性能的关系数据库管理系统,完全运行于 Microsoft 的 Windows NT 操作系统下,提供了 OLE 技术和 Visual Basic 的集成。

MS SQL Server 数据库支持三种数据类型:

  • char 类型:包含定长的字符串,组态王对应变量需要是字符串,必须指定长度,SyBase 和 SQL Server 支持最长 255 个字符。
  • int 类型:对应组态王的整数变量,如果变量长度没有确定,长度将被设置成数据库默认值。
  • float 类型:对应组态王的实型变量,无需为这种变量设定长度。

第6页:Access 数据库

3、Access 数据库:Access 是 Office 软件包的成员之一,是一种关系型数据库软件。Access 擅长对数据进行处理,例如建立、排序、分类及汇总数据等操作。除此以外,美化数据输入界面的窗体、数据访问页,强调所见即所得的报表,再加上 Access 所擅长的宏与模块功能,奠定了 Access 在小型数据库系统的领先地位。

第7页:共用Jet数据库引擎

Access 和 Visual Basic 使用相同的数据库引擎,即 Microsoft Jet。由于 Access 和 Visual Basic 使用相同的数据库引擎,因此可以建立既包括 Access 组件又包括 Visual Basic 组件的应用程序,这样就提高了程序的稳定性,充分发挥了两者各自的优点。

第8页:Access支持的数据类型

SQL 访问管理器支持 Access 数据库的五种数据类型,有效的数据类型种类由你所使用的 ODBC 的版本所决定。其中 text 类型包括定长字符串,与组态王中的字符串变量相对应,必须设定参数,Access 数据库最多支持 255 个字符。

第9页:11.2 组态王SQL访问管理器

11.2 组态王 SQL 访问管理器。组态王 SQL 访问功能是为了实现组态王和其他 ODBC 数据库之间的数据传输,包括组态王 SQL 访问管理器、如何配置与各种数据库的连接、组态王与数据库连接实例和 SQL 函数的使用。

组态王 SQL 访问管理器用来建立数据库列和组态王变量之间的联系:通过表格模板在数据库中创建表格,表格模板信息存储在 SQL.DEF 文件中;通过记录体建立数据库表格列和组态王之间的联系,允许组态王通过记录体直接操纵数据库中的数据。

第10页:与外部数据库的数据传输

组态王可以与其他外部数据库(支持 ODBC 访问接口)进行数据传输。首先在系统 ODBC 数据源中添加数据库,然后通过组态王 SQL 访问管理器和 SQL 函数实现各种操作。组态王 SQL 函数可以在组态王的任意一种命令语言中调用,这些函数用来创建表格,插入、删除记录,编辑已有的表格,清空、删除表格,查询记录等操作。

第11页:SQL访问管理器的组成

组态王 SQL 访问管理器包括表格模板和记录体两部分功能。组态王提供集成的 SQL 访问管理,在组态王工程浏览器的左侧大纲项中可以看到 SQL 访问管理器。

第12页:创建表格模板

1、表格模板:选择工程浏览器左侧大纲项“SQL 访问管理器文件\表格模板”,在工程浏览器右侧用鼠标左键双击“新建”图标,弹出对话框,该对话框用于建立新的表格模板。

第13页:

第14页:表格模板的字段说明

  • 模板名称:表示表格模板的名称,长度不超过 32 个字节;
  • 字段名称:表示使用表格模板创建数据库表格中字段的名称,长度不超过 32 个字节;
  • 变量类型:表示表格模板创建数据库表格中字段的类型,点击下拉列表框按钮,其中有四种类型选择:整型、浮点型、定长字符串型、变长字符串型。

第15页:表格模板创建示例

例:创建一个表格模板 table1,定义三个字段:

  • salary(整型)
  • name(定长字符串型,字段长度:255)
  • age(整型)

第16页:创建记录体

2、记录体:记录体用来连接表格的列和组态王数据词典中的变量。选择工程浏览器左侧大纲项“SQL 访问管理器文件\记录体”,在工程浏览器右侧用鼠标左键双击“新建”图标,弹出对话框,该对话框用于建立新的记录体。

第17页:

第18页:记录体的字段说明

  • 记录体名:表示记录体的名称,长度不超过 32 个字节;
  • 字段名称:表示数据库表格中的列名,长度不超过 32 个字节;
  • 组态王变量:表示与数据库表格中指定列相关联的组态王变量名称。点击右边“?”按钮,弹出“选择变量名”窗口,可以从中选择组态王变量。

第19页:记录体创建示例

例:创建一个记录体,定义三个组态王变量:

  • record1(内存实型)
  • name(内存字符串型)
  • age(内存整型)

第20页:定义 ODBC 数据源

11.3 组态王 SQL 使用。

1、定义 ODBC 数据源:组态王 SQL 访问功能能够和其他外部数据库(支持 ODBC 访问接口)之间进行数据传输,实现数据传输必须在系统 ODBC 数据源中定义相应数据库。进入“控制面板”中的“管理工具”,用鼠标双击“数据源(ODBC)”选项,弹出“ODBC 数据源管理器”对话框。有些计算机的 ODBC 数据源是中文的,有些是英文的,视机器而定,但是两种的使用方法相同。

第21页:

第22页:用户DSN与系统DSN的区别

“ODBC 数据源管理器”对话框中前两个属性页分别是“用户 DSN”和“系统 DSN”。二者共同点是:在它们中定义的数据源都存储了如何与指定数据提供者再连接的信息,但二者又有所区别。在“用户 DSN”中定义的数据源只对当前用户可见,而且只能用于当前机器上;在“系统 DSN”中定义的数据源对当前机器上所有用户可见,包括 NT 服务。因此用户根据数据库使用的范围进行 ODBC 数据源的建立。

例:以 Microsoft Access 数据库为例建立 ODBC 数据源,在机器上 D 盘根目录下建立一个 Microsoft Access 数据库,名称为:SQL数据库.mdb。

第23页:创建 mine 数据源

双击“数据源(ODBC)”选项,弹出“ODBC 数据源管理器”对话框,点击“系统 DSN”属性页。单击右边“增加”按钮,弹出“创建新数据源”窗口,从列表中选择“Microsoft Access Driver(*.mdb)”驱动程序。单击“完成”按钮,进入“ODBC Microsoft Access 安装”对话框。在“数据源名”中输入数据源名称:mine;单击“选择”按钮,从计算机上选择数据库。点击“确定”按钮完成数据源定义。

第24页:

第25页:

第26页:

第27页:

第28页:组态王与Access数据库建立连接

使用组态王与数据库进行数据通讯,首先要建立它们之间的连接。例:组态王与 Microsoft Access 数据库建立连接。

在机器上 D 盘根目录下建立的“SQL数据库.mdb”数据库中建立一个名为 kingview 的表格。在组态王的数据词典里定义新变量,变量名称:DeviceID,变量类型:内存整型;然后在本机上的 ODBC 数据源中建立一个数据源,比如数据源名为 mine。

第29页:连接数据库的命令语言

在组态王工程浏览器中建立一个名为 BIND 的记录体,定义一个字段:name(对应组态王内存字符串变量 name)。

连接数据库:新建画面“组态王SQL数据库访问”,在画面上作一个按钮,按钮文本为“连接数据库”,在按钮“弹起时”动画连接中使用 SQLConnect() 函数和 SQLSelect() 函数建立与“mine”数据库进行连接:

SQLConnect( DeviceID, "dsn=mine;uid=;pwd=");
SQLSelect( DeviceID, "kingview", "BIND", "", "");

以上指令执行之后,使组态王与数据库建立了连接。

第30页:创建数据库表格

2、创建一个表格:组态王与数据库连接成功之后,可以通过组态王操作在数据库中创建表格。

例:创建数据库表格。在组态王中创建一个表格模板 table1,定义三个字段:salary(整型)、name(定长字符串型,字段长度:255)、age(整型)。将上节实例中画面上“连接数据库”按钮“弹起时”动画连接命令语言改为:

SQLConnect( DeviceID, "dsn=mine;uid=;pwd=");

创建数据库表格:在“组态王SQL数据库访问”画面上新作一个按钮,按钮文本为“创建表格”,在按钮“弹起时”动画连接中使用 SQLCreateTable() 函数创建表格。

第31页:SQLCreateTable 函数

SQLCreateTable( DeviceID, "KingTable", "table1" );

该命令用于以表格模板“table1”的格式在数据库中建立名为“KingTable”的表格。在自动生成的 KingTable 表格中,将生成三个字段,字段名称分别为 salary、name、age,每个字段的变量类型、变量长度及索引类型由表格模板“table1”中的定义所决定。

第32页:将数据存入数据库

3、将数据存入数据库。例:在组态王中创建一个记录体 BIND1,定义三个字段:salary(整型,对应组态王变量 record1)、name(定长字符串型,字段长度 255,对应组态王变量 name)、age(整型,对应组态王变量 age)。

在“组态王SQL数据库访问”画面上作一个按钮,按钮文本为“插入记录”,在按钮“弹起时”动画连接中使用 SQLInsert() 函数:

SQLInsert( DeviceID, "KingTable", "BIND1" );

该命令使用记录体 BIND1 中定义的连接在表格 KingTable 中插入一个新的记录。

第33页:插入记录的执行效果

该命令执行后,组态王运行系统会将变量 salary 的当前值插入到 Access 数据库表格“KingTable”中最后一条记录的“salary”字段中,同理变量 name、age 的当前值分别赋给最后一条记录的 name、age 字段。运行过程中可随时点击该按钮执行插入操作,在数据库中生成多条新的记录,将变量的实时值进行保存。

第34页:进行数据查询

4、进行数据查询。例:在组态王中定义变量用于返回数据库中的记录:“记录salary”(内存实型)、“记录name”(内存字符串型)、“记录age”(内存整型)。定义记录体 BIND2 用于定义查询时的连接。

在“组态王SQL数据库访问”画面上作一个按钮,按钮文本为“得到选择集”,在按钮“弹起时”动画连接中使用 SQL 连接函数,得到一个指定的选择集:

SQLSelect( DeviceID, "KingTable", "BIND2", "", "");

该命令选择表格 KingTable 中所有符合条件的记录,并以记录体 BIND2 中定义的连接返回选择集中的第一条记录,此处没有设定条件,将返回该表格中所有记录。

第35页:

第36页:查询结果与画面显示

执行该命令后,运行系统会把得到的选择集的第一条记录的“salary”字段的值赋给记录体 BIND2 中定义的与其连接的组态王变量“记录salary”,同样 KingTable 表格中的 name、age 字段的值分别赋给组态王变量记录name、记录age。

在画面上做三个“##”文本,分别定义值输出连接到变量“记录salary”、“记录name”和“记录age”。

第37页:记录浏览与断开连接按钮

在画面上做五个按钮:

  • 按钮文本“第一条记录”,“弹起时”动画连接:SQLFirst( DeviceID );
  • 按钮文本“下一条记录”,“弹起时”动画连接:SQLNext( DeviceID );
  • 按钮文本“上一条记录”,“弹起时”动画连接:SQLPrev( DeviceID );
  • 按钮文本“最后一条记录”,“弹起时”动画连接:SQLLast( DeviceID );
  • 按钮文本“断开连接”,“弹起时”动画连接:SQLDisconnect( DeviceID ); 该命令用于断开和数据库的连接。

切换到运行画面就能显示记录 salary、name 和 age 的值,同时也可显示它们的实时值进行比较。

第38页:

第39页:创建 KVDBGrid 控件

11.4 数据库控件 KVDBGrid。利用组态王提供的 KVDBGrid Class 控件可方便地实现数据库查询工作,操作过程如下:

  1. 单击工具箱中的“插入通用控件”工具或选择菜单命令“编辑/插入通用控件”,则弹出控件对话框,在控件对话框内选择“KVDBGrid Class”选项。
  2. 在画面中添加 KVDBGrid Class 控件,选中并双击控件,在弹出的动画连接属性对话框中设置控件名称为 Grid1。
  3. 选中控件并单击鼠标右键,在弹出的下拉菜单中执行“控件属性”命令,弹出属性对话框。

第40页:

第41页:选择数据源与查询字段

单击窗口中的“浏览”按钮,在弹出的数据源选择对话框中选择前面创建的 mine 数据源,此时与此数据源连接的数据库中所有的表格显示在“表名称”的下拉框中,从中选择欲查询的数据库表格(这里选择前面建立的 KingTable 表格),此表格中建立的所有字段将显示在“有效字段”中。利用“添加”和“删除”按钮选择所需要查询的字段名称,并可通过“标题”和“格式”编辑框对字段进行编辑。

第42页:KVDBGrid 的查询与打印

设置完毕后关闭此对话框,利用按钮的命令语言实现数据库查询和打印工作:

按钮一:查询全部记录,在按钮的弹起事件中输入:Grid1.FetchDate(); Grid1.FetchEnd();

按钮二:条件查询,在按钮的弹起事件中输入:

Long aa;
aa=grid1.QueryDialog();
if(aa==1){ grid1.FetchData(); grid1.FetchEnd(); }

按钮三:打印控件,在按钮的弹起事件中输入:grid1.print();

第43页:

顶部目录