自动化网论坛 » 组态软件技术论坛 » 利用ODBC访问WINCC的历史数据库 转到动态网页
--> 本页主题: 利用ODBC访问WINCC的历史数据库 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

宋小白


级别: 论坛版主
精华: 0
发帖: 123
威望: 124 点
金钱: 1230 Gold
贡献值: 50 点
在线时间:65(小时)
注册时间:2007-07-02


利用ODBC访问WINCC的历史数据库


WINCC作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生成实时数据曲线与历史数据曲线,并能生成报表。然而WINCC与其它的工控软件包有不同的地方:它的数据是保存在标准的及功能强大的Sybase SQL Anywhere数据库中,所以,我们可以像访问一般的数据库一样,通过ODBC直接访问WINCC的历史数据库。
一、      通过Sybase Central 4.0访问显示数据
Wincc 在安装时就把Sysbase数据引擎与Sybase Central 4.0一同安装到系统中,你可以在Program FilesSybaseShared  中找到Sybase Central 4.0  ,你可在在其目录下java中发现 scjview.exe,该程序功能相当于SQL server 的企业管理器。你可以通过其查看你在WinCC中的归档数据。
使用方法:
1) 运行WINCC,这时WINCC会在ODBC中添加两条数据源:
CC_FY_02-10-16_10:40:18
CC_FY_02-10-16_10:40:18R
其中CC_FY_02-10-16_10:40:18R 是可以通过  Sybase Central 4.0 及别的一些工具不用用户名与密码读取的。这就是我们WinCC的历史数据库。
注意:这两条ODBC名不是一成不变的,它是结构如下
    CC_FY_02-10-16_10:40:18R
CC:    固有的,指明是WinCC生成的ODBC。
FY :    项目名,这是我这个WinCC项目名称
02-10-16:最后一次修改的日期。
10:40:18:最后一次修改的时间。
R:      表示是运行库。
2)、运行scjview.exe,点击Adaptive Server AnyWhere 7 按右键,选择Connect。将会弹出Connect配置界面。
在Identification的页面,选中ODBC SOURCE NAME 点BROWSE则会列出所有对Sybase数据引擎的ODBC名,选择CC_FY_02-10-16_10:40:18R,点击“OK“、“OK“即可。
这时在Adaptive Server AnyWhere 7下面会出现你的计算机名,并已连通了你的WINCC历史数据库。
好了,我们现在可以查看WinCC的历史数据了。
展开:Adaptive Server AnyWhere 7(DBA)
  展开:TABLE
我们现在可以看到数据库的表名与表结构了:
表名:PDE#HQZ#GAS_PRE  组成方式如下
  PDE:固有
HQZ:归档名称
  GAS_PRE:变量名。
表结构:有三个字段:T, V, F
T:时间
V:值
F:标志
由于没有可靠的资料可查,其F的名值表示的含义就不得而知,不过,在我的使用中,我将F值8392705作为一个合法值,在WINCC的处理中没有出过错,但别的FLAG值的含义,只能问西门子公司了。
二、      利用VB编写程序访问WINCC历史数据库。
上面已明确描述了WINCC的历史数据库的结构组成与表结构,那么我们就可以通过编程访问WINCC的历史数据库。如其它通过ODBC访问的数据一样。如下面的小例子
在VB中,先引用ADO组件。并声明ADO变量。
Private cn As ADODB.Connection
Private rs As ADODB.Recordset
Const dsn = “CC_FY_02-10-16_10:40:18R”
Private sub insertData(nowValue as double)
Dim nowtime as string
Nowtime =now
cn.Open dsn, "", ""
sqlstr=” insert into PDE#HQZ#GAS_PRE(T,V,F) Values(‘”+ Nowtime +”’,”+ nowValue +”, 8392705) ”
cn.Execute sqlstr
cn.close
End sub

本程序中的子程序只处理了数据插入,其它读出就更为简单,与其它的ADO访问是一模一样的,这里就不多说了。

三、      结语
能通过ODBC访问WINCC的历史数据,给我们提供了更多了解决办法,特别是在企业信息化平台上使用非实时数据方面,可以人为给WINCC添加正确的历史数据,使WINCC的功能更为强大。
由于ODBC名与项目的修改时间有关,所以在项目频繁变化时,请不要使用这个功能。
WinCC在启动时自动添加ODBC名,在关闭时自动删除,所以,在WINCC关闭后,不能再通过ODBC访问ODBC。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1325240

顶端 Posted:2007-08-07 15:30 | [楼 主]

 自动化网论坛 -> 组态软件技术论坛
快速发帖 顶端
内容
HTML 代码不可用

使用签名
Wind Code自动转换

字数检查 恢复数据
 认证码:  
按 Ctrl+Enter 直接提交
表情 [更多]
Powered by PHPWind v5.3 Code © 2003-05 PHPWind
This is html template view this page faster