Skip to main content

白皮书:从用户的角度进行模块化

引发

CODESYS 3.5 SP17 我们进行了重大的架构转换。以前,大多数编程系统功能都捆绑在一个内聚的设置中。仅有的 CODESYS SoftMotion 以及付费的附加组件 CODESYS Professional Developer Edition 是分开的。在转换过程中,我们现在将这种模块化继续深入到核心功能中。大多数编程语言编辑器、现场总线配置器和代码生成器现在都外包给他们自己的附加组件。像可视化或图标配置这样的大功能也是如此,举两个例子。重要的基础设施功能,例如用户界面结构(菜单系统、导航器、消息窗口等)、编译器前端以及用于项目处理和与控制器通信的组件仍然是核心。应该注意的是,将来可能会将更多核心部分移动到单独的附加组件中。

我们将主要使用这种模块化来均衡各个组件的版本周期。过去需要 CODESYS- 将有关新功能和改进的开发集中到每年一个日期 - 即服务包的发布日期。刚刚未完成的功能通常会导致服务包被推迟。明显偏离计划的功能已被推迟一整年。我们希望这种环环相扣既符合我们自己的利益,也符合每个人的利益 CODESYS- 解决用户和独立版本并在未来发布每个附加组件。

为了 CODESYS用户,有许多明显和重要的优势。

  • 功能在完成后立即发布,并尽快可用。

  • 附加组件的 Beta 版本可以交付给感兴趣的用户,以便及时获得反馈。这样的 beta 版本可以在其他稳定的环境中运行。

  • 可以删除不必要的附加组件,这对空间需求和整体性能都有好处。

当然,这种灵活性被增加的复杂性所抵消。在本白皮书中,我们想描述

  • 存在哪些限制

  • 我们采取了哪些措施来使复杂性可控

  • 我们为典型应用推荐哪种程序

设置

该设置仍然来自 CODESYS Store International 可以下载完成。已经属于的所有组件 CODESYS 3.5 SP16 和更早版本也包含在当前设置中,即安装后,用户会收到一个熟悉的整体系统,没有任何功能妥协。

我们认为用户应该在自己的时间完成核心系统和附加版本的单独编译,而不是从一开始就处理它。我们还知道,许多用户对整个软件包并不满意,并且可能永远不想进行自定义构建——这是一种完全合法的方法,该工具不会妨碍该方法。

安装程序

安装程序将自动安装一个名为的新全局工具 CODESYS Installer 名字。有了它,每个人都可以 CODESYS- 管理安装和相关的附加组件。它是希望积极受益于模块化优势的用户的关键。

随着 CODESYS Installer 可以管理任意数量的独立安装。在每个单独的安装中,可以准确指定哪些附加组件应该是其中的一部分。为了更清楚起见,可以为每个安装指定一个描述性名称。每次安装时,您都可以设置应该报告哪些更新;默认情况下,它设置为“仅发布版本”,但也可以切换到预发布版本或关闭以锁定安装状态。

有关有用功能的更多信息 CODESYS Installer 可以在下面的建议中找到。

在里面 CODESYS 我们有通知中心 CODESYS Installer 连接的。此处显示有关合适更新的消息。所以你不必总是 CODESYS Installer 运行以收到更新通知。

兼容性

关键词兼容性隐藏了模块化导致的最大复杂性增加。虽然传统上一直存在线性进步,因此兼容性问题很简单(“新 CODESYS 可以阅读旧项目”),这在高度模块化的环境中要困难得多。

我们做出的决定以及在以下部分中更详细地解释的决定不是基于技术上可行的,而是基于合理可管理的。

项目兼容性

这里的问题是在多大程度上 CODESYS-安装可以用另一个打开一个项目或库 CODESYS- 安装已创建。

我们没有改变这个机制。行为与中的相同 CODESYS- 模块化之前的版本。如果项目中的数据由于是从较新的环境创建而无法使用当前版本读取或解释,则受影响的对象会在导航器中用红叉标记,或者使用 [不完整] (→ 编辑器仍然可以打开)或 [未知] (→ 无法再打开编辑器)。在这两种情况下,项目都无法加载到控制器上(因为可能会导致未定义的程序行为),它只是站立 另存为 可用(以防止意外覆盖原始项目并因此丢失数据)。

多年来,这种行为已经证明了自己。

代码兼容性

这是关于一个人是否拥有 CODESYS- 一个项目的安装总是可以生成与另一个相同的二进制控制代码 CODESYS-安装。简单地说:你能用一个 CODESYS-无需在线更改或下载即可打开安装并登录控制器?

为此目的,有多达并包括 CODESYS 3.5 SP17 编译版本的概念。我们将启动编译器版本 CODESYS 3.5 移除 SP18。如果您依赖能够在不进行在线更改或下载的情况下登录到带有项目的控制器,那么您必须以完全匹配的方式启动项目 CODESYS- 打开安装。

放弃编译器版本概念的决定有很多重要的论据:

  • 不仅编译器而且所涉及的编程语言编辑器和现场总线配置器都对生成的代码负责。由于这些现在已外包给独立版本的附加组件,原则上不再有统一的包罗万象的编译器版本。从用户的角度来看,我们发现尝试将不同的附加特定编译器版本组合成一种编译器版本配置文件过于复杂。在 CODESYS UML (部分 CODESYS Professional Developer Edition) 多年来一直有一个单独的语言模型生成版本,但即使有了这个附加组件,这个概念也没有在实践中证明自己,更不用说当前的众多附加组件了。

  • 即使是简单的形式,编译器版本也需要用户提供详细的知识。最晚,更正一个意外设置错误的版本通常是有问题的。有过不好体验的用户,或者根本不相信这个概念的用户,过去已经进行了几次维护安装,以便在维护时能够安全地登录到正在运行的控制器。正如我们将在下面看到的,我们现在为这种情况提供强大的交互式支持。

  • 每个新的编译器版本都会使我们的内部代码库膨胀。一方面,这对性能和安装尺寸有负面影响。另一方面,我们无法测试此代码库中的所有组合。由于编译器版本的维护在一定程度上也容易出错,这与我们不断提高的质量标准直接矛盾。换句话说:我们不能保证以前的编译器版本概念在所有情况下都能可靠地工作,如果我们不得不使这个概念由于模块化而变得更加复杂,我们当然不能。

  • 前面的两个论点可以总结如下: 从用户的角度来看,能够使用我们的工具支持生成合适的版本来维护案例,而根本不需要处理编译器版本,这是很有吸引力的。

运行时系统兼容性

这里的问题是在多大程度上 CODESYS-安装与运行时系统版本兼容。换句话说:你能想出一个新的吗? CODESYS- 登录旧控制器并使用可用的在线功能?

我们没有改变相关的机制。原则上,编程系统和运行系统版本可以根据需要组合,但有以下限制:

  • 新的编程系统版本可能会提供旧运行时系统版本尚不支持的功能。在这种情况下,该功能不可用。

  • 如果安全扩展禁止这样做(例如强制用户管理或新型加密算法),较旧的编程系统版本可能无法与较新的运行时系统版本一起使用。

给用户的建议

当然,本节描述的场景也可以组合使用。我们相信这涵盖了绝大多数与实践相关的案例,并希望使用我们的工具尽可能地支持它们。我们希望在未来继续根据这些用例优化我们的软件。

设想

推荐

工具支持

正在进行的项目的日常开发

CODESYS版本和相关的附加组件应始终保持最新。我们一直致力于大大小小的改进、错误修复和安全更新,因此最新版本始终是最好的版本。几乎没有理由坚持使用旧版本。

CODESYS Installer 显示与安装相关的所有可用更新。只需单击几下鼠标,即可下载和安装这些更新。

此外,通过通知中心,它位于 CODESYS 集成为可停靠窗口,还显示可用更新(与当前安装完全匹配)。从这里您可以直接前往 CODESYS Installer 被跳跃,因此它不必一直处于活动状态。

我们提供的所有设置和附加组件都已签名,因此通过互联网下载它们是安全的。我们用相应的(部分交互的)测试方法扩展了 PackageManager。

在团队中的几个人必须使用统一安装的情况下,对正在进行的项目进行日常开发

如上。

团队中的一个人安装可用的更新并对其进行测试。如果发布成功,则在团队中分发新的参考安装。

在里面 CODESYS Installer 现有安装可以导出为描述文件。此文件可用于在另一台机器上创建相同的安装。此机制也可通过命令行使用,因此特别适用于自动化环境。

在受保护的环境中试用最新的附加功能

现有的生产性使用 CODESYS-安装重复。在此,将根据需要安装和更新任何 beta 版本的附加组件。

那些有效使用的 CODESYS- 安装完全不受影响。项目的正常工作不受影响。

CODESYS Installer 可以轻松创建现有安装的副本。对于每次安装,您可以选择是否只提供和安装已发布的更新或实验性测试版更新。

以前,每台机器只能安装一次特定的服务包或补丁。自引入安装程序以来,此限制已被取消。

在不更改相关库存项目的情况下维护现有控制器。必须保证无需在线更改或下载即可登录控制器,

这将是一个完全适合该项目的 CODESYS- 安装创建。无需处理编译器版本,就可以保证生成二进制相等的控制代码。

加载项目时,当前项目之间的差异 CODESYS安装和创建版本,您有机会下载并安装完全适合项目的安装。然后在这个新创建的版本中自动打开项目。

此外,装载时当然也可以选择机器上已经存在的合适的安装。

获取安装 CODESYS Installer 自定义名称。这样,如果您必须管理大量安装,您就不会忘记事情。

为了不经常收到此类特殊兼容性安装的更新建议,默认情况下这些建议与更新频道分开。

旧现有项目的进一步开发

该项目处于当前 CODESYS-安装进一步发展。由于无论如何都会对代码进行更改,因此到期的在线更改或下载是无关紧要的。

CODESYS 仍然可以无损地加载旧项目。如果缺少必要的附加组件,可以直接从项目加载过程中下载并安装它。否则,项目本身和控制器都受到写和下载保护的保护。