打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
WinCC 中使用备份归档,并在需要时自动链接备份归档
userphoto

2023.03.23 广东

关注

原创 科控自动化 科控自动化

1 概述
在工业生产中,WinCC 归档的生产历史数据起到很重要的作用。一部分历史数据可以反映设备运行状态的变化,一部分历史数据可以用来分析某些参数改变对生产效果的影响,还有一部分数据用来进行生产故障分析。所以需要尽可能多的保存历史数据。但是,随着在线历史归档数据的增多,WinCC 的性能也会受到影响,所以 WinCC 提供了归档数据备份功能,在满足存储在线归档数据的基础上,还能保证历史归档数据不丢失。因此,本文档将介绍如何使用 WinCC V7.5 SP1 的归档备份功能。
2 WinCC 归档数据的限制
在 WinCC 归档组态中可以组态变量记录和报警记录的归档大小,如图 1 所示。其中单个分段就是一个 SQL 数据库文件,所有分段是 WinCC 所保存的所有的在线归档数据。

在 WinCC 项目文件夹下的 ArchiveManager 文件夹中保存的是 WinCC 在线归档数据。
其中 TagLoggingFast 文件夹下保存的是快速归档文件,如图 2 所示:

在归档组态中,需要保证所有单个归档(包括快速归档,慢速归档和报警归档)片断的总数不超过某一个固定值。经过测试比较,SQL 数据库所能连接的归档片断最大可行的数量为 200 个。归档片断个数不能过多地超过这个数量,否则会影响 Microsoft SQLserver 运行性能。这反过来会导致数据管理错误。
同时 WinCC V7.5 SP1 中单个归档片断大小不应该超过 2G。
详细信息可以参考:
https://support.industry.siemens.com/cs/cn/zh/view/34473263
3 WinCC 归档备份功能
可以在 WinCC 归档组态中启用归档备份功能,如图 3 所示。

激活备份功能之后,所有归档文件在归档分段文件完成 15 分钟后或达到分段最大尺寸之
后都会被放到备份归档路径下。其中备份路径可以是本地路径,也可以是网络路径,如图 4 所示。

如果同时也选择了“备份到两个路径”选项,那么会同时在两个路径下保存备份归档,如图 所示:

4 链接备份归档的方法
WinCC 可以直接查看在线归档数据,例如通过在线表格或在线趋势控件加载在线归档数据。备份出去的归档数据则无法直接查看,需要先链接备份归档之后才能查看这些归档
数据。目前,在 WinCC V7.5 SP1 中存在以下几种链接备份归档的方法:
 在变量记录编辑器中链接
 使用 WinCC 在线表格或在线趋势控件链接
 通过脚本链接归档
4.1 在变量记录编辑器中链接归档
打开变量记录编辑器,选择“归档”并右键,然后依次选择“归档组态”“快速变量记录”(或“慢速变量记录”)“链接归档”,如图 6 所示。

然后在弹出的窗口中选择备用路径及归档即可,链接成功后提示如图 7 所示。

同样可以断开与备份归档的链接,在图 6 中选择“断开与归档的连接”条目即可。在弹出的数据库选择”对话框中选择需要断开的归档


断开成功的提示如图 9 所示。

4.2 使用在线表格或在线趋势控件链接归档
还可以通过在线表格或在线趋势控件上的“连接接归档”和“断开链接”工具来链接或断开备份归档。
默认情况下,“连接备份”和“断开备份”工具不会显示在控件上,需要在控件属性中把它们显示出来。如图 10 所示。

连接备份”和“断开备份”工具显示在控件工具栏中,如图 11 所示

点击“连接备份” ,弹出选择备份归档的对话框,如图 12 所示。选择备份路径及归档
文件后,点击“确定”按钮即可把相应归档链接到 WinCC 运行系统。

同样,点击“断开备份” 可以断开所链接的备份归档,如图 13 所示:

4.3 通过脚本链接归档
可以使用 VBS 脚本来链接或断开备份归档。其中链接备份归档的语法如下:
HMIRuntime.Logging.DataLogs.Restore [SourcePath] [TimeFrom] [TimeTo] [TimeOut]
[Type]
各参数含义如下:
 SourcePath:归档的备份路径。
 TimeFrom、TimeTo:要恢复数据的时间段,这里要用 UTC 时间。
 TimeOut:是否等待。因为链接归档需要时间,此参数为-1 时,脚本会等待链接结果。
 Type:所链接的归档类型。1 代表快速归档,2 代表慢速归档,3 代表快速归档和慢速归档。
注意:
不写参数时将链接备份路径下所有的归档文件到 WinCC 运行系统。
TimeFrom 和 TimeTo 的时间格式错误时也会链接备份路径下所有的归档文件到 WinCC行系统。
链接函数是有返回结果的。返回结果为 0 时正常,为 1 时代表归档已经链接或备份路径下没有备份归档,此两种结果都可以认为是正常。其它错误信息如表 1 所示。
表 1 错误代码

错误代码错误原因0x80047200WinCC 没有激活0x80047201无效的归档类型0x80047202无效的时间下边界0x80047203无效的时间上边界0x80047204无法在项目文件夹下创建 'CommonArchiving'0x80047205超时0x80047206WinCC 取消激活0x80047207无效签名0x80047208无法加载数据库0x80047209不能复制数据到 'CommonArchiving'0x8004720A数据库名称无效0x8004720B无数据库列表0x8004720C数据库已经断开0x8004720D数据库无法断开0x8004720F未签名的数据连接0x80047210路径错误

断开备份的语法:
HMIRuntime.Logging.DataLogs.Remove [TimeFrom] [TimeTo] [TimeOut] [Type]
参数含义和链接归档语法相同。

5 应用举例
下面以趋势显示时自动加载归档数据为例介绍 WinCC 备份归档的组态及自动链接。在查询历史数据时,如果所查询的时间范围超过了在线归档数据的时间范围,则自动加载备份归档。
5.1 变量组态
在 WinCC 中创建内部变量,如图 14 所示。

5.2 归档组态
在 WinCC 变量记录编辑器中创建过程值归档,如图 15 所示。

设置归档属性,单个分段时间范围为 1 小时,所有分段时间范围为 2 小时,这样可以查询最近 2 个小时的归档数据。如图 16 所示

启动归档备份,设置备份路径,如图 17 所示。

5.3 画面组态
在 WinCC 中创建以下画面,并设置“Start”为起始画面。

在“Start”添加画面切换按钮以及画面窗口,如图 19 所示。

两个画面切换按钮分别连接画面“Main”和“Trend”,如图 20 所示。

在“Trend”画面中添加选项组控件用来选择是否要自动链接备份归档,添加 Date and Time Picker 控件用来设置曲线的开始时间和结束时间,并添加查询按钮、趋势控件,如
图 21 所示。

为趋势控件选择加载的归档变量,如图 22 所示。

并设置趋势控件的时间基准为“本地时区”,如图 23 所示。

在查询按钮的事件中编写曲线查询脚本,如图 24 所示

在脚本中判断结束时间是否晚于开始时间,是否加载备份归档,并判断设置的时间范围是否在在线归档范围之外,如果是则加载对应的备份归档。需要注意,在执行 Restore令加载备份归档之前,需要把设定的时间范围转换成 UTC 时间。具体脚本如下:

Dim OP1,myTrendSet OP1 =ScreenItems('OP1') '在线趋势控件名称Set myTrend =ScreenItems('myTrend') '在线趋势控件名称Dim BeginTime,endTimeSet BeginTime=ScreenItems('BeginTime')'开始时间控件名称Set endTime=ScreenItems('endTime')'结束时间控件名称If DateDiff('s',BeginTime.value,endTime.value)>0 Then'结束时间晚于开始时间If OP1.Process =1 Then'自动连接备份归档Dim BeginTime_restore,endTime_restoreDim restore_boolrestore_bool=0BeginTime_restore=FormatDateTime(BeginTime.value)endTime_restore= FormatDateTime(endTime.value)If DateDiff('s',endTime.value,DateAdd('h', -2, Now))<=0 Then'结束时间在归档时间范围内If DateDiff('s',BeginTime.value,DateAdd('h', -2, Now))>0 Then'开始时间在归档时间范围外endTime_restore= DateAdd('h', -2, Now)restore_bool=1End IfElse'结束时间在归档时间范围外restore_bool=1End IfIf restore_bool=1 Then'查询时间超过在线归档数据时间范围之外BeginTime_restore=DateAdd('h', -8, BeginTime_restore)endTime_restore=DateAdd('h', -8, endTime_restore) '转换为 UTC 时间HMIRuntime.Trace '归档连接开始时间:' & CStr(BeginTime_restore)& ',结束时间:' & CStr(endTime_restore) & vbNewLineHMIRuntime.Trace '归档连接结果= ' &HMIRuntime.Logging.DataLogs.Restore('E:\db1',CStr(BeginTime_restore),CStr(endTime_restore),-1,1) & vbNewLineEnd IfEnd IfmyTrend.TimeAxisIndex =0 '时间轴索引myTrend.Online =0myTrend.TimeAxisRangeType =1 '时间轴类型-时间范围myTrend.TimeAxisBeginTime = BeginTime.value '起始时间myTrend.TimeAxisEndTime =endtime.value '结束时间elseMsgbox '结束时间应该晚于开始时间!'End If

在画面关闭事件下断开备份归档的链接,脚本如图 25 所示。

5.4 运行结果
在 WinCC 项目属性中取消“只能对项目目录进行写保护访问”选项,如图 26 所示,并在计算机属性中启用“变量记录运行系统”,然后激活 WinCC 项目

打开 WinCC 变量模拟器,来模拟变量的变化,设置如图 27 所示。

切换到趋势画面,开始时选择“不加载备份归档”,然后选择在线归档时间范围之外的某个时间范围,本例中选择如图 28 所示,然后点击查询按钮。

可以看到在这个时间范围内并没有数据显示出来。
接下来选择“自动加载备份归档”选项,设置相同的时间范围,点击查询按钮。对应的历史归档数据就会从备份归档中被重新加载,并呈现在曲线中。如图 29 所示

此时,点击“断开备份”工具可以看到已经链接到 WinCC 运行系统的归档,如图 30 所示。

切换到主画面,趋势画面被关闭,会触发断开备份的脚本。然后再切换回趋势画面,点击“断开备份”工具可以看到所有链接到 WinCC 运行系统的归档已经被断开,如图 31 所示。

作者自我介绍:工控小周

人们中眼的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成超凡的必要条件。按比例计算就是:如果每天工作八个小时,一周工作五天,那么成为一个领域的专家至少需要五年。我从信捷(干了五年)出来后,做过步科独立销售,做过北辰 自己单干过 ,可是我发现通用品越来越难做,生意越来越难做,但是生活还得继续下去,我就在想,白天想,夜里想 突然想到2011年认识的巨控的总经理,他有好的产品,无线远程监控模块GRM500,于是我从无锡硕放飞广州, 经培训成了巨控产品经理,在巨控负责销售和技术,并且一直努力专注下去!一直不忘初心,经常奔赴第一现场,进行项目评估,项目实施,数据采集,工业物联通讯,上位机,APP组态等。159618(工控小周)72327

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在 WinCC 运行状态中如何连接或断开已经导出的报警记录或变量记录的归档片段?
西门子wincc V7.5SP1常用功能介绍(5)
date picker使用
Wincc V7.5变量周期归档图文教程
WinCC历史趋势的制作(4页)
FineReport报表工具内置JS的使用之四 (日期校验)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服