利用ODBC访问WINCC
历史数据库
WINCC作为
![](/icons/19385yi.gif)
个工控软件Software
![](/icons/19385dou.gif)
有着工控软件Software
![](/icons/19385de.gif)
![](/icons/19385yi.gif)
系列特征:能显示实时数据
![](/icons/19385dou.gif)
历史数据
![](/icons/19385dou.gif)
生成实时数据曲线和历史数据曲线
![](/icons/19385dou.gif)
并能生成报表
![](/icons/19385dou2.gif)
然而WINCC和其它
![](/icons/19385de.gif)
工控软件Software包有区别
![](/icons/19385de.gif)
地方:它
![](/icons/19385de.gif)
数据是保存在标准
![](/icons/19385de.gif)
及功能强大
![](/icons/19385de.gif)
Sybase SQL Anywhere数据库中,所以
![](/icons/19385dou.gif)
我们可以像访问
![](/icons/19385yi.gif)
般
![](/icons/19385de.gif)
数据库
![](/icons/19385yi.gif)
样
![](/icons/19385dou.gif)
通过ODBC直接访问WINCC
![](/icons/19385de.gif)
历史数据库
![](/icons/19385dou2.gif)
、 通过Sybase Central 4.0访问显示数据
Wincc 在安装时就把Sysbase数据引擎和Sybase Central 4.0
![](/icons/19385yi.gif)
同安装到系统中
![](/icons/19385dou.gif)
你可以在Program Files\\Sybase\\Shared\\ 中找到Sybase Central 4.0
![](/icons/19385dou.gif)
你可在在其目录下\\java\\中发现 scjview.exe
![](/icons/19385dou.gif)
该
![](/icons/19385chengxu.gif)
功能相当于SQL server
![](/icons/19385de.gif)
企业管理器
![](/icons/19385dou2.gif)
你可以通过其查看你在WinCC中
![](/icons/19385de.gif)
归档数据
![](/icons/19385dou2.gif)
使用思路方法:
1) 运行WINCC
![](/icons/19385dou.gif)
这时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 及别
![](/icons/19385de.gif)
![](/icons/19385yi.gif)
些工具不用用户名和密码读取
![](/icons/19385de.gif)
![](/icons/19385dou2.gif)
这就是我们WinCC
![](/icons/19385de.gif)
历史数据库
![](/icons/19385dou2.gif)
注意:这两条ODBC名不是
![](/icons/19385yi.gif)
成不变
![](/icons/19385de.gif)
![](/icons/19385dou.gif)
它是结构如下
CC_FY_02-10-16_10:40:18R
CC: 固有
![](/icons/19385de.gif)
![](/icons/19385dou.gif)
指明是WinCC生成
![](/icons/19385de.gif)
ODBC
![](/icons/19385dou2.gif)
FY : 项目名
![](/icons/19385dou.gif)
这是我这个WinCC项目名称
02-10-16:最后
![](/icons/19385yi.gif)
次修改
![](/icons/19385de.gif)
日期
![](/icons/19385dou2.gif)
10:40:18:最后
![](/icons/19385yi.gif)
次修改
![](/icons/19385de.gif)
时间
![](/icons/19385dou2.gif)
R: 表示是运行库
![](/icons/19385dou2.gif)
2)、运行scjview.exe
![](/icons/19385dou.gif)
点击Adaptive Server AnyWhere 7 按右键
![](/icons/19385dou.gif)
选择Connect
![](/icons/19385dou2.gif)
将会弹出Connect配置界面
![](/icons/19385dou2.gif)
在Ident
![](/icons/19385if.gif)
ication
![](/icons/19385de.gif)
页面
![](/icons/19385dou.gif)
选中ODBC SOURCE NAME 点BROWSE则会列出所有对Sybase数据引擎
![](/icons/19385de.gif)
ODBC名
![](/icons/19385dou.gif)
选择CC_FY_02-10-16_10:40:18R
![](/icons/19385dou.gif)
点击“OK“、“OK“即可
![](/icons/19385dou2.gif)
这时在Adaptive Server AnyWhere 7下面会出现你
![](/icons/19385de.gif)
计算机名
![](/icons/19385dou.gif)
并已连通了你
![](/icons/19385de.gif)
WINCC历史数据库
![](/icons/19385dou2.gif)
好了
![](/icons/19385dou.gif)
我们现在可以查看WinCC
![](/icons/19385de.gif)
历史数据了
![](/icons/19385dou2.gif)
展开:Adaptive Server AnyWhere 7(DBA)
展开:TABLE
我们现在可以看到数据库
![](/icons/19385de.gif)
表名和表结构了:
表名:PDE#HQZ#GAS_PRE 组成方式如下
PDE:固有
HQZ:归档名称
GAS_PRE:变量名
![](/icons/19385dou2.gif)
表结构:有 3个字段:T, V, F
T:时间
V:值
F:标志
由于没有可靠
![](/icons/19385de.gif)
资料可查
![](/icons/19385dou.gif)
其F
![](/icons/19385de.gif)
名值表示
![](/icons/19385de.gif)
含义就不得而知
![](/icons/19385dou.gif)
不过
![](/icons/19385dou.gif)
在我
![](/icons/19385de.gif)
使用中
![](/icons/19385dou.gif)
我将F值8392705作为
![](/icons/19385yi.gif)
个合法值
![](/icons/19385dou.gif)
在WINCC
![](/icons/19385de.gif)
处理中没有出过错
![](/icons/19385dou.gif)
但别
![](/icons/19385de.gif)
FLAG值
![](/icons/19385de.gif)
含义
![](/icons/19385dou.gif)
只能问西门子公司了
![](/icons/19385dou2.gif)
2、 利用VB编写
访问WINCC历史数据库![](/icons/19385dou2.gif)
上面已明确描述了WINCC
![](/icons/19385de.gif)
历史数据库
![](/icons/19385de.gif)
结构组成和表结构
![](/icons/19385dou.gif)
那么我们就可以通过编程访问WINCC
![](/icons/19385de.gif)
历史数据库
![](/icons/19385dou2.gif)
如其它通过ODBC访问
![](/icons/19385de.gif)
数据
![](/icons/19385yi.gif)
样
![](/icons/19385dou2.gif)
如下面
![](/icons/19385de.gif)
小例子
在VB中
![](/icons/19385dou.gif)
先引用ADO组件
![](/icons/19385dou2.gif)
并声明ADO变量
![](/icons/19385dou2.gif)
Private cn As ADODB.Connection
Private rs As ADODB.Record
![](/icons/19385set.gif)
Const dsn = “CC_FY_02-10-16_10:40:18R”
Private sub insertData(nowValue as double)
Dim nowtime as
Nowtime =now
cn.Open dsn, \"\", \"\"
sqlstr=” insert
![](/icons/19385int.gif)
o PDE#HQZ#GAS_PRE(T,V,F) Values(‘”+ Nowtime +”’,”+ nowValue +”, 8392705) ”
cn.Execute sqlstr
cn.close
End sub
prefix = o ns = \"urn:schemas-microsoft-com:office:office\" />
本
![](/icons/19385chengxu.gif)
中
![](/icons/19385de.gif)
子
![](/icons/19385chengxu.gif)
只处理了数据插入
![](/icons/19385dou.gif)
其它读出就更为简单
![](/icons/19385dou.gif)
和其它
![](/icons/19385de.gif)
ADO访问是
![](/icons/19385yi.gif)
模
![](/icons/19385yi.gif)
样
![](/icons/19385de.gif)
![](/icons/19385dou.gif)
这里就不多说了
![](/icons/19385dou2.gif)
3、 结语
能通过ODBC访问WINCC
![](/icons/19385de.gif)
历史数据
![](/icons/19385dou.gif)
给我们提供了更多了解决办法
![](/icons/19385dou.gif)
特别是在企业信息化平台上使用非实时数据方面
![](/icons/19385dou.gif)
可以人为给WINCC添加正确
![](/icons/19385de.gif)
历史数据
![](/icons/19385dou.gif)
使WINCC
![](/icons/19385de.gif)
功能更为强大
![](/icons/19385dou2.gif)
由于ODBC名和项目
![](/icons/19385de.gif)
修改时间有关
![](/icons/19385dou.gif)
所以在项目频繁变化时
![](/icons/19385dou.gif)
请不要使用这个功能
![](/icons/19385dou2.gif)
WinCC在启动时自动添加ODBC名
![](/icons/19385dou.gif)
在关闭时自动删除
![](/icons/19385dou.gif)
所以
![](/icons/19385dou.gif)
在WINCC关闭后
![](/icons/19385dou.gif)
不能再通过ODBC访问ODBC