一、背景:为什么要给 Codesys 套上 Docker”外壳”?
在工业边缘计算场景中,Codesys 作为主流的 PLC 编程与运行平台,就像工厂里的 “老管家”,负责执行设备控制逻辑、处理传感器数据。但随着生产线设备增多、控制逻辑复杂化,传统的 Codesys 部署方式开始暴露问题:
- 不同设备的 Codesys 运行环境五花八门(比如操作系统版本、依赖库差异),调试时经常出现 “在 A 设备能跑,在 B 设备报错” 的情况;
- 边缘节点资源有限,多套控制程序同时运行时,容易出现内存争抢、CPU 占用过高的冲突;
- 程序更新时需要停机部署,影响生产效率。
而 Docker 容器技术就像一个 “标准化快递盒”,能把 Codesys 运行时及所有依赖 “打包” 起来,实现 “一次打包,到处运行”。但工程师们最关心的是:给 Codesys 套上 Docker 外壳后,性能会不会打折?控制延迟会不会增加? 这正是本次压测要回答的问题。
二、压测方案:模拟真实工业场景的 “压力测试”
为了贴近实际生产,我们搭建了一套边缘计算测试环境,具体配置如下:
| 测试项 | 配置详情 |
|---|---|
| 硬件平台 | 工业边缘网关(4 核 CPU,8GB 内存,千兆网卡) |
| 操作系统 | Linux Ubuntu 20.04 LTS |
| Docker 版本 | 20.10.12 |
| Codesys 版本 | v3.5 SP17(运行时版本 4.6.0.0) |
| 对比组设置 | ① 传统部署:Codesys 直接安装在物理机;② 容器化部署:Codesys 运行时封装在 Docker 容器中 |
压测场景模拟了 3 种典型工业控制需求:
- 轻负载场景:100 个数字量 IO 信号采集 + 简单逻辑控制(如电机启停);
- 中负载场景:500 个模拟量数据(如温度、压力)采集 + PID 调节算法;
- 高负载场景:1000 个混合信号(数字量 + 模拟量)+ 复杂逻辑运算(如生产线节拍同步)。
压测指标聚焦于工业控制的核心性能:程序循环周期(扫描周期)、数据处理延迟、CPU / 内存占用率。
三、压测结果:Docker 容器化的 “性能成绩单”
经过 72 小时连续压测,两组部署方式的性能数据对比见下表(数据为多次测试平均值):
| 指标 | 轻负载场景(传统 vs 容器化) | 中负载场景(传统 vs 容器化) | 高负载场景(传统 vs 容器化) |
|---|---|---|---|
| 扫描周期 | 12ms vs 12.3ms(差异 2.5%) | 35ms vs 36.8ms(差异 5.1%) | 89ms vs 94.2ms(差异 5.8%) |
| 数据处理延迟 | 0.8ms vs 0.85ms(差异 6.2%) | 2.3ms vs 2.5ms(差异 8.7%) | 5.6ms vs 6.1ms(差异 8.9%) |
| CPU 平均占用率 | 12% vs 13.5%(差异 12.5%) | 35% vs 38%(差异 8.6%) | 72% vs 76%(差异 5.5%) |
| 内存占用率 | 8% vs 9%(差异 12.5%) | 15% vs 16.5%(差异 10%) | 28% vs 30%(差异 7.1%) |
四、关键发现:容器化对性能的影响到底有多大?
- 性能损耗在可接受范围
从数据来看,Docker 容器化部署的 Codesys 运行时,在各负载场景下性能损耗均未超过 10%。而工业控制中,通常允许 5%-15% 的性能波动(比如环境温度变化、设备老化也会导致类似波动),因此容器化带来的损耗完全在实用范围内。 - 高负载下,容器化优势更明显
在高负载场景中,传统部署的 Codesys 偶尔会出现 “内存溢出” 导致的程序卡顿(约每 24 小时 1-2 次),而 Docker 的资源隔离机制(通过 cgroups 限制 CPU / 内存使用)能有效避免这种情况,容器化部署的稳定性反而更优。 - 部署效率提升显著
除了性能,容器化的 “隐藏优势” 在测试中也凸显:传统部署一套 Codesys 运行环境需要 30 分钟(包括依赖安装、配置调试),而 Docker 镜像导入 + 启动仅需 2 分钟,且在不同边缘设备上的部署一致性达 100%。
五、结论:Docker 容器化,边缘计算的 “性价比之选”
本次压测证明:将 Codesys 运行时容器化后,虽然会带来 5%-10% 的性能损耗,但完全满足工业控制的实时性要求,且换来的部署效率提升、环境一致性保障、资源隔离稳定性,在边缘计算场景中更具实际价值。
对于中小型生产线(轻 / 中负载),容器化几乎不会影响控制精度;对于高负载场景,只要提前通过 Docker 配置合理的资源限制(如预留 20% CPU 冗余),就能兼顾性能与稳定性。
未来,随着边缘计算节点数量激增,Docker+Codesys 的组合有望成为工业控制部署的 “标准配置”—— 毕竟在效率与稳定性面前,5% 的性能损耗,更像是一笔 “划算的技术投资”。
济南海马机械设计有限公司