CoDeSys入门实战一起学习(六):CoDeSys软件模型核心架构——从分层结构到核心元素

在CoDeSys中进行PLC程序开发,深入理解其软件模型是构建稳定、高效控制系统的基础。CoDeSys采用标准化的分层软件模型,不仅清晰定义了各类软件元素的关系,还实现了与IEC 61131-3标准的完全兼容,为多设备协同、多程序并行运行提供了坚实支撑。本文将从软件模型的整体架构入手,详细拆解核心元素,并重点讲解最上层的"设备"相关配置与操作。

一、CoDeSys软件模型的整体架构

CoDeSys的软件模型以分层结构为核心,每一层都隐含其下层的诸多特性,通过这种分层设计,将复杂的控制系统分解为若干可管理的部分,同时定义了各部分之间规范的接口方法。该模型不仅能描述如何实现多个独立程序的同时运行,还能实现对程序执行的完全控制,是现代软PLC的软件基础。

从核心功能来看,CoDeSys软件模型的核心价值在于:解决了传统PLC程序只能顺序扫描执行的局限,允许程序不同部分按不同时间、不同比率并行执行;同时具备极强的适应性,既能适配小型PLC系统,也能支撑大型分散式控制系统的开发需求。

二、软件模型的核心元素

CoDeSys软件模型包含五大核心软件元素,分别是设备、应用、任务、全局变量、访问路径和应用对象(后续篇章详细讲解任务、POU等),各元素在分层结构中各司其职,相互协同构成完整的控制系统。

1. 设备:软件模型的顶层核心

设备是软件模型的最上层元素,在CoDeSys V3之前的版本中被称为"配置",它等价于一个PLC所需的所有软件集合,也可理解为一个特定类型的控制系统。对于大型复杂应用(如整条生产线自动化),可能需要多个PLC联机通讯,此时"设备"就对应一个独立的PLC,包含该PLC的硬件装置、处理资源、I/O地址映射和系统内存存储能力。

从本质上来说,设备是具体的硬件对象载体,可涵盖控制器、现场总线站点、总线耦合器、驱动器、I/O模块、触摸屏等各类硬件。每个设备都由专属的"设备描述"文件定义,该文件需提前安装在CoDeSys本地系统中,才能被添加到设备树(工程中展示硬件系统的树状列表)中。

2. 应用:程序运行的支撑系统

应用位于软件模型的第二层,在CoDeSys V2版本中被称为"资源",由设备将多个应用组合成组,并为应用间的数据交换提供支持。每个设备中可包含一个或多个应用,应用不仅是程序运行的支撑系统,还反映了PLC的物理结构,在程序与PLC物理I/O通道之间搭建了关键接口。

应用被分配在PLC的CPU中,可理解为PLC的微处理器单元。在应用内定义的全局变量仅在该应用内部有效,其核心成员包括全局变量、任务、程序组织单元(POU)等应用对象,这些对象的具体功能将在后续篇章详细讲解。

3. 访问路径:数据交互的桥梁

访问路径的核心功能是关联全局变量、直接表示变量以及POU的输入/输出变量,实现信息的有序存储。更重要的是,它提供了不同应用之间数据交换的方法,使得一个应用内的变量可通过其他远程配置进行存取,为多应用协同提供了数据支撑。

4. 通讯功能:跨系统交互的保障

通讯功能负责实现CoDeSys与其他系统的交互,包括其他PLC系统、机器人控制器、计算机等设备,主要用于程序传输、数据文件传输、运行状态监视、故障诊断等场景。通讯方式均采用国际标准,常见的有RS232、RS485等串行通讯,以及CANopen、Profibus、EtherCAT、Modbus、Ethernet/IP、DeviceNet等工业现场总线。

三、软件模型的核心特点

  • 多程序并行执行:支持在一台PLC中同时装载、启动和执行多个独立程序,突破传统PLC顺序扫描的局限;
  • 程序执行完全可控:通过标准任务机制,允许程序不同部分按用户需求定时、定比率并行执行,扩大PLC应用范围;
  • 强适应性:作为国际标准软件模型,不绑定具体PLC系统,可适配小型PLC和大型分散式系统;
  • 支持重用与分层设计:程序组织单元可重复使用,复杂软件可逐层分解为可管理的程序单元,降低开发难度。

四、设备的核心配置:添加与管理

设备作为软件模型的顶层元素,其正确添加与配置是工程开发的第一步。下面详细讲解设备添加、包管理器、设备库等核心操作流程与注意事项。

1. 添加设备:工程初始化的关键步骤

新建工程时,系统会自动弹出对话框,提供"空工程"和"标准工程"两种模板选项。选择标准工程时,需手动选择实际连接的硬件设备;点击"确定"后,工程中会生成对应的设备树,直观展示硬件系统的层级结构。

需要注意的是,CoDeSys V3版本将V2版本中独立的"PLC配置"和"任务配置"窗口整合到了设备树

中,后续进行相关配置时,双击设备树节点即可弹出参数设置对话框。设备树中的每个节点都包含可编辑的名称和描述设备类型的属性,通过这些节点可组建包含多种控制器和总线结构的复杂系统。

根据功能不同,设备可分为两类:

  • 可编程设备:会自动在节点下插入"PLC逻辑"虚节点,可在该节点下添加应用程序、文本列表等编程对象,以及参数管理器等功能对象;
  • 参数型设备:无法分配编程对象,需在编辑对话框中直接设置参数。若设备属性允许,可直接在两种类型间切换,无需删除重建。

2. 包管理器:设备支撑软件的安装入口

所有设备必须先通过"包管理器"安装对应的支撑软件包,才能在工程中添加使用。包管理器可通过"工具"菜单打开,支持添加或删除支撑软件包(目标支撑软件包,简称TSP)。

针对不同硬件设备,需配置的核心参数包括:代码生成器、内存管理、PLC功能、I/O模块配置,同时需链接库、网关驱动程序,以及错误消息相关的ini文件和PLC浏览器信息。TSP作为设备支撑的核心,包含控制标准平台所需的所有文件和配置信息,其核心组成是目标文件(扩展名为*.trg,二进制格式),多个目标文件可共享附加文件。

TSP安装流程:启动CoDeSys V3.x后,通过"工具"→"包管理器"选择安装TSP(安装程序为Codesys-Setup的一部分);安装时,每个目标的目标文件会被放入独立目录并注册路径,相关文件会根据*.package信息拷贝到本地系统;启动CoDeSys时,系统会自动读入已安装的TSP文件,工程中的目标设置会随项目保存。若未安装TSP,则只能选择"None",即进入仿真模式工作。

3. 设备库:硬件设备信息的管理中心

设备库是设备信息的数据库,用于添加、删除硬件设备信息,安装后的设备数据会导入本地系统,供工程开发调用。通过设备库可添加的设备包括:供应商PLC、SoftMotion运动控制设备(编码器、驱动器等)、现场总线及专用接口等。

添加现场总线设备时,需导入供应商提供的设备描述文件,常见类型包括:CANopen的EDS和DCF文件、EtherCAT的XML文件、IO-Link的IODD文件、Profibus DP的GSD文件等。设备库对话框的核心选项及含义如下:

|---------|--------------------------------------------------------|
| 名称 | 说明 |
| 路径 | 显示当前可用的设备路径,"系统库"为CoDeSys默认安装路径 |
| 安装的设备描述 | 已安装设备以树形结构展示,包含名称、供应商、版本,支持按"PLCs""Miscellaneous"等类别筛选 |
| 细节 | 显示设备描述文件的附加信息,包括设备名称、供应商、类别、版本、描述等 |
| 安装 | 打开"安装设备描述"对话框,浏览并安装本地设备描述文件,使设备在系统中可用 |
| 卸载 | 删除当前选中的设备,该设备将从设备库中移除,不再支持工程调用 |

重要注意事项:

  • 安装时,设备描述文件及附加文件会被复制到内部地址,修改原始文件不会影响已安装设备;设备更新后,建议修改内部版本号以便区分;
  • 内部设备库禁止手动修改,如需重装、添加或删除设备,必须通过设备库对话框操作,不可直接复制/删除内部文件。

五、设备编辑器:参数配置的核心工具

设备编辑器是配置设备参数的核心对话框,打开方式有两种:选中设备图标后右键选择"编辑对象",或双击设备树中的设备节点。设备编辑器的主对话框以设备名称命名,包含多个选项卡,对应不同的配置功能,核心选项卡及含义如下:

|-------|-----------------------------------|
| 名称 | 说明 |
| 通讯设置 | 配置目标设备与其他可编程设备(PLC)之间连接的网关参数 |
| 配置 | 展示并设置设备的核心参数 |
| 应用 | 显示PLC上当前运行的应用,支持删除不需要的应用 |
| 文件 | 配置主机与PLC之间的文件传输参数 |
| 日志 | 显示PLC的运行日志文件,用于故障诊断 |
| PLC设置 | 配置与I/O操作相关的应用、停止状态下的I/O状态、总线周期等选项 |
| I/O映射 | 实现I/O设备输入和输出通道的映射配置 |
| 用户和组 | 管理运行中设备的访问用户(与工程用户管理区分) |
| 访问权限 | 设置特殊用户组对运行中对象和文件的访问权限 |
| 状态 | 显示设备的详细运行状态和诊断信息 |
| 信息 | 展示设备的基本信息,包括名称、供应商、版本、序列号等 |

提示:不同硬件设备的编辑器选项卡可能存在细微差异,具体以实际设备型号的配置需求为准。

本文重点讲解了CoDeSys软件模型的分层架构、核心元素及设备相关配置,设备作为顶层硬件对象载体,其正确配置是工程开发的基础。下一篇将聚焦软件模型中的任务配置、程序组织单元(POU)及应用对象,深入解析程序运行的核心控制逻辑与应用对象的协同机制,敬请关注!

相关推荐
荣--1 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森2 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜2 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB3 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode5 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220705 天前
如何搭建本地yum源(上)
运维
大树888 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠8 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质8 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工8 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信