社区
Delphi
帖子详情
这里有没有工控双料精英, 谁成功用DELPHI访问WINCC归档数据库SQL Server呢? 200分
BCBPLC
2008-07-30 09:36:17
这里有没有谁成功用DELPHI访问WINCC归档数据库呢?
VB的文章见多了的,SIEMENS把SQL Server改动了,用怪怪的
SQL语句,用VB能成功,但用DELPHI,C++BUILDER之类的就有问题了,
请关注 !
...全文
497
6
打赏
收藏
这里有没有工控双料精英, 谁成功用DELPHI访问WINCC归档数据库SQL Server呢? 200分
这里有没有谁成功用DELPHI访问WINCC归档数据库呢? VB的文章见多了的,SIEMENS把SQL Server改动了,用怪怪的 SQL语句,用VB能成功,但用DELPHI,C++BUILDER之类的就有问题了, 请关注 !
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DelphiXB
2011-01-20
打赏
举报
回复
通过OPC进行数据采集,我设计的采集程序成功的应用了很多家公司.
xiaobaimomo
2008-11-25
打赏
举报
回复
能帮帮忙吗?在VC++6.0里如何通过WinCCOLEDB访问呢?我试过了,查询时结果总不对。
BCBPLC
2008-08-18
打赏
举报
回复
我模仿VC++,用原始的COM调用ADO技术完美的解决了。
不可调用BORLAND的ADO控件!
所以,遇到难题还得请请微软!
BCBPLC
2008-07-30
打赏
举报
回复
查询过程值归档和用户归档的SQL语句
TAG:R,'变量名1','起始时间','终止时间' where条件
-----------------------------------------------
这就是怪怪的SQL语句,在ADO下,会出错!
解决了肯定设法要给200分的,关键有没有双料精英呀,
这年头“计算机”与“工控”都会的不好找呀
BCBPLC
2008-07-30
打赏
举报
回复
使用VB或VBS访问WINCC6.0历史数据库
从WINCC6.0开始,就开始采用SQL3000SP3做为WINCC的后台数据了.而这个SQL2000SP3是由SIEMENS为WINCC做了二次开发的,采用了一些独有的技术,一些是我们知道的,一些是我们所不知道的.所以当我们打开SQL管理器和用高级语言访问时,和常规的SQL访问的方法是有一些出入的.即使我们能够很轻易的访问ACCESS,普通的SQL2000的数据库,不见的你就能顺利的访问到WINCC的历史数据.
官方的资料显示:
1:WINCC的数据有设计时数据库和运行时数据库,分别放在相关的目录,对于数据使用者而言,我们知道就可以了.设计时数据库我们了解没有什么意义.但运行时数据库至少我们要知道它的名.他的名一般是"CC_工程名_年_月_日_时_分_秒R"的名,这个对于我们使用者而言,是很重要的的,无论你准备以DSN或OLEDB的方式访问数据库,你都需要它.如果你实在不知道它的名,你可以将WINCC激活,然后在'ODBC管理器"或"SQL企业管理器下的"DATABASE"可以看到它,它就蹲在那里.....
2:运行时库的表的问题.
其实,这个是很多的用户很关心的问题,包括我自己在内.常规的使用过高级语言访问SQL的技术人员都知道,很多的SQL语句,如SELECT ,INSERT INTO等等,都需要指明在某一库的表中对它进行操作.因此,这个表的问题可能就是你访问SQL的拦路虎.
先告诉大家:WINCC6.0的SQL库操作是不需要表名的,因为他有自己定义的SQL语句.细节一会儿在描述.
其实,WINCC在运行时,根据WINCC的设置,数据归档是以一定时间做为基准,形成数据片段.
大体上有三个用户需要了解的表.
在数据片段下,有三个表是我们所关心的
1:ARCHIVE(用户归档记录)
2:TAGPRESSED(TAGUNPRESSED)(压缩/非压缩变量归档记录)
3:MSARCLONG(报警记录)
事实上,我们在操作数据时,还是并不能直接使用常规的SQL来操作这些表,甚至不允许修改它,MSARCLONG情况好一些,允许插入/修改等.
TAGPRESSED的数据和WINCC内设置的变量管理下的归档是对应的,
MSARCLONG的数据和WINCC内设置的报警记录下的设置是对应的.
ARCHIVE的数据和WINCC内的用户归档数据是对应的.
一般的,当我们使用WINCC制作在线表格和在线趋势使用的都是变量管理器下的归档.
因此,我们打开TAGPRESSED的表,可以看到的一些都是变量记录的内容,通常也是在这里归档了用户的生产数据.因此,我们访问WINCC历史数据库,实际上是访问这里的变量记录
3:访问历史数据库的方法/连接字符/SQL语句
访问数据库的方法:
A:WINCCOLEDB访问压缩归档,也可以访问非压缩归档
B:MS ADO/OLEDB只能访问非压缩归档
对于这种说法,我只严正了WINCCOLEDB的方法,后者没有测试.
连接字符:
WINCCOLEDB的连接字符为(本地):
provider=winccoledbprovider.1,catalog=.\wincc,data source=
数据库名,user id=DBA,password=SQL
对于远程连接,因为没有条件测试,所以就不说了,希望有哪位朋友日后通过了测试,到这里告诉一下
现在开始讲访问用户归档,过程值归档和消息归档的方法和语法:
1:查询过程值归档和消息归档的连接字符串
SET CON=Createobject("adodb.connection")
con.open
Provider=winccoledbprovider.1;catalog=cc_工程名_年_月_日_时_分_秒R,data source=.\wincc,user id=DBA,password=SQL
说明:按照WINCC规定的连接字符串,创建到数据库的连接,并且打开这个连接.其中,我们经常需要修改的是Catalog的值,这个值根据不同的工程和创建的时间不同,我们可以在ODBC管理器下或SQL的库中看到.
查询过程值归档和用户归档的SQL语句
TAG:R,'变量名1','起始时间','终止时间' where条件
说明:WHERE子句只对用户归档有效,对过程值归档无效.
变量名:这个变量名要和WINCC下的变量管理器的过程值归档名要一致.其格式为:归档名/变量名.
起始时间和终止时间可以用相对时间和绝对时间,一般绝对时间比较容易理解,就是从开始时间到终止时间就好了.例如,查询从2006/3/12 12:20:20秒到2006/3/13/ 12:20:20秒的数据,则应该写成'2006-3-12 12:20:20' '2006-3-13 12:20:20'就好了.
当然拉,也可以用相对时间格式,就是比目前时间的相对值,有个前移后移的问题,很简单的.
这里特别需要注意的是:记录到SQL数据库的时间都是格林威治时间,和中国的东8区有8个小时的时间差,也就是说记录的时间比本机PC时区晚8小时,这一点我们在测试是尤其重要.
因为你是时间不正确,可能数据就没有显示,而导致你怀疑连接/命令/记录的有效性
访问SQL数据库的方法过程描述.
这和访问普通的数据库的方法大致上是相同,唯一的就是由于WINCC的数据是经过了压缩的.
1:定义连接字符串,就是前面所讲到的.
2:创建ADODB的CONNECTION对象,在VB中直接用CREATEOBJECT(ADODB.CONNECTION)函数,在ASP的VB脚本中,需要使用内置SERVER对象创建CONNECTIONG对象.
3:打开到数据库的连接,使用CONNECTION的OPEN函数
4:创建COMMAND对象,并定义COMMAND对象采用用CMDTEXT方法,表明将要使用命令文本的方式来获取数据记录.
5:创建RECORDSET对象,并用COMMAND对象的返回记录集填充这个记录集.
6:RECORDSET对象的数据就可以被你任意的使用了
// 未完
kampan
2008-07-30
打赏
举报
回复
我只看到20分没看到200分!
没玩过Wincc,不清楚,不过你怎么不把你的Sql语句贴上来让大伙看看啊
自动化
win
cc
连接
sql
server
数据库
脚本
自动化
win
cc
连接
sql
server
数据库
脚本,不需要
win
cc
授权,直连
sql
server
数据库
。解决
归档
导出问题
Win
CC
数据库
SQL
访问
通过
SQL
200
5管理器打开
Win
CC
归档
数据库
。
win
cc
归档
数据库
数据查询
win
cc
归档
数据库
数据查询
win
cc
中使用VBS脚本读写
SQL
Server
数据库
文件
win
cc
中使用VBS脚本读写
SQL
Server
数据库
文件
如何卸载
Win
CC
Professional 或
Win
CC
Runtime Pro的
SQL
Server
实例?.docx
如何卸载
Win
CC
Professional 或
Win
CC
Runtime Pro的
SQL
Server
实例?
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章