PLCOpen 运行环境测试与搭建(Beremiz 开源软 PLC)
在 Ubuntu 18.04 实时内核上搭建 PLCOpen(Beremiz)开源软 PLC 运行环境:依赖安装、MatIEC/CanFestival/modbus/BACnet/EtherCAT 源码编译,以及 IDE 与 Runtime 的启动调试全流程。
PLCOpen 运行环境测试与搭建(Beremiz 开源软 PLC)
一、项目背景
PLCOpen 是 PLC 编程领域的国际标准化组织,定义了 IEC 61131-3 编程语言标准。Beremiz 是一款遵循该标准的开源软 PLC(Soft PLC)IDE + Runtime 解决方案:IDE 负责编写/编译梯形图、ST、FBD 等 IEC 61131-3 语言,Runtime 负责在 Linux 等平台上实时执行编译后的代码,并支持 Modbus、CANopen、BACnet、EtherCAT 等多种现场总线。
本篇文章在 Ubuntu 18.04 实时内核上完整搭建 Beremiz 运行环境,为后续 PLC 应用开发与总线调试提供平台基础。
二、技术方案:环境与组件
- 系统:Ubuntu 18.04.6 LTS,内核 5.4.10-rt5-rt(PREEMPT_RT 实时内核)
- IDE:Beremiz(基于 Python 的 PLC 编程 IDE)
- 编译器:MatIEC(IEC 61131-3 语言 → C 代码编译器)
- 总线栈:CanFestival(CANopen)、modbus、BACnet、EtherCAT(ethercat-1.5.2)
实时内核配合软 PLC Runtime,可在通用 x86 平台上实现确定性控制周期,替代部分传统硬 PLC 场景。
三、系统架构:安装依赖
# 基础编译工具
sudo apt-get install build-essential bison flex autoconf
sudo apt-get install python-wxgtk3.0 pyro mercurial
sudo apt-get install python-nevow python-matplotlib python-lxml python-zeroconf python-cycler
sudo apt-get install python-autobahn python-u-msgpack
sudo apt-get install libpython2.7-dev
# Python 2 环境(Beremiz 依赖)
sudo apt install python-pip
pip2 install --user sslpsk posix_spawn
sudo apt install subversion
pip install future
四、实施过程:源码下载与编译
4.1 下载源码
git clone https://bitbucket.org/automforge/beremiz.git
git clone https://bitbucket.org/automforge/matiec_git.git
git clone https://bitbucket.org/mjsousa/modbus_git.git
svn checkout https://svn.code.sf.net/p/bacnet/code/trunk /bacnet-stack/ BACnet
4.2 编译各总线模块
# (1) 编译 MatIEC(IEC61131-3 编译器)
autoreconf -i
./configure
make
# (2) 编译 CanFestival(CANopen 协议栈,虚拟模式)
./configure --can=virtual
make
# (3) 编译 modbus
make
# (4) 编译 BACnet
make MAKE_DEFINE='-fPIC' MY_BACNET_DEFINES='-DPRINT_ENABLED=1 -DBACAPP_ALL -DBACFILE -DINTRINSIC_REPORTING -DBACNET_TIME_MASTER -DBACNET_PROPERTY_LISTS=1 -DBACNET_PROTOCOL_REVISION=16' library
# (5) 编译 EtherCAT 主站
tar -xvf ethercat-1.5.2.tar.bz2
./configure --help # 查询需要的模块
./configure --enable-8139too=no
4.3 启动 IDE 与 Runtime
# 创建工作目录
mkdir plcwork
# 开启 IDE
python Beremiz.py
# 开启 Runtime(监听 61194 端口,绑定本地)
cd ~/plcopen/beremiz/
python Beremiz_service.py -p 61194 -i localhost -x 0 -a 1 ~/plcopen/plcwork/
五、应用价值
- 开源可控:整套软 PLC 方案无授权费用,代码开放,可深度定制总线与功能块;
- 实时性:PREEMPT_RT 内核下 Runtime 可满足多数工业控制场景的周期要求;
- 多总线:一个平台同时支持 Modbus、CANopen、BACnet、EtherCAT,适合设备联网与 SCADA 场景;
- 学习价值:从 IEC 61131-3 语言到 C 代码生成、从 IDE 到 Runtime 的完整链路,是理解 PLC 工作原理的最佳开源范本。
六、SEO关键词
PLCOpen、Beremiz、开源PLC、软PLC、MatIEC、IEC61131-3、Ubuntu18.04、CanFestival、EtherCAT主站、PLC编程环境
推荐阅读
更多工业 AI、智能制造与技术实践文章
TRIO-Basic 从入门到精通(一):MPV4 开发环境安装与仿真器联调
本文是 TRIO-Basic 运动控制器编程系列教程的第一篇,详细介绍 TRIO 官方集成开发环境 MPV4 的获取方式、安装步骤,以及如何通过仿真器完成首次程序编写与运动轨迹验证,帮助读者快速搭建 TRIO 运动控制开发环境。
Linux系统篇(十八)——文件(二):吃透 Linux 重定向底层:从文件描述符到 VFS 缓冲全链路拆解
从文件描述符数组到 dup2 重定向,再到用户/内核双缓冲与 VFS 多态,完整拆解 Linux 输出重定向的内核实现链路。
LlamaIndex 系列(二):检索增强生成(RAG)
RAG 从朴素到智能体化、图增强的完整演进路线:核心组件、五种实现方案、主流开源框架对比与企业落地场景。
海康机器人亮相 WRC 2026,开拓具身智能产业落地新边界
2026世界机器人大会上,海康机器人携工业物流、商业服务、智能巡逻三大场景实景方案亮相,展示 AI 与机器人深度融合的产业化落地成果。
Linux系统篇(十九)——文件(三):底层存储入门:从机房硬件到 CHS/LBA 磁盘寻址全解析
从机房硬件层级讲到磁盘物理结构,再到 CHS 三维寻址与 LBA 线性寻址的转换原理,完整打通底层存储认知。
M3 Max 96GB 本地部署 Qwen3.6-35B-A3B:打造 SolidWorks 智能机械设计与企业知识库 AI 工作站
M3 Max 96GB 统一内存适合同时运行本地大模型与设计工具链。本文推荐 MoE 架构的 Qwen3.6-35B-A3B(总参数约 35B、单 Token 激活约 3B)配合 MLX 4bit 量化本地部署,打造 SolidWorks 智能机械设计与企业知识库 AI 工作站:mlx-lm 提供 OpenAI 兼容 API,OpenWebUI 做对话入口,通过 SolidWorks MCP 工具调用实现参数化建模,结合 BGE-M3 + Reranker 构建企业知识库 RAG,并规划多模型架构与“小龙虾”本地 AI Agent 平台的演进路线。
