如何安全移动归档数据?

1. 概述

在Comfort Panel中,想要实现长期数据归档,可以通过以下三个系统函数实现该功能:

  • CloseAllLogs--关闭所有日志
  • ArchiveLogFile--归档日志文件
  • OpenAllLogs--打开所有日志
  • 不建议在一个按钮中同时调用三个系统函数,主要原因:

    如果直接在一个按钮中调用三个系统函数。因为文件操作速度比较慢,则会产生错误。例如,第一个函数CloseAllLogs执行后,日志文件还未完全关闭,第二个函数ArchiveLogFile已经开始执行。由于日志文件未完全关闭,系统函数ArchiveLogFile的执行则会产生错误。


    为避免出现这种情况,可以使用系统函数完全执行成功后所产生的系统报警来确保系统函数已完全执行完成,即在上一个系统函数产生的系统报警“到达”事件中调用下一个系统函数。

  • CloseAllLogs:函数成功执行完成,将产生编号为80019的系统报警
  • ArchiveLogFile:函数成功执行完成,将产生编号为80048的系统报警
  • OpenAllLogs: 函数成功执行完成,将产生编号为80026的系统报警
  • 注意:在使用审计追踪功能时,系统函数ArchiveLogFile的模式请使用“移动”模式,否则将会因为复制数据产生两个数据段而违反FDA准则。

    2. 拷贝或移动一个归档数据

  • 2.1 关闭所有归档
  • 在“计划任务”中添加一个用于归档的任务。

    在属性窗口中设置该任务的触发时间。

    在任务“archiveTask”的“更新”事件中调用系统函数“CloseAllLogs”。

  • 2.2 归档日志文件
  • 当“CloseAllLogs”函数执行完成后,会产生编号为80019的系统报警。在“HMI报警->系统事件”选项卡中可以导入所有系统报警。

    在系统报警80019的“到达”事件中组态系统函数“ArchiveLogFile”归档日志文件。

  • 2.3 打开所有归档
  • 当系统函数“ArchiveLogFile”执行完成后,会产生编号为80048的系统报警。在系统报警80048的“到达”事件中组态系统函数“OpenAllLogs”打开日志文件。

    3. 拷贝或移动多个归档数据

  • 3.1 关闭所有归档
  • 在“计划任务”中添加一个用于归档的任务。

    在属性窗口中设置该任务的触发时间。

    在“archiveTask”任务的“触发”事件中调用系统函数“CloseAllLogs”。

  • 3.2 归档日志文件
  • 由于需要归档多个日志文件,则需要编写VBS函数实现多个日志文件的归档。

    当系统函数“CloseAllLogs”执行完成后,会产生编号为80019的系统报警,可以在系统报警80019的“到达”事件中组态VBS函数“ArchiveAllLogs”实现多个日志文件的归档。

  • 3.3 打开所有归档
  • 在变量表中建立用于计数的变量。

    当系统函数“ArchiveLogFile”执行完成后,会产生编号为80048的系统报警。因为需要归档多个日志文件,所以会产生多个80048的系统报警。需要编写VBS函数判断多个日志是否都已经归档完成,在所有日志文件都被归档完成的情况下,才能打开日志文件。编写如下VBS函数实现所有日志文件都被归档完成才打开日志文件的功能。

    在编号为系统报警80048的到达事件中调用编写的VBS函数“OpenAfterAllArchive”。