2. ctrlX AUTOMATION平台架构认知
在真正把应用部署到 ctrlX AUTOMATION 之前,必须先弄清楚“部署的对象到底是什么”。很多初学者会把 ctrlX CORE 当成一台普通工控机,把应用当成一个可执行文件,结果在权限、网络、数据持久化上反复踩坑。ctrlX AUTOMATION 的分层设计决定了:你部署的不是一个孤立程序,而是一个运行在特定操作系统、受设备管理约束、并可能跨边缘与云端协同的“应用单元”。本节从下到上拆解这套架构,并给出一个可复用的部署对象模型。
一、从硬件到应用的四层结构
ctrlX CORE 是硬件载体,通常是一台紧凑型工业控制器,带有实时控制所需的接口(如 EtherCAT、PROFINET、数字量/模拟量 IO)以及面向 IT 的以太网口。它上面运行的是 ctrlX OS——这是整个平台的操作系统层,基于 Linux 构建,但做了工业级加固:提供实时内核扩展、只读根文件系统、安全启动、容器运行时以及统一的软件包管理机制。ctrlX OS 不是普通的桌面 Linux,它把“确定性”和“可维护性”放在首位,因此应用不能随意修改系统分区,必须通过受控方式安装。
在 ctrlX OS 之上是应用运行时(App Runtime)。ctrlX AUTOMATION 采用“应用化”思路:每个功能(无论是 PLC 逻辑、运动控制、视觉处理还是数据采集)都打包成一个 ctrlX App,以容器或原生服务的形式运行。运行时负责拉起这些 App、分配资源、管理生命周期,并提供 App 之间的通信总线(如基于 DDS 或共享内存的实时数据交换)。这意味着部署时你面对的不是一个单体程序,而是一组相互协作的 App 及其依赖。
再往上是设备管理与边缘计算分层。设备管理层负责发现、注册、配置和监控 ctrlX CORE 及其挂载的现场设备;边缘计算层则决定哪些数据在本地处理、哪些上传到云端或企业系统。ctrlX 的典型做法是:实时控制闭环留在 CORE 本地,而数据分析、模型推理、长期存储等非实时任务可以放在边缘网关或云端,通过 ctrlX Data Layer 统一访问。
二、部署对象模型:把“应用”拆成可管理的字段
理解了分层之后,部署对象模型就可以具体化。一个可部署的 ctrlX 应用单元至少包含以下要素:
- 应用镜像:通常是一个 OCI 容器镜像,包含应用代码、运行时库和启动脚本。镜像需要针对 ctrlX OS 的架构(如 ARM64 或 x86_64)构建,并推送到本地或远程镜像仓库。
- 运行时依赖:应用需要哪些系统能力,例如实时线程权限、特定设备节点访问、网络端口、共享内存段。这些在 ctrlX OS 中通过 App 清单(manifest)声明,由运行时在启动时校验和分配。
- 设备配置:应用要控制的现场设备(如伺服驱动器、IO 模块)的拓扑、地址、参数。这部分通常由设备管理层的设备描述文件提供,应用通过 Data Layer 读取。
- 数据接口:应用对外暴露或消费的数据点,例如通过 ctrlX Data Layer 发布的变量、订阅的信号。部署时必须明确数据点的名称、类型、方向和更新周期。
- 权限策略:应用能访问哪些资源、能否修改系统配置、能否访问网络。ctrlX OS 采用最小权限原则,部署时需显式授权。
把这五个要素组合起来,就得到一个部署对象。在 ctrlX 的工程工具(如 ctrlX WORKS)中,这个对象通常表现为一个“App 包”或“解决方案”,可以整体安装、升级和回滚。
三、一个具体的部署示例
假设我们要部署一个“边缘振动监测”应用:从 ctrlX CORE 挂载的加速度传感器采集数据,在本地做 FFT 分析,把特征值上传到云端,同时当振动超限时触发本地停机信号。
按照部署对象模型,我们这样定义:
| 要素 | 具体内容 |
|---|---|
| 应用镜像 | vibration-monitor:1.2.0,ARM64,基于 ctrlX OS 基础镜像构建 |
| 运行时依赖 | 需要实时线程(优先级 80)、访问 /dev/ttyACM0 串口、监听 8080 端口 |
| 设备配置 | 加速度传感器地址 0x1A,采样率 10 kHz,量程 ±16 g |
| 数据接口 | 发布:vibration/rms、vibration/peak_freq;订阅:machine/stop_cmd |
| 权限策略 | 允许写 Data Layer,允许访问串口,禁止修改网络配置 |
部署时,ctrlX WORKS 会把这些字段打包成一个 App 描述文件,推送到 ctrlX CORE。运行时根据描述文件创建容器、挂载设备、分配实时优先级,并把数据接口注册到 Data Layer。如果实时线程申请失败,或者串口被占用,部署会报错并回滚,不会留下半启动状态。
四、边缘计算分层的实际影响
边缘计算分层不是抽象概念,它直接决定应用该放在哪里。实时控制闭环(如电流环、位置环)必须留在 ctrlX CORE 本地,因为网络往返会破坏确定性。而 FFT 分析、趋势判断、数据上传可以放在边缘网关或云端,因为它们对延迟不敏感。ctrlX Data Layer 在这里扮演关键角色:它让本地应用和远程应用用同一套接口访问数据,不需要关心数据实际在哪里。
最后要强调的是,ctrlX OS 的只读根文件系统和签名机制意味着:你不能像在普通 Linux 上那样直接 scp 一个二进制文件进去运行。所有应用必须走 App 打包和安装流程。这看起来麻烦,但正是它保证了工业现场的可维护性和安全性——每次部署都是可追溯、可回滚的。