1

每次更新 PLC 程序以跟踪更改时,我都需要增加一个整数值。

有类似online_changeand之类的系统事件before_download,但我不知道如何实现它们的功能。

我还需要在更新之间保存价值。我认为应该创建跟踪变量,RETAIN但不确定。

4

2 回答 2

0

变量声明类型应该适合VAR RETAIN PERSISTENT您的情况。在 only 下声明的变量RETAIN会随着程序更改(有意地)丢失它们的值。

我相信内置的 Codesys 库SysLibProjectInfo.lib具有您正在寻找的功能SysGetProjectID。如果您将 SysGetProjectID 存储为 aRETAIN PERSISTENT然后与之进行比较,您可以跟踪更改(或者,这个唯一值可能正是您最初想要的,而无需手动创建 ID)。

注意:根据您声明变量的方式,更改 I/O 配置甚至可能对VAR RETAIN PERSISTENT变量产生意外更改(因为所有动态分配的地址都已移动,并且可能不会指向它们过去的位置)。

于 2015-08-25T06:58:42.373 回答
0

如果我了解您,您只想知道 PLC 上正在运行什么版本,并且您想跟踪您所做的更改?你可以通过两种方式做到这一点:

由于每次在 PLC 外部进行更改时它都是一个常量,因此您滚动一个变量的 rev,该变量声明为 SoftwareVersion :WORD := 100; 并将其保存在修订版全局列表中,您可以在下载到 PLC 之前添加注释并更改版本。您还可以使用具有字段的 PLC 汇总区域来输入值,然后您可以通过 CoDeSys 读取它们而无需软件上传。

当然,上面的建议可以奏效。

于 2015-11-14T01:07:10.010 回答