Beckhoff TwinCAT 3 PLC中存储的_AppInfo数据位于哪个文件中

时间:2019-06-04 13:17:46

标签: plc

我正在寻找“ AppTimeStamp”信息,因此可用于验证服务人员是否未更新/更改代码。

Detect code changes on Beckhoff PLC using C# 在此位置,我已经找到了部分信息,但是由于“新用户”的限制,我无法添加评论

2 个答案:

答案 0 :(得分:0)

您可以在_AppInfo实例中找到AppTimestamp。 因此,只需在程序中调用_AppInfo.AppTimestamp即可知道上次应用程序启动的时间。 确保您还使用OnlineChangeCnt计数器检查自上次下载以来的联机更改数,您也可以在_AppInfo实例中找到该计数器。

答案 1 :(得分:0)

保存此值的可能性有很多。 TwinCAT将数据保存到C:\ TwinCAT \ 3.1 \ Boot文件夹中,here说明了不同的文件。

例如,ProjectName可以从配置数据(CurrentConfig.xml),文件末尾(TcBootProject / ProjectInfo / ProjectName)中找到。同一文件包含一个日期(<TcBootProject CreateTime="2019-06-10T13:14:17">),但这似乎是创建的启动项目的构建时间。

我在任何文件中都找不到AppTimestamp的日期,但是也许TwinCAT使用了这些文件夹中文件的创建时间?或者,它隐藏在二进制文件中的某个位置。

在不更新引导项目的情况下更新软件时,文件Port_851_act.tizip被更新。因此,您可以检查其时间戳。当您也更新启动项目时,Port_851_boot.tizip和其他文件也会被更新。

因此,基本上,要检查代码是否由某人更新,请检查Boot目录下文件的修改日期。我想只有.bootdata文件应该更新,因为它们包含已保存的持久性数据。当然,您可以使用3rd party程序轻松更改日期。因此,一种解决方案是比较Port_851.crc文件的内容,因为它包含代码的CRC校验值。当启动项目更新时,它将始终更改。