Skip to main content

兼容性

兼容性 CODESYS 项目

存储格式

使用案例

支持

在新中加载项目 CODESYS 无数据丢失版本

为较老的人保存项目 CODESYS 版本

在旧项目中开设新项目 CODESYS 版本

--

以较新的项目开放的现有项目 CODESYS 版本尽可能长时间地保持在“兼容模式”。只要您仅对不需要任何新功能的项目进行更改,存储格式就保持不变。这就是为什么原来 CODESYS 版本可以继续打开和编辑项目而不会丢失数据。如果您进行的更改需要在项目中保存新数据,那么您将会收到有关这种情况的交互式通知。如果兼容性违规不可接受,您可以选择撤消最后的更改。

您通常可以在较旧的内存版本中打开具有较新内存版本的项目 CODESYS 版本,但强烈建议不要这样做。能否打开项目取决于旧版本中插件类型的可用性。加载此类项目时会显示相应的消息。

您还可以选择保存旧版本的项目 CODESYS 通过执行 文件另存为 命令。在这种情况下,有关哪些对象受到数据丢失影响的信息将显示在 留言 看法。但是,保存旧版本的项目会影响明确的唯一存储格式。项目没有完全转换,其中编译器版本或类似设置已适应旧版本。

上网行为

使用案例

支持

编译一个用旧版本创建的项目 CODESYS 版本,在新的 CODESYS 版本

新版本无需在线修改即可登录。

--

新的 CODESYS 版本无法为现有项目生成与创建项目的旧版本相同的代码。如果您需要登录正在运行的应用程序而无需在线更改或下载,则需要使用控制器上上次加载的版本打开项目。这 CODESYS Installer 项目分析可帮助您恢复原始版本(如果尚不存在)。

因此,这意味着使用更新的或不同的版本打开项目需要更新项目。这很可能需要重新下载运行时环境。您还需要测试应用程序是否可能因编译器或图形编辑器中的新功能或错误修复而导致行为发生变化。一般来说,会尝试尽量减少新的编译器错误或现有项目的行为更改,以便尽可能减少更新到新版本的工作量。

为了与现有运行时兼容,需要遵守以下几点:

  • 新功能在 CODESYS 通常在设备描述中启用。因此,对于较旧的运行时系统或较旧的设备描述,它们被禁用。

  • 所有外部库的版本都通过设备描述来解析。结果,它们与相应的运行时系统相匹配。

  • 内部库由 CODESYS 版本,与运行时系统的版本无关。

  • 通信服务是根据带有标签的共享格式构建的。运行时系统会忽略未知标签。因此,可以更改通信服务,但编程系统不会期望运行时系统解释新信息。

兼容性 CODESYS 图书馆

使用案例

支持

使用在较旧的版本中创建的编译库 CODESYS版本,在新的 CODESYS 版本。

使用在新创建的编译库 CODESYS 版本,在较旧的 CODESYS 版本。

--

编译库应始终以最低的版本创建 CODESYS它们需要兼容的版本。老的 CODESYS 版本识别使用较新版本创建的库并拒绝在项目中使用它们。该检查基于库中设置的编译器版本。根据库的内容,存储格式也可以发挥作用。

相同的规则 CODESYS 项目也适用于源库。

的兼容性 CODESYS 运行时系统

不过不建议使用旧版本 CODESYS 以及更新版本的运行时系统。这种兼容性尚未经过明确测试。由于较新的运行时系统中的安全修正,可能与较旧的系统不兼容 CODESYS 版本。

为了与现有运行时版本兼容,需要遵守以下几点:

  • 新功能在 CODESYS 通常在设备描述中启用。因此,这些版本对于较旧的运行时系统或较旧的设备描述被禁用。

  • 所有外部库的版本都通过设备描述来解析。结果,它们与相应的运行时系统相匹配。

  • 内部库由 CODESYS 版本,与运行时系统的版本无关。

  • 通信服务是根据带有标签的共享格式构建的。运行时系统会忽略未知标签。因此,可以更改通信服务,但编程系统不会期望运行时系统解释新信息。

设备描述的兼容性 – 运行系统

使用案例

支持

登录期间接受较旧版本的设备描述和较新的运行时系统。

不接受较新版本的设备描述和较旧的运行系统,因此登录被拒绝。

--

现有项目必须在现有运行时系统上运行,即使使用较新的系统也是如此 CODESYS 版本。这可以通过不更改项目中的设备描述并使用与运行时系统版本匹配的现有版本来实现。如果设备描述的版本和运行时系统没有太大差异或不兼容,也可以登录运行时系统:

  • 设备描述包含外部库的列表,其外部函数在运行时系统中实现。库的相应版本在库占位符列表中指定。该列表由设备制造商定义。

    提示

    占位符列表应仅包含其相应运行时组件在运行时系统中可用的库。

  • 可以配置设备描述和运行时系统之间的兼容性范围。这意味着如果版本不匹配,您将无法登录控制器。设备制造商可以通过运行时系统中的以下设置来选择此范围(请参阅 SysTargetItf.h 运行时系统):

    • SYSTARGETKEY_INT_TARGET_VERSION_MASK “TargetVersionMask”:指定用于检查目标版本与设备描述的兼容性的掩码的设置。仅检查掩码中的有效数字。

    • SYSTARGETKEY_INT_TARGET_VERSION_COMPATIBILITY_MASK “TargetVersionCompatibilityMask”:指定兼容性掩码的设置,用于检查目标版本与设备描述的兼容性。接受低于目标版本或相同版本的设备描述。更高版本的设备描述被拒绝。

1. 当前示例 CODESYS

CODESYS 版本

CODESYS 控制版本

设备描述版本

受到推崇的

限制

评论

3.5.19.0

3.5.19.0

3.5.19.0

是的,最佳

--

这是最佳组合。

3.5.19.0

3.5.12.0

3.5.12.0

是的

--

这是一个典型的兼容性案例。

3.5.19.0

3.5.12.0

3.5.10.0

不,但有可能

登录控制器时警告 DevDesc 不匹配

这是可能的,因为 DevDesc 比控制器的版本旧。

3.5.19.0

3.5.12.0

3.5.19.0

无法访问控制器

默认情况下,这会被拒绝,因为 DevDesc 和运行时系统彼此不兼容。

3.5.19.0

3.5.10.0

3.5.10.30

无法访问控制器

这是可能的,因为 DevDesc 在3.5.10.x的兼容范围内。



2. 一个老的例子 CODESYS

CODESYS 版本

CODESYS 控制版本

设备描述版本

受到推崇的

限制

评论

3.5.17.0

3.5.19.0

3.5.19.0

由于运行时系统中的安全修正,可能会出现不兼容性。

所有外部库的集合必须在以下位置可用 CODESYS。外部库中可能使用了较新的 IEC 语言资源,从而导致编译错误。

3.5.17.0

3.5.19.0

3.5.17.0

不,但有可能

由于运行时系统中的安全修正,可能会出现不兼容性。



启动项目+保留-运行系统的兼容性

使用案例

支持

较新的运行时系统会加载较旧的启动项目。

较旧的运行时系统会加载较新的启动项目。

--

必须能够从主版本内的运行时系统加载现有的引导项目。根据目标的类型指定检查现有引导项目(VendorID, DeviceID,以及 DeviceVersion 自 V3.5.8.0 起)加载前。

从保存的保留文件中保留变量(<application>.ret)或来自 SRAM 的数据必须始终兼容。每个保留区域的校验和保存在单独的文件中。相同的校验和保存在引导项目中。该校验和由编译器根据保留数据生成,是保留区域中所有变量及其各自类型的标识。如果保留数据的校验和与启动项目中的校验和不匹配,那么您可以在运行时系统中使用多个选项来选择行为。您可以在 [CmpApp] 的部分 cfg 文件:

  1. Bootproject.RetainMismatch.Init = 1:启动项目已加载并保留已初始化。

  2. Bootproject.RetainMismatch.Exception = 1:启动项目已加载,但应用程序仍处于停止状态,并设置为异常状态。这种情况可以通过手动重置来纠正。

  3. 无设置 [DEFAULT]:启动项目未加载,并且错误消息添加到记录器中。

在运行时系统版本 3.5.7.0 及更低版本中,校验和是根据应用程序的整个数据计算的。在较新的版本中,校验和仅根据保留区域中的数据计算。这意味着保留数据可以加载到具有较新版本的引导项目中,即使项目已更改,只要这些更改不涉及对保留数据的任何更改。