如何在 CODESYS 中构建自动化项目样例

作者:Aharon Etengoff

投稿人:DigiKey 北美编辑

采用新的自动化平台可能会带来陡峭的学习曲线,并引发对供应商绑定的担忧。CODESYS 通过基于 IEC 61131-3 的硬件无关开发环境化解了这些述难题,提供覆盖编程、I/O 映射、可视化以及横跨多硬件平台部署的统一工作流。

本文将演示如何在 CODESYS 中创建一个完整的自动化项目,展示从初始设置到运行测试的全过程。读者将配置设备树,映射 I/O 通道,用 Structured Text(结构化文本)编写逻辑程序,设计可视化效果,连接运行环境以及使用调试策略来验证运行。除了实用型说明外,本文还将重点介绍项目组织、资料库管理和安全部署方面的最佳实践。

虽然本教程使用 CODESYS 的内置仿真器进行访问,但同样的工作流也适用于 DigiKey 提供的硬件平台,如支持 CODESYS 的 PLC、工业用 Raspberry Pi 控制器(如 Seeed EdgeBox-RPI-200)和集成运行时环境的 HMI。最后,读者将会建立一个清晰的框架,在 CODESYS 中构建一个正常运行的自动化应用,并深入了解多种能在工业环境中支持可扩展性和可靠性的技术。

项目设置

第一步是在 CODESYS 开发系统中创建一个新项目。从模板列表中选择标准项目,并指定一个描述性名称,如 MotorControlDemo。在提示选择设备时,请选择 CODESYS Control Win V3,它提供基于 Windows 的运行时环境,可在没有专用硬件的情况下进行仿真。这样,就可以在部署到 PLC 或工业 Raspberry Pi 模块等平台之前测试整个工作流程。

项目以设备树开始。设备树管理控制器、I/O 通道和通信链路。在本例中,设备树包含一个控制器对象、用于启停按钮的数字输入,以及用于电机和指示灯的数字输出。要将这些信号连接到控制逻辑,可在全局变量列表或程序编辑器中定义 StartButton、StopButton、MotorOn 和 LampOn 等 Boolean(布尔)变量。在仿真过程中,切换这些值可模拟硬件行为。在硬件方面,这些值直接与物理 I/O 点绑定。

用于电机控制输入/输出的 Boolean 变量定义图 1:电机控制 I/O 的 Boolean 变量定义。(图片来源:作者)

在本阶段,清晰一致的命名是最佳做法,可最大限度地减少调试工作,并在添加新功能或设备时简化扩展工作。

编程逻辑

有了项目结构,下一步就是使用 Structured Text (ST) 实现控制逻辑,这是 CODESYS 支持的 IEC 61131-3 语言之一。ST 使用类似 Pascal 的语法,兼具可读性和表现力,可清晰地实现顺序例程和基于状态的逻辑。

项目演示需要一个简单的启/停联锁逻辑:按下启动按钮,电机和灯通电;按下停止按钮,电机和灯断电。这种逻辑通过 ST 实现,如图 2 所示。

用 Structured Text 实现启/停联锁逻辑图 2:用 Structured Text 实现启/停联锁逻辑。(图片来源:作者)

本例说明了 ST 的基本原理,包括条件语句、布尔逻辑和变量赋值。由于变量已在项目设置阶段完成定义,因此直接映射到 I/O 通道,在硬件信号和程序执行之间架起了一座桥梁。

对于大型项目,组织架构是成败的关键。初始化代码可设置默认状态,而循环任务则可监控输入和驱动输出。功能块和库有助于封装逻辑、减少冗余并提高可读性。然后,在仿真过程中开发的 ST 代码只需稍作修改,即可部署到 DigiKey 提供的硬件上(如紧凑型 PLC 或 PAC)。这种可移植性提升了 CODESYS 作为独立于硬件环境的价值。需强调的是,将初始化、循环监控和错误处理过程分离是最佳做法。这样可以提高可读性,确保在项目扩张时的执行过程具有可预测性。

配置设备和 I/O 映射

确定了项目结构和变量后,下一步就是通过 I/O 映射将变量与硬件或模拟 I/O 连接起来。在 CODESYS 中,这是在设备编辑器的 I/O 映射选项卡中处理的,其中每个通道都与一个项目变量配对。

首先在设备树下插入控制器及其 I/O 模块。例如,一个模块可添加两个数字输入端和两个数字输出端。一旦出现具有 I/O 功能的设备,I/O 映射选项卡就会激活,显示输入和输出通道表,并列出变量名、地址和数据类型。虽然设备描述通常会提供默认名称和地址,但用户可以根据系统布线或命名惯例进行修改。

在 I/O 映射选项卡上,可通过三种方式将变量映射到通道:链接现有变量(如 StartButton、MotorOn)、在界面内生成新的隐式全局变量,或直接编辑地址以满足项目要求。根据定义,映射到输入端的变量为只读变量,且每个变量只能映射到一个通道。

在生产环境中,映射时还需要注意电气接口规格,包括信号电平、模块额定值和接地。这些因素虽超出了本教程的范围,但对硬件部署仍然至关重要。

为便于记录或批量编辑,映射以 CSV 格式导出或导入。将 I/O 映射数据以 CSV 格式导出是行业最佳实践,既能为项目审计提供文档支持,也可作为团队协作的可靠依据。

可视化和 HMI(人机界面)

逻辑就绪后,下一步就是创建用于控制和监控系统的用户界面。CODESYS 提供一套集成的 Visualization(可视化)工具集,支持 WebVisu、TargetVisu 和 CODESYS HMI 多种部署模式,方便用户在网页浏览器、本地显示屏或专用设备上运行可视化界面。

在设备树的 Application(应用)节点下,添加一个 Visualization Manager(可视化管理器)对象,然后添加一个或多个 Visualization 屏幕,如 MainVisu。在每个屏幕上拖动用户界面元素,如按钮、灯/指示灯、轨迹显示或趋势图。这些元素通过元素属性对话框与如 StartButton、LampOn 等程序变量绑定。

例如,如需显示电机状态,则可放置一个灯元素,并将其变量链接设置为 LampOn。变量为 TRUE(真)时,灯亮;为 FALSE(假)时,灯灭。变量和元素之间的这种直接绑定可实现直观的运行时交互。

部署模式选项

界面设计完成后,下一步需决定如何向操作人员或外部系统部署该可视化界面。CODESYS 支持多种部署模式,且每种模式都针对不同的性能和网络要求:

  • WebVisu:在网络浏览器中以 HTML5 方式运行,设备通过 HTTP/HTTPS 作为网络服务器。无需专用显示器即可实现远程访问。
  • TargetVisu:在与控制器或设备直接连接的显示器上运行。适用于将控制和 HMI 合二为一的嵌入式系统。
  • CODESYS HMI:专用于可视化的独立运行时实例,能够连接多个控制器。

选择部署模式时,应考虑性能、显示需求和网络拓扑结构。虽然 WebVisu 很灵活,但控制器可能需要支持 HTTP 服务器和额外负载。TargetVisu 可减少网络延迟,但需要本地显示器支持,而 HMI 模式可扩展到多控制器系统。

硬件实例

作为硬件参考,DigiKey 提供的 Maple Systems cMT3072XHT 7" HMI 具有集成的 CODESYS 运行时环境和显示功能,可直接托管项目中创建的可视化屏幕。

可视化设计的最佳实践包括使用库屏幕和参数界面来构建可重复使用的模板。此外,设计人员还应配置报警和跟踪显示,以便只显示关键变量,最大限度地减少控制器负载。这样就可以通过文本列表与变量缩放,支持多语言和单位换算。此外,使用参考线或容器锁定元素位置,确保不同屏幕尺寸下布局保持一致。

可视化界面连通后,就可以与应用进行全面的交互操作了。用户可通过 HMI 启停电机、监控指示灯并查看实时状态。到此为止可视化阶段完成,已准备好为项目进行运行时测试。

部署和运行时测试

编程和可视化完成后,必须将项目部署到运行时环境中。CODESYS 支持多种选项,从内置的 Control Win SL 仿真器到工业硬件上的授权运行时环境。

从 Development System(开发系统)界面的联机菜单中选择目标设备或仿真器并建立连接。将编译好的项目下载到运行时环境,并由 IDE 显示传输状态以及高亮显示任何不匹配的配置。加载结束后,将控制器切换到 RUN(运行)模式开始执行程序。

内置的 Windows 运行时环境无需硬件即可进行快速验证,而 CODESYS 运行时系统也可在嵌入式 Linux 平台上执行,例如 DigiKey 提供的 KUNBUS Revolution Pi (RevPi) Connect 4。这个开源工业 Raspberry Pi 模块展示了同一项目如何在从仿真到现场部署的过程中进行无缝扩展。

调试和最佳实践

除实时监控外,CODESYS 还提供了集成调试环境,以完善和维护项目。用户可以手动设置并执行断点、单步逻辑和执行流分析。Trace(跟踪)工具通过记录变量历史记录来扩展诊断功能,以便进行后续分析,通常用于事后分析。

为便于诊断故障,CODESYS 可以生成暂时覆盖映射信号的强制变量(图 3)。

CODESYS 强制变量命名的约定语法图 3:CODESYS 中强制变量命名的约定语法。(图片来源:作者)

这对于调试或按下按钮等仿真情况特别有用。当强制信号激活时,CODESYS 将用强制值替代映射信号。由于强制操作会干扰实时执行,因此应谨慎使用,而且只能在已映射的通道使用。

能否保持长期可靠,取决于结构化项目管理。Library Manager(库管理器)支持模块化设计和集中式版本控制,而已定义的占位符可确保跨硬件目标构建的一致性。保持稳定的库版本可降低部署或升级时的兼容风险。

除了这些结构性保障措施外,日常最佳实践也同样重要。这些实践包括:在转移至硬件之前在仿真器中验证项目,以及在生产中谨慎使用断点或强制操作,以避免干扰实时周期。同时,将已知良好版本和库集归档,以便快速回滚;记录变量映射关系,提供可视化链接,以支持团队顺利交接,也是良好实践。

结语

CODESYS 将项目设置、I/O 映射、逻辑编程、可视化和调试整合在一个环境中,加快从设计到部署的整个过程。该工作流贯穿 DigiKey 平台,涵盖支持 CODESYS 的 PLC、工业级 Raspberry Pi 控制器以及 HMI,提供了一个从概念验证到可扩展部署自动化系统的实践框架。

DigiKey logo

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Image of Aharon Etengoff

Aharon Etengoff

Aharon Etengoff is a technology writer with extensive experience in the semiconductor and telecom sectors. He develops white papers, technical articles, and high-level collateral for leading companies in both industries. His work has appeared in publications such as EE World Online, EV Engineering, and 5G Technology World. Aharon has written about HBM and GDDR memory, interface and security IP, AI-powered EDA tools, chiplets, 3DIC, and 5G wireless networks. Earlier in his career, he was the managing editor of TG Daily, where he led a team covering emerging tech trends.

关于此出版商

DigiKey 北美编辑