视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
访问wincc数据库
2025-09-27 16:22:58 责编:小OO
文档
利用ODBC访问WINCC的历史数据库

   WINCC作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生成实时数据曲线与历史数据曲线,并能生成报表。然而WINCC与其它的工控软件包有不同的地方:它的数据是保存在标准的及功能强大的Sybase SQL Anywhere数据库中,所以,我们可以像访问一般的数据库一样,通过ODBC直接访问WINCC的历史数据库。

一、      通过Sybase Central 4.0访问显示数据

Wincc 在安装时就把Sysbase数据引擎与Sybase Central 4.0一同安装到系统中,你可以在Program Files\\Sybase\\Shared\\   中找到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

office:office" /> 

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

 

三、      结语

能通过ODBC访问WINCC的历史数据,给我们提供了更多了解决办法,特别是在企业信息化平台上使用非实时数据方面,可以人为给WINCC添加正确的历史数据,使WINCC的功能更为强大。

由于ODBC名与项目的修改时间有关,所以在项目频繁变化时,请不要使用这个功能。

WinCC在启动时自动添加ODBC名,在关闭时自动删除,所以,在WINCC关闭后,不能再通过ODBC访问ODBC。下载本文

显示全文
专题