当前位置: 首页 > 工业控制产品 > 自动化控制 > 工业软件 > 组态软件

类型分类:
科普知识
数据分类:
组态软件

组态王数据库访问在PLC控制系统中的应用

发布日期:2022-04-22 点击率:50 品牌:组态王_Kingview

    引言 

  人机界面组态技术广泛应用于以ipc(工控机)为核心的计算机控制系统中。组态软件通过plc采集现场的数据,构造人机界面以动画显示、趋势曲线以及数据报表等方式提供plc控制系统现场的运行状况。操作人员通过对数据的分析,能够更好地对控制过程进行优化。

  对采集到的大量分散型数据进行分析时,通过报表输出的方式显然存在着不够灵活、实时性差以及难以进一步处理的问题。

  作者提出一种解决的方法,即将数据采集与数据处理分开,组态王具有odbc(ms开放式数据库互连标准)数据库访问功能,一方面在ipc中建立相应的数据 库,由组态王将采集到的数据动态写入库中保存,另一方面操作人员可脱离控制系统随时随地利用ms accessvisual foxpro等数据库强大的功能实现数据的处理。

  组态王数据库访问

  组态王数据库访问功能实现组态王与其他odbc数据库之间的数据传输。它支持的数据库主要有oracle6oracle7.2sybase或 sqlserver数据库、dbase数据库及microsoft access数据库。先在系统odbc数据源中添加数据库,后通过组态王sql访问管理器和sql函数实现连接、断开数据库,写入、查询数据等各种操作。

  组态王sql访问管理器包括表格模板和记录体两部分。表格模板用来定义表格的结构,包括字段名称,字段类型等。记录体用来连接表格的列和组态王数据词典中的变量。当执行sql函数sqlcreattable()时,使用的表格模板将定义创建的表格结构;当执行sqlinsert()、 sqlselect();update()时,根据记录体中的定义使组态王中的变量和数据表格中的变量相关联。

  组态王sql函数

  组态王使用sql(结构化查询语言)函数和数据库交换信息。这些函数是组态王标准函数的扩充,可以在组态王的任一种命令语言中使用,这些函数允许操作人员 选择、修改、插入、删除数据库表中的数据。sql主要函数如附表所示。

  附表 sql主要函数

  除sqlnumrows()外,所有sql函数都返回结果代码,如果代码不为零,表示调用失败,结果代码可以通过sqlerrormsg()获得。

  组态王与odbc数据库连接

  4.1 odbc

  odbc(open database connectivity)称为开放式数据库互连,目的是实现异构数据库的互联。在此之前,由于各种数据库产品都有自己独立的编程语言和文件格式,要想实现异构数据库之间的数据共享和访问,就必须为特定的应用单独编写程序。这种临时编写的程序不具备丝毫的通用性,当数据库的结构字段等属性发生变化时,原来 的程序就不可以再次使用了。accesssql serversybase等数据库都支持odbc

  一个完整的odbc由下列几个部件组成:

  (1) 应用程序(application);

  (2) dbc管理器(administrator)。该程序位于WINOOWs控制面板(control panel)32odbc内,其主要任务是管理安装的odbc驱动程序和管理数据源;

  (3) 驱动程序管理(driver manager)。驱动程序管理器包含在odbc32.dll中,对用户是透明的。其任务是管理odbc驱动程序,是odbc中最重要的部件;

  (4) odbc api函数;

  (5) odbc驱动程序,提供了odbc和数据库之间的接口;

  (6) 数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。

  4.2 数据源的建立

 

  首先在ipc上建立一个数据库存储和处理采集到的各种数据,名为“系统数据库.mdb”,然后在控制面板上的odbc 数据源控制台中定义一个数据源。这里选择microsoft access数据库。

  双击数据源选项,弹出odbc数据源管理器对话框,点击“系统 dsn”属性页,增加microsoft access driver(*.mdb)驱动程序,单击“完成”按钮,进入odbc microsoft access安装。输入数据源名称“mydata- source”选择相应数据库(“系统数据库.mdb),完成数据源定义。

  4.3 数据源与odbc数据库连接

  在组态王中定义变量,名为“deviceid”,变量类型:内存整型。建立plc设备,定义i/o变量,名为“plcdata”,负责采集数据。新建一个 名为“mybind”的记录体,增加字段“mydata与“plcdata”相关联。新建一个名为“mytemplate”的表格模板,增加字段“mytabledata定义相应变量类型、字段长度、索引类型。

  建立人机界面,通过sqlconnect()函数建立与“系统数据库.dbc”的连接。如 下:sqlconnect(device1id,dsn=mydatasource;uid=mine;pwd=);

  其中deviceid 用来保存sqlconnect()函数为每个数据库连接分配的一个数值, deviceid最多为255

  组态王与数据库连接成功后,通过组态王sql函数调用就可以在数据库中创建表格写入数据了。

  4.4 数据动态写入

  通过sqlcreatetable()函数按照表格模板“mytem- plate”结构新建数据库表格,名称为“采集数据表”,具体如下:

  sqlcreatetable(deviceid,“采集数据表”,mytemplate);

  通过sqlinsert函数根据记录体“mybind”向表中插入数据,具体如下:

  sqlinsert(device1id,“plc数据”,“mybind);

  该命令执行后,组态王运行系统会将从plc采集到的“plcdata”的当前值插入到“系统数据库”中表格“采集数据表”中“plc数据”字段的最后一条 记录中。

  系统设计案例

  plc选用三菱fx2n,通信参数设置为96波特率9600,偶校验,7为数据位,1位停止位。

  整个系统通过plc由传感器等设备获取现场数据,ipc安装组态王6.5,完成监控和数据采集,同时连接odbc数据库以表(dbf)的形式保存有用数 据,这样操作人员可以脱离控制系统,利用ms accessvisual foxpro等对数据进行处理。

  结束语

  由组态软件本身(sql函数)vcvb等高级语言处理采集到数据往往需要十分复杂的编程,而通过组态王数据库访问功能,只需简单编程就可将数据采集与数据处理分离,这样一方面极大地减轻了编程人员的工作量,另一方面数据处理人员可以脱离控制系统独立的完成数据分析处理,灵活性实用性大大增强。

下一篇: PLC、DCS、FCS三大控

上一篇: 索尔维全系列Solef?PV

推荐产品

更多