【问题标题】:Track program change on WAGO PLC with CoDeSys使用 CoDeSys 在 WAGO PLC 上跟踪程序更改
【发布时间】:2015-11-14 09:07:10
【问题描述】:

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

online_changebefore_download这样的系统事件,但我不知道如何实现它们的功能。

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

【问题讨论】:

    标签: codesys


    【解决方案1】:

    在您的情况下,变量声明类型应为VAR RETAIN PERSISTENT。在RETAIN 下声明的变量只会在程序更改时(故意)丢失其值。

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

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

    【讨论】:

    • @BatRamboZPM 如果您发现了不同的方式,请您发布您自己的答案以供参考。
    • 您的答案指向正确的解决方案。我使用了类似的实现。
    【解决方案2】:

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

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

    当然,上面的建议也可以。

    【讨论】:

      猜你喜欢
      • 2017-10-02
      • 2020-04-10
      • 2020-12-31
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多