




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
访问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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育科技的力量优化教学流程
- 挖掘教育大数据潜力无限的决策支持系统
- 超市收银员培训手册
- 全球创新药研发成本控制与效益分析2025年研究报告
- Cationomycin-生命科学试剂-MCE
- 新疆维吾尔自治区七校联考2024-2025学年九年级化学第一学期期末学业质量监测模拟试题含解析
- 唐山师范学院《农产品市场营销》2023-2024学年第一学期期末试卷
- 2025届江苏省邗江区化学九上期末综合测试试题含解析
- 宁夏师范学院《数理统计与随机过程》2023-2024学年第一学期期末试卷
- 公路货运行业数字化转型与绿色运输模式创新报告
- 反应釜(容器)生产企业安全风险分级管控资料
- 2025年度医院检验科人员培训计划
- 2025年重庆高职分类考试(教育类)备考试题库(含答案)
- 老年人心理健康课件
- 充电桩安装劳务合同范例
- 2024年江苏省支付清算知识竞赛备考试题库(含答案)
- 养牛夏季知识培训课件
- 办公空间中的色彩设计课件
- 【MOOC】移动通信-河海大学 中国大学慕课MOOC答案
- 无人机装调检修工理论知识考试题库及答案
- XX区“五好两宜”和美乡村建设试点实施方案(参考模板)
评论
0/150
提交评论