您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 基于组态王软件下的SQL数据库技术
1基于组态王软件下的SQL数据库技术SQLDatabaseTechnologybasedonConfigurationKingSoftware孙明革朱喜林Sun,MinggeZhu,Xilin摘要:本文以具体实例详细地说明了组态王软件中SQL数据库技术的要点,给出了在组态王软件中利用该技术设计工控系统关于数据管理方面的一般方法和步骤,具体解决了工控系统中涉及数据库方面的技术问题。该技术具有功能强,使用方便,适用范围广等特点。关键词:数据库技术;SQL;组态王;工控Abstract:TheingredientsofSQLdatabasetechnologyinConfigurationKingSoftwareareexplainedindetailswithconcreteexamplesinthisarticle.Thewaysandstepsofdesigningindustrialcontrolsystemondatamanagementareshownwithutilizationofthetechnology,whichhassolvedthetechnicalproblemsinvolvedindatabaseinindustrialcontrolsystem.Thetechnologyisofgreatfunction,easyutilizationandwideapplication.Keywords:Databasetechnology;SQL;Configurationking;Industrialcontrol中图分类号:TP311.131文献标识码:B1前言步入二十一世纪计算机技术已经日趋完善,数据库技术也渗透到日常生活的各个领域中,在工业控制领域中专用DCS软件中虽然集成比较完善的数据库技术,但由于该DCS软件只适用于与该软件相配套的硬件系统中,所以虽然它的数据库技术比较完善,但不能得到普及。随着国内外通用组态软件的日益普及和完善,并且适用于工业控制领域的数据库技术逐渐地嵌入到通用组态软件中,并慢慢地在该领域中崭露头角,使组态软件的功能更强大,适用范围更广。而SQL技术又是数据库技术的核心,通用组态软件是否集成SQL技术成为衡量该软件优劣的重要因素。而国内流行的组态王软件下在这方面则是佼佼者,它集成的SQL技术功能最强,使用最方便,适用范围最广。本文以具体实例阐述了组态王软件下所涉及的SQL数据库技术。2概述【2】2.1组态王支持的数据库组态王SQL访问功能能够实现组态王和其他ODBC数据库之间的数据传输。最新版本的组态王软件支持的ODBC数据库有Oracle6数据库、Oracle7.2数据库、SyBase或MsSQLServer数据库、DBase数据库和MsAccess数据库,其中MsAccess数据库以简单、实时性好、易学等特点,在工控领域中应用比较广泛。2.2组态王SQL访问管理器组态王SQL访问管理器用来建立数据库列和组态王变量之间的联系。通过表格模板在数据库中创建表格;通过记录体建立数据库表格列和组态王之间的联系,允许组态王通过记录体直接操纵数据库中的数据。2.3技术关键这里以MsAccess为例说明,首先利用MsAccess软件建立一个空数据库,然后在系统ODBC数据源中添加该数据库,接着通过组态王SQL访问管理器建立与该空数据库的联系,在组态王中的适当位置调用SQL函数实现各种操作。这些函数用来创建表格,插入、删除记录,编辑已有的表格,清空、删除表格,查询记录等操作。3基于组态王下的工控系统SQL技术的具体实现【2】下面以大庆油田采油六厂联合站无线数据采集系统为例详细地说明使用组态王SQL技术进行工控方面数据库设计的步骤和技术要点。2显示器主站计算机网络子站1子站2子站3子站4子站5子站n图1系统整体结构示意图3.1系统简介本系统整体结构如图1所示,主站与子站之间利用无线数传机进行通讯,这样可以把所有子站的运行参数传送到主站供厂部浏览,同时其他部门也可以共享这些数据。系统采用组态王6.5软件进行组态设计,由于这些参数中的某些参数极其重要,例如某管线原油流量累计量、某管线天然气流量累计量等,需要对其进行存储,以供日后进行班报、日报、月报和年报查询之需。这里借助于组态王SQL技术来实现这些复杂的数据库操作。3.2具体步骤这里以大庆油田六厂喇2-1中转站(子站)的一号原油流量每小时累计量的数据管理为例来说明。3.2.1建立数据源利用MsAccess软件建立一个空数据库daqing.mdb,并在ODBC数据源管理器中设置系统DSN为该数据库,数据源名为“大庆油田”即可。3.2.2定义数据词典在组态王的数据词典中建立变量来实现组态王变量与数据库列的联系。具体见表1。表1实例所需的主要组态王变量表变量名称变量类型变量作用flowSECONDFLOW返回日期返回时间返回秒数DeviceIDIO实数内存整型内存实数内存字符串内存字符串内存整型内存整数用来表示喇2-1一号原油流量每小时累计量,当前时间转换成秒数(基于1970年1月1日零点)用来和flow建立联系,从数据库中得到数据从数据库得到的日期从数据库得到的时间从数据库得到的秒数用来保存SQLConnect()函数为每个数据库连接分配的一个数值3.2.3建立表格模板和记录体⒈建立表格模板利用“SQL访问管理器\表格模板”创建一个表格模板table,该表格结构具体见表2。注意:列名的排列顺序一定要与daqing.mdb设计的表格结构字段顺序相同。表2表格模板table结构表列名数据类型长度日期时间SENCONDFLOW定长字符串定长字符串内存整数浮点型505011⒉建立记录体利用“SQL访问管理器\记录体”建立相应的记录体。由于需要把数据写到数据库中,并且需要能够按条件查询数据库中的数据,所以需要建立两个记录体。记录体bind1结构具3体见表3,记录体bind2结构具体见表4。表3记录体bind1结构表列名组态王变量FLOW日期时间\\本站点\FLOW\\本站点\$日期\\本站点\$时间表4记录体bind2结构表列名组态王变量Flow日期时间SECOND\\本站点\flow\\本站点\返回日期\\本站点\返回时间\\本站点\返回秒数3.2.4画面设计这里只介绍与数据库相关的画面设计。这样的画面一般包括“数据库操作画面”和“数据库查询结果显示画面”等。操作画面中包括一般“连接数据库”、“断开数据库”、“条件删除记录”、“复杂条件查询”、“删除表格”等操作。显示画面一般需要借助组态王的报表控件进行设计,这种控件实际上就是Excel表格,功能十分强大,操作又很简便,可以对SQL函数得到的查询结果进行各种复杂的计算,形成用户满意的表格,并能实现打印等操作。上述功能的实现在“编写命令语言”中具体说明。3.2.5编写命令语言⑴连接数据库实现语句:SQLConnect(DeviceID,dsn=大庆油田;uid=;pwd=);说明:一般可以需要在两个地方使用这条语句,一是在“应用程序命令语言”的启动时使用,二是在“数据库操作画面”中“连接数据库”按钮的动画连接中“弹起时命令语言”中使用。⑵断开数据库实现语句:SQLDisconnect(DeviceID);//一般利用按钮执行该语句⑶创建新表实现语句:SQLCreateTable(DeviceID,Tableone,table1);//一般用按钮执行或者是程序首次运行时执行该语句⑷插入记录实现语句:SQLInsert(DeviceID,喇2_1,bind1);//一般利用定时事件发生时执行该语句⑸条件删除记录实现语句:SQLDelete(DeviceID,“喇2_1”,“日期==2005-8-17”)//一般利用按钮执行该语句⑹复杂条件查询实现语句://一般利用按钮执行下列语句stringchaxun;chaxun=SECOND=1124251200andSECOND=1124337600;4SQLSelect(DeviceID,喇2_1,bind2,chaxun,SECOND);ResultCode=SQLFirst(DeviceID);if(ResultCode==100){buf=没有符合条件的记录;}else{buf=找到了记录;while(ResultCode!=100){sum=sum+\\本站点\FLOW;ResultCode=SQLNext(DeviceID);}}程序功能:本例只是对2005年8月17日12点到2005年8月18日12点之间存储的记录的每小时流量进行累计。程序中所涉及的变量和常量说明具体见表5。表5复杂查询程序中变量和常量说明表组态王变量作用bufsumResultCode11242512001124337600表示是否找到符合条件的记录一号原油量的累计和SQL语句执行后的返回值表示2005年8月17日12点表示2005年8月18日12点注:使用常量秒数来表示时间是因为组态王不支持日期和时间类型变量。⑺删除所有记录实现语句:SQLClearTable(DeviceID,喇2_1);//一般利用按钮执行该语句⑻删除表格实现语句:SQLDropTable(DeviceID,喇2_1);//一般利用按钮执行该语句⑼报表按照用户的要求,用适合的SQL语句找到符合条件的记录,然后用报表控件完成相应的报表设计,与报表相关的函数如下:ReportPrintSetup(报表文件名);//打印设置ReportPageSetup(报表文件名);//打印预览ReportPrint(报表文件名);//自动打印报表ReportPrint2(报表文件名,参数);//以自动或手动方式打印报表4组态王SQL技术与Synall2000软件的比较【3】组态王SQL技术的最大优点是所支持的数据库种类多,并且只需要利用其它数据库软件建立一个空库后,就可以不再需要这些软件的支持了,而利用丰富的SQL函数独自实现数据库的各种操作。与国内比较流行的Synall2000组态软件相比较,Synall2000的SQL函数相对来说比较少,它只能利用相应的SQL函数把数据写到数据库中(一般只能是MsAccess数据库),或者简单地读和更新数据库中的内容,最大缺点是不能进行复杂的查询,要进行其它复杂的数据库操作只能是借助MsAccess数据库软件来实现,然后通过Synall2000的RunCommand5函数来调用MsAccess软件,所以使用起来很繁琐,占用系统资源比较多,因此容易出错,而且不易维护。现在最新版本的组态王软件常用SQL函数41个,而Syanll2000支持的SQL函数只有3个。5结束语笔者采用组态王6.5软件设计完成的大庆油田采油六厂联合站无线数据采集系统已经运行了将近一年的时间,运行稳定,操作方便,其中利用组态王内嵌的数据库技术完全满足了用户对数据管理的要求。本文给出了利用组态王SQL技术设计工控系统关于数据管理方面的一般方法和步骤,希望本文能给读者一些启示和帮助。参考文献:[1]MicrosoftAccess数据库在工业控制中的应用孙明革等吉林化工学院学报2003年第一期[2]Kingviewversion6.0实用手册北京亚控科技发展有限公司2001.3[3]Synall2000用户手册太力信息产业有限公司2000.3作者简介:⒈孙明革,男,1971,吉林榆树人,副教授,吉林大学机械电子工程2004级在读博士,1993年于吉林化工学院毕业并留校任教,主要从事计算机应用和工业控制方面的研究工作。通讯地址:吉林市承德街45号117信箱132022⒉朱喜林,男,1959,吉林长春人,教授,吉林大学博士生导师,主要从事机电传动与自动化方面的研究工作。Resumeofthewriter:⒈SunMingge,male,1971,Yushu,Jilin,Associateprofessor,theon-readingdoctorof2004inmachinery-electronicsengineeringd
本文标题:基于组态王软件下的SQL数据库技术
链接地址:https://www.777doc.com/doc-5005205 .html