WinCC数据库SQL访问

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WinCC V6.2 数据库访问
我们现在的WinCC教材是以WinCC V6.0 SP3为软件平台而开发的,而之后,Siemens 又推出了V6.2、V7.0版本的WinCC。

目前,BU大力推的是V7.0的WinCC,我们的WinCC 教材也准备升级为V7.0版本。

但从用户的角度来说,对V7.0版本的WinCC还有一个逐步接受的过程,以后,我们碰到的客户,可能很多还是使用V6.2版本的软件。

所以,我们还是有必要熟悉一下WinCC V6.2。

本文主要介绍WinCC V6.2的数据库访问,由于WinCC V7.0和WinCC V6.2采用的都是SQL Server 2005数据库,故本文对了解WinCC V7.0的数据库访问也是有帮助的。

(一)若采用WinCC V6.2,原来的教材中有关操作和界面的变化
1. 打开SQL Server管理工具
SQL Server 2005和SQL Server 2000在界面上还是有很大不同的,原来的企业管理器变成了SQL Server Management Studio (SSMS)。

图1. 启动SSMS
2. 选择身份认证方式:
WinCC 系统在SQL Server中注册了自己的账户,如WinCCAdmin、WinCCConnect等,所以,WinCC使用到了SQL Server的认证方式。

外部程序访问数据库时,可以采用Windows 集成的认证方式。

图2. 选择身份认证方式
图3. WinCC在SQL Server中注册的用户3. 查看ValueID和ValueName的对应关系
图4. 查看ValueID和ValueName的对应关系4. 查看组态的消息
图5. 查看组态的消息
5. 查看归档片段的消息
图6. 查看归档片段的消息6.数据传输服务
图7. 选择数据导出服务
图8. 选择数据源(与原来的DTS类似)
图9. 设置数据源
图10. 选择目标地图11. 选择查询并传输
图12. 输入查询语句
图13. 源和目标列的对应关系
图14. 选择立刻执行传输图15. 传输执行前的提示
图16. 传输执行结果报告图17. 查看传输结果
7. 在Excel中编程利用WinCC OLE-DB访问WinCC数据库
方法及程序同原来的教材,原来的教材的程序同样适用。

8.归档变量设置和归档数据库片段设置和原来版本类似。

(二)有关WinCC V6.2数据库访问的一些背景知识
1. WinCC数据库的变迁:
Sybase Anywhere 7(V6.0之前)-> Microsoft SQL Server 2000(V6.0)-> Microsoft SQL Server 2005(V6.2,V7.0)
2. WinCC V6.2 开始,慢速归档和快速归档都采用了压缩的方式存储在数据库的相应表中(Microsoft SQL Server 2005 之后),访问这些经过压缩的二进制数据块,需要采用独特的OLE – DB provider ——WinCC OLE-DB provider,而普通的Microsoft OLE –DB provider 无法读取并解密出WinCC 的归档数据。

3. WinCC和WinCCFlexibel项目各自生成一个实例。

所谓的“实例”,就是一个SQL Server数据库引擎。

SQL Server支持在同一台计算机上同时运行多个SQL Server数据库引擎实例,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。

各实例的运行是独立的,一个实例的运行不会受其他实例运行的影响,也不会影响其他实例的运行。

在一台计算机上安装多个SQL Server实例,就相当于把这台计算机模拟成多个数据库服务器,而且这些模拟的数据库服务器是独立且同时运行的。

4. WinCC归档变量的时间采用通用协调时(UTC, Universal Time Coordinated)时间,滞后北京时间8小时,所以得到归档数据后,时间需要做调整。

例如在VB中可以使用DateAdd函数来进行转换。

5. ODBC是曾经的数据库通信标准;在组件/对象盛行的大趋势下,微软打算用OLE-DB来取代ODBC;ADO是简单的应用程序层面的数据库访问方法,构建在OLE-DB之上。

ODBC(Open Database Connectivity)是一个数据库访问的标准接口。

ODBC能够动态装载各个数据库的CLI,并把对ODBC的调用转换为CLI调用。

通过这一标准的接口,开发者就可以不必关心具体的数据库管理系统(DBMS)的实现细节。

只要相应类型数据库提供了ODBC 驱动程序,就可以同过ODBC来实现对数据库的访问。

至此,数据库应用程序就独立于具体的数据库管理系统了。

Microsoft COM技术发展起来以后,微软提出了OLE-DB(Object Linking & Embedding for Database)。

OLE-DB是一个COM接口,并且需要每个数据库都提供自己的Provider(也就是类似于CLI的数据库调用方法或驱动)。

所以,OLE-DB可以看做COM技术下的数据库访问的API 函数。

WinCC选件Connectivity pack不是一个或一组应用程序,而是一组接口,不是面向最终用户,而主要是为WinCC数据库应用开发者提供不同的方法。

主要包括了OLE-DB,OPC XML,OPC HAD和OPC A&E。

Microsoft SQL Server提供了许多Provider,为什么还要选WinCCProvider?原因如下:
A、只有使用制造商自己的Provider,才能访问加密的或者和SQL不兼容的数据。

WinCC
的过程值归档数据库就是经过压缩的,只有WinCC OLE-DB才能够解压这些数据。

B、WinCC运行数据并不是存在一个数据库中,而是分散在多个小数据库当中,使用
WinCC OLE-DB能够透明地访问这些归档数据,而不需要考虑其数据库存储方式的复
杂性。

图18. SQL Server本身提供了很多Provider
6. SQL Server 2005是微软推出的综合、集成的数据平台,是一种进行数据管理和数据分析的数据解决方案。

与SQL Server 2000最大的区别是,SQL Server 2005超越传统意义上的数据库管理系统,已经发展成为“用于大规模联机事物处理、数据仓库和电子商务应用的数据库和数据分析平台”。

SQL Server 2005 的数据管理和数据分析功能是通过一些的组件来提供的,安装后将集中体现在相应的服务以及管理工具和开发工具中。

因此,应该对这些组件和工具有一个大概的了解。

- SQL Server数据库引擎:数据库引擎是SQL Server 2005的核心组件,其基本功能是实现数据的存储、处理和保护,此外还包括复制、全文搜索以及用于管理关系数据和XML数据的工具。

- 分析服务(Analysis Services):分析服务包括用于创建和管理联机分析处理(OLAP)以及数据挖掘应用程序的工具。

通过OLAP可以实现对多维、复杂的海量数据进行快速的高级分析;通过数据挖掘可以从海量数据中发现意想不到的“惊人”发现,以供决策支持。

- 报表服务(Reporting Services):报表服务是提供全面报表决策方案的服务器和客户端组件,可用于创建、管理和部署各种类型的报表,包括表格报表、矩阵报表、图形报表以及自由格式报表等。

- 通知服务(Notification Services):通知服务是一个信息发布平台,用于向各连接用户和连接设备发布个性化、及时的信息更新。

- 集成服务(Integration Services):集成服务是对SQL Server 2000数据转换服务(DTS)、数据导入\导出功能的扩充,形成了用于数据移动、复制和转换的图形工具和可编程对象。

- 连接组件:连接组件属于客户端组件,用于实现客户端和服务器之间的通信。

此外,还用于DB-library、ODBC和OLE DB的网络库。

- 管理工具和开发工具:为实现对SQL Server的利用和开发,SQL Server 2005提供了两种类型的工具:管理工具和开发工具。

SQL Server 2005包含如下的管理工具:
A.SQL Server Management Studio(SSMS)
SSMS是SQL Server 2005 新增加的组件,它是对SQL Server 2000 查询分析器、企业管理器和分析管理器功能的集成和扩充,形成了用于访问、配置、管理和开
发SQL Server的所有组件的集成环境。

B. SQL Server配置管理器
SQL Server配置管理器主要用于为SQL Server服务、服务器协议、客户端协议和客户端别名提供基本配置管理。

此外,SQL Server 2005管理工具还包括SQL Server Profiler、数据库引擎优化顾问等,它们分别用于监视数据库引擎实例或Analysis Services实例和协助创建索引、索引视图和分区的最佳组合。

SQL Server 2005开发工具主要是Business Intelligence Development Studio(BIDS),它们是分析服务、报表服务和集成服务解决方案的集成开发环境。

7. 关于SQL数据库,它是由数据库文件(Database File)和事务日志文件(Transaction Log File)组成的。

两者密不可分,所以在做数据备份时,都要同时选择备份:
- 扩展名.ldf是SQL数据库的事务处理记录日志文件(SQL Server Database Transaction Log File),用于记录SQL数据库所有事务,以及每个事务对数据库所做的修改和更新情况的文件,包含恢复数据库中的所有事务所需的记录信息。

事务日志是SQL数据库的一个重要组件,如果系统出现故障,它将成为最新数据的唯一来源。

所以,事务日志文件及其重要。

- 扩展名.mdf是SQL数据库的主数据记录文件(SQL Server Database Primary Data File),用于存储SQL数据库的启动信息和部分或全部数据。

VB编程wincc用vb脚本写自定义的sql数据库问题减小字体增大字体作者:佚名来源:本站整理发布时间:2009-05-25 20:02:58
我想用一个按钮的动作脚本连接sql,然后用全局脚本周期性写变量值到sql,然后用另一个按钮动作脚本断开sql连接。

这样能用vb脚本实现吗?
因为连接sql的脚本里面有个对象objConnection,如下代码:
strConnectionString ="Driver={SQL Server};Server=.\WINCC;uid=;pass=;database=guowincc"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.open
而insert语句需要用到objConnection这个对象:
strSql = "insert into testwincc values('NewTag1_inter','"& nowTime & "',"
& lngValue & ");"
Set objCommand = CreateObject("mand")
with objCommand
.ActiveConnection = objConnection
.CommandText = strSql
End With
objCommand.Execute
然后断开连接也要用到objConnection对象:
Set objCommand = Nothing
objConnection.Close
Set objConnection = Nothing
但是全局脚本就没有参数传递,这要怎么办呢?
我是想在用全局脚本写sql的时候不要它老是连接——写——断开,连接——写——断开....
我只想用这样的顺序:连接——写...写...写...——断开问题补充:
请问一下,wincc 里的内部变量有Script和TagLoggingRt,这两个有什么区别啊?提问者:guopei296 - 助理二级最佳答案
WinCC的VBS虽可以生命Public变量,但作用域仅限于本画面。

如果你的WinCC版本>=V6.0 SP3,则可以使用Dataset对象,该对象可以在不同的VBS脚本中进行访问。

下面是个简单的例子:
1、连接
Dim objConnection,strConnectionString
strConnectionString ="Driver={SQL Server};Server=.\WINCC;uid=;pass=;database=guowincc"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.open
HMIRuntime.DataSet.Add "objConnection",objConnection
2、全局动作中引用
Dim objConnection
objConnection= HMIRuntime.DataSet("objConnection").Value
with objCommand
.ActiveConnection = objConnection
xxxxxxxx
3、关闭连接:
Dim objConnection
objConnection= HMIRuntime.DataSet("objConnection").Value
objConnection.Close
Set objConnection = Nothing
[本日:1 本周:9 本月:12 总数:381 ] [返回上一页] [打印]
好的评价如果您觉得此文章好,就请您
0%(0) 差的评价如果您觉得此文章差,就请您
0%(0) 中查找“wincc用vb脚本写自定义的sql数据库问题”更多相关内容
中查找“wincc用vb脚本写自定义的sql数据库问题”更多相关内容
·上一篇文章:vb在一个窗体中调用另一窗体的程序
·下一篇文章:急求vb程序设计答案
文章评论评论内容只代表网友观点,与本站立场无关!评论摘要(共0 条,得分0 分,平均0 分) 查看完整评论。

相关文档
最新文档