版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
访问WinCC归档数据库的方法WinCC归档数据库介绍WinCC的历史工艺数据和报警消息保存在SQLServer数据库,数据以分段和压缩形式储存,不方便直接通过SQL去读取,用WinCCOLEDBProvider访问这些数据时会自动合并分段并解压缩数据。安装ConnectivityPackWinCCOLEDBprovider由WinCC的ConnectivityPack选件提供,在安装WinCC时需要安装ConnectivityPack。在提供数据的WinCC的计算机需安装ConnectivityPackserver,读取数据的计算机上安装ConnectivityPackclient,可以在计算机上同时安装ConnectivityPackserver和ConnectivityPackclient。在SQLServer中通过链接服务器访问归档数据库创建链接服务器安装了WinCC的计算机中,启动WinCC项目时会自动创建链接服务器。在未安装WinCC的计算机需要手动创建链接服务器。打开SQLServerManagementStudio,在对象资源管理器中,展开“服务器对象”,右键单击“链接服务器”,然后单击“新建链接服务器”。如下图填入链接服务器信息,数据源(DataSource)中填入WinCC服务器的数据库完整实例名,目录(Catalog)中填入归档数据库名。使用OPENQUERY查询连接服务器查询链接数据库使用OPENQUERY,传递给OPENQUERY查询语句不同于SQL,是WinCC的特定查询语句,可通过变量ID或变量名查询。如下:select
*from
openquery(LnkRtDb_WinCCOLEDB,'Tag:R,1,''0000-00-0001:00:00.000'',''0000-00-0000:00:00.000''')使用变量ID查询:使用变量名查询:在SQLServer中通过OPENDATASOURCE访问归档数据库通过OPENDATASOURCE()函数可直接查询OLEDB数据源,语法如下:SELECT
*FROM
OPENDATASOURCE('WinCCOleDbProvider.1','Provider=WinCCOLEDBProviderforArchives;Catalog=CC_WinCCSer_19_02_14_10_59_03R;DataSource=WIN-54UD17PRU0N\WINCC').N'Tag:R,1,''0000-00-0000:10:00.000'',''0000-00-0000:00:00.000'''通过存储过程访问归档数据库存储过程(StoredProcedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。适用于WinCC归档数据库的存储过程有哪些如下图的路径,在SystemDatabases->master数据库下有部分存储过程,在WinCC项目程序对应的数据库下也有部分存储过程。
大部分存储过程都找不到对应的使用说明,下面对已知的几个存储过程简单介绍。cp_TagStatisticcp_TagStatistic是对过程值统计分析的存储过程,它的使用方法在官方文档中有描述。CC_SP_ReadTags是一个读取过程值的存储过程,查询到的值会被存储到一个临时表中。在SQLServer中CC_SP_ReadTags源代码是被加密的,从网络上查到的源代码如下,仅做参考:+ViewCodeCC_SP_ReadTags的参数说明如下:参数说明@List变量列表@TimeBegin查询的起始时间@TimeEnd结束时间@WHEREClause过滤条件@ORDERBYClause排序@Timestep时间间隔(以秒计),格式为’TimeStep=60’@Aggregationmode汇总类型(定义时间间隔结果)@TempTable临时表名称,默认值为“TlgDataTmp”@SymDataSource建立链接服务器的数据源@SymCatalog建立链接服务器的数据目录@LS_Name指定要使用的链接服务器语句示例:USE[CC_WinCCSer_19_02_14_10_59_03R]GOIFOBJECT_ID('tempdb..##TagsTempTable')is
not
NULLDROP
Table
##TagsTempTableDECLARE
@return_valueintEXEC
@return_value=[dbo].[CC_SP_ReadTags]@List=N'archive1\tag1;archive1\tag2',@TimeBegin=N'0000-00-0000:01:00',@TimeEnd=N'0000-00-0000:00:00',@WHEREClause=default,@ORDERBYClause=default,@Timestep=default,@Aggregationmode=default,@TempTable=N'##TagsTempTable',@SymDataSource=default,@SymCatalog=default,@LS_Name=N'LnkRtDb_WinCCOLEDB'SELECT
'ReturnValue'
=@return_valueGO重新排列数据
上面的示例图片中查询出的数据是以列的形式排序的,通过下面代码可以把相同时间戳的数据放在同一行。1234567891011121314151617181920212223242526272829303132declare
@TimeBegindatetime=
'2020-09-0300:00:00.000';declare
@TimeEnddatetime=
'2020-09-0400:00:00.000';declare
@TimeStepnvarchar(64)=
'10'Declare
@List
Varchar(1000)=N'SysInfo\CPU_1;SysInfo\CPU_2;SysInfo\CPU_3;SysInfo\CPU_4'declare
@strTimeBeginnvarchar(64)=format(Dateadd(hh,DATEDIFF(hh,GETDATE(),GETUTCDATE()),@TimeBegin),'yyyy-MM-ddHH:mm:ss.fff')declare
@strTimeEndnvarchar(64)=format(Dateadd(hh,DATEDIFF(hh,GETDATE(),GETUTCDATE()),@TimeEnd),'yyyy-MM-ddHH:mm:ss.fff')declare
@strTimeStepnvarchar(500)if@TimeStep<>''
set
@strTimeStep=N',''''TimeStep='
+@TimeStep+',1'''''else
set
@strTimeStep=
''declare
@temp
table(
ValueID
bigint,
TimeStamp
datetime,
RealValue
float,
Quality
int,
Flags
int)declare
@SQLnvarchar(1000)set
@SQL=
'select*fromopenquery(LnkRtDb_WinCCOLEDB,''Tag:R,('+@List+'),
'''''+@strTimeBegin+''''','''''+@strTimeEnd+''''''
+@strTimeStep+
''')'insert
into
@temp
exec(@SQL)SELECT
Dateadd(hh,DATEDIFF(hh,GETUTCDATE(),GETDATE()),[TimeStamp])
AS
TimeStamp,[1]
AS
CPU_1,[2]
AS
CPU_2,[3]
AS
CPU_3,[4]
AS
CPU_4From(SELECT
[ValueID],[TimeStamp],[RealValue]
from
@temp
)
AS
SourceTablePIVOT(max(Realvalue)
for
ValueID
in
([1],[2],[3],[4]))
AS
PivotTableorder
by
PivotTable.TimeStamp用VB脚本访问归档数据库创建数据库连接
12345dimconnSet
conn=CreateObject('ADODB.Connection')conn.ConnectionString=
'Provider=WinCCOLEDBProvider.1;Catalog=CC_OpenArch_03_05_27_14_11_46R;DataSource=.\WinCC'conn.CursorLocation=3conn.open查询数据库
1234Dim
rs,SqlSet
rs=CreateObject('ADODB.Recordset')Sql=
'Tag:R,1,''0000-00-0000:10:00.000'',''0000-00-0000:00:00.000'''rs.OpenSql,conn,1,3访问另一台电脑的WinCC归档数据库假如有两台电脑,命名为A和B,A和B电脑上都安装了ConnectivityPack,从A电脑上通过WinCCOleDbProvider.1去访问B电脑中的WinCC归档数据库,需要按照如下做法:B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年PEX-A管材项目投资价值分析报告
- 2024至2030年18-复方氨基酸注射液项目投资价值分析报告
- 代理记账服务合同标准版
- 2021部门年度工作总结七篇
- 北京邮电大学《热力学基础》2023-2024学年第一学期期末试卷
- 《尼尔斯骑鹅旅行记》读后感集合15篇
- 2025年度新能源发电设备安装服务合同范本3篇
- 2025版建筑工程内部承包项目管理合作协议6篇
- 2025版物联网企业股权收益权转让与合作协议3篇
- 2025版消防安全设施运行维护与管理合同3篇
- 合伙经营木材加工厂协议书
- 写作思路要清晰省公开课一等奖新名师比赛一等奖课件
- 前列腺癌根治术护理查房课件
- AQ 1017-2005 煤矿井下安全标志(正式版)
- 甘肃2024年甘肃省公安厅招聘辅警109人笔试历年典型考题及考点附答案解析
- 小升初数学《选择题》100道有答案解析
- 2024年中考英语真题-带答案
- 剪映专业版:PC端短视频制作(全彩慕课版) 课件 第3章 短视频剪辑快速入门
- (高清版)JTG 6310-2022 收费公路联网收费技术标准
- 储能一体柜技术协议
- 设备间火灾应急预案
评论
0/150
提交评论