WINCC
作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生
成实时数据曲线与历史数据曲线,
并能生成报表。
然而
WINCC
与其它的工控软件包有不同
的地方:
它的数据是保存在标准的及功能强大的
Sybase SQL Anywhere
数据库中
,
所以,
我们
可以像访问一般的数据库一样,通过
ODBC
直接访问
WINCC
的历史数据库。
一、
通过
Sybase Central 40
访问显示数据
Wincc
在安装时就把
Sysbase
数据引擎与
Sybase
Central
40
一同安装到系统中,你可以在
Program
Files\Sybase\Shared\
中找到
Sybase
Central
40
,你可在在其目录下
\java\
中发
现
scjviewexe
,该程序功能相当于
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
40
及别的一些工具不用
用户名与密码读取的。这就是我们
WinCC
的历史数据库。
注意:这两条
ODBC
名不是一成不变的,它是结构如下
CC_FY_02-10-16_10:40:18R
CC
:
固有的,指明是
WinCC
生成的
ODBC
。
FY
:
项目名,这是我这个
WinCC
项目名称
02-10-16
:最后一次修改的日期。
10:40:18
:最后一次修改的时间。
R
:
表示是运行库。
2
)
、运行
scjviewexe
,点击
Adaptive
Server
AnyWhere
7
按右键,选择
Connect
。将会d出
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 ADODBConnection
Private rs As ADODBRecordset
Const dsn = “CC_FY_02
-10-
16_10:40:18R”
Private sub insertData(nowV
alue as double)
Dim nowtime as string
Nowtime =now
cnOpen dsn, "", ""
sqlstr=”
insert
into
PDE#HQZ#GAS_PRE(T,V
,F)
V
alues(„”+
Nowtime
+”‟,”+
nowV
alue
+”,
8392705) ”
cnExecute sqlstr
cnclose
End sub
本程序中的子程序只处理了数据插入,其它读出就更为简单,与其它的
ADO
访问是一模一
样的,这里就不多说了。
三、
结语
能通过
ODBC
访问
WINCC
的历史数据,给我们提供了更多了解决办法,特别是在企业信
息化平台上使用非实时数据方面,可以人为给
WINCC
添加正确的历史数据,使
WINCC
的
功能更为强大。
由于
ODBC
名与项目的修改时间有关,所以在项目频繁变化时,请不要使用这个功能。
WinCC
在启动时自动添加
ODBC
名,在关闭时自动删除,所以,在
WINCC
关闭后,不能
再通过
ODBC
访问
ODBC
。
wincc SQL数据库是压缩过的,因此不能直接查看数据内容,西门子提供了一个wincc组件叫做connectivity用于高级语言编程读取wincc SQL数据库。
另外,通过VB也可以实现简单的读取Wincc SQL的历史数据,具体方法见《深入浅出wincc V6》一书,这种方法仅适用于数据量较小的情况。
VB对于远程多台服务器的Wincc访问都是可以实现的。
查询过程值归档语法:
TAG:R<ValueID
or
ValueName>,<TimeBegin>,<TimeEnd>
查询报警信息归档语法:
ALARMVIEW:SELECT
FROM<ViewName>[WHERE<condition>,optional]
详情请参阅《深入浅出Wincc6》一书中的利用ADO/Wincc
OLE
DB访问数据库语法章节。
先看一下你能不能连接到服务器,ping一下服务器名称是否能ping通?能ping通就好办,ping不通县想办法和服务器连接上。
另外,你用的是什么数据库?如果你用的是Oracle10g或以上:
方法一:你可以在你的电脑上直接以页面的形式打开服务器端数据库 *** 作,地址一般为:服务器名称或ip地址:1158/em/console/logon/logon,打开后以sys或system登录即可。
方法二:也可以在客户端安装一个Oracle同版本的客户端,在客户端配置好服务器的地址、sid、监听等,然后就可以从客户端登录服务器上的数据库进行 *** 作了。
方法三:还可以在方法二配置好客户端之后,安装一个PLSQL,用plsql登录进行 *** 作
以上就是关于如何利用ODBC访问WINCC的历史数据库全部的内容,包括:如何利用ODBC访问WINCC的历史数据库、第三方软件访问Wincc V7.0 SQL2005的方法有哪些、VB访问WINCC的过程归档数据库 如何连接及查询望大虾指教等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)