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

原创 2003年02月13日 10:01:00
 

利用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 7DBA

   展开:TABLE

  我们现在可以看到数据库的表名与表结构了:

  表名:PDE#HQZ#GAS_PRE   组成方式如下

   PDE:固有

 HQZ:归档名称

   GAS_PRE:变量名。

表结构:有三个字段:T, V, F 

T:时间

V:值

F:标志

由于没有可靠的资料可查,其F的名值表示的含义就不得而知,不过,在我的使用中,我将F8392705作为一个合法值,在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

WINCC中使用ADO对象连接数据库 例子 常用属性 方法 原创

在WINCC中连接数据库可以使用ADO控件进行连接数据库,但是通常都不是用的ADO控件进行连接数据库,以下讲讲winccZ中使用ADO对象连接查询数据库。以下以报警记录为例。 一、了解ADO对象...
  • yangbingzhou
  • yangbingzhou
  • 2014年04月27日 09:40
  • 1700

WinCC下用C-script完成对SQL的写操作

  • 2011年05月09日 13:17
  • 2KB
  • 下载

wincc 数据库的连接方法

• WinCC 中如何与本地数据库(如SQL SERVER、ORACLE)进行数据交换? 以下的测试将说明如连接远程的数据库: Topic One: ODBC Testing environme...
  • ddjj_1980
  • ddjj_1980
  • 2013年03月22日 14:13
  • 2656

WINCC7.0下用户归档的查询与导出——查询篇

最近在帮女票做一个WINCC的项目,所要实现的功能是对各种历史数据的查询与导出...
  • zmh890
  • zmh890
  • 2014年08月18日 12:22
  • 3847

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

  利用ODBC访问WINCC的历史数据库   WINCC作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生成实时数据曲线与历史数据曲线,并能生成报表。然而WINCC与其它的工控...
  • monkst
  • monkst
  • 2003年02月13日 10:01
  • 4299

错误信息汇总-SQL CODE和SQL State相关

操作数据库过程中,遇到许多问题,很多都与SQL CODE和SQL State相关,现在把一个完整的SQLCODE和SQLState错误信息和相关解释作以下说明,一来可以自己参考,对DB2错误自行找出原...
  • yunhaiC
  • yunhaiC
  • 2011年09月28日 11:38
  • 6450

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

利用ODBC访问WINCC的历史数据库   WINCC作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生成实时数据曲线与历史数据曲线,并能生成报表。然而WINCC与其它的工控软件...
  • yuanxi
  • yuanxi
  • 2006年10月08日 00:22
  • 1268

访问WINCC归档数据库

一般 需要wincc Connectivity Pack 才能访问归档数据库 ---------------     使用VB或VBS访问WINCC6.0历史数据库 从WINCC6.0开始,就开始采...
  • ddjj_1980
  • ddjj_1980
  • 2013年03月22日 12:06
  • 7913

Wincc7.3学习之——如何建立起数据库链接

Wincc入门学习第一课,与数据库建立链接,对初学者可以简化一些概念,先入门,再提高。...
  • u010692765
  • u010692765
  • 2016年03月22日 15:26
  • 6726

WinCC 读写WINCC变量VB6.0

直接调用WINCC的组件进行标签的读写操作.这样可以省去很多事,不用使用OPC了,自己想把什么写到组态里,从组态里读出来数据都非常的方便   读写函数如下 Private Sub Command...
  • ddjj_1980
  • ddjj_1980
  • 2013年03月27日 10:46
  • 1932
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用ODBC访问WINCC的历史数据库
举报原因:
原因补充:

(最多只允许输入30个字)