一、前置准备
1.1环境要求
- 操作系统:Ubuntu 20.04/22.04 LTS 版本(推荐 LTS 版本,兼容性更稳定)
- 平台:天枢一体化虚拟仿真平台

1.2工具预装检查
安装前可先检查系统是否已预装必要工具,避免重复操作:
| # 检查Git是否已安装 git --version # 检查Node.js是否已安装 node -v # 检查npm是否已安装 npm -v |
若上述命令返回版本号,说明工具已存在;若提示 "command not found",则需按后续步骤安装。
二、详细安装步骤
2.1 安装 Git(版本控制工具)
Git 用于从 GitHub 克隆 OpenPLC 项目仓库,是获取源码的基础工具。
操作命令:
| # 更新软件包索引(同步Ubuntu官方软件源的最新版本信息,确保安装最新版) sudo apt update # 安装Git,-y参数自动确认所有安装提示,无需手动干预 sudo apt install -y git |
验证安装:
| git --version |
若输出类似git version 2.25.1的版本信息,说明 Git 安装成功。
2.2克隆 OpenPLC 项目仓库
通过 Git 获取 OpenPLC 最新源码到本地目录。
操作命令:
| # 克隆GitHub仓库到本地(默认下载到当前目录的OpenPLC文件夹) git clone https://github.com/thiagoralves/OpenPLC.git # 进入项目根目录(后续所有操作均在此目录下执行) cd OpenPLC |
说明:
- 仓库地址为官方源码地址,若克隆超时,可尝试配置 GitHub 加速(如使用国内镜像仓库或代理)。
- 克隆完成后,OpenPLC 目录下将包含项目所有源码、构建脚本及配置文件。
2.3 安装 Node.js 与 npm(运行依赖)
OpenPLC 的 Web 服务器基于 Node.js 开发,npm(Node.js 包管理器)用于管理项目依赖,需安装基础版本以支持服务器运行。
操作命令:
| # 再次更新软件包索引(确保Node.js相关包信息为最新) sudo apt update # 安装Node.js和npm,-y参数自动确认安装 sudo apt install -y nodejs npm |
注意事项:
- 若安装的 Node.js 版本过低(如 v12.x 及以下),可能导致服务器启动失败,可通过 NodeSource 源安装指定版本:
2.4 构建 OpenPLC 项目
通过项目自带的构建脚本编译环境、配置驱动,驱动选择将决定 OpenPLC 能否控制物理或虚拟硬件。
操作命令:
| # 运行构建脚本(需在OpenPLC项目根目录下执行) ./build.sh |

驱动选择说明:
脚本运行后将提示选择驱动,输入对应数字并回车,各驱动适用场景如下:
- Blank(空白驱动):适用于虚拟环境测试,不连接任何物理硬件,仅运行控制逻辑仿真。
- Fischertechnik:适用于 Fischertechnik 品牌的教育机器人、工业模型等硬件。
- RaspberryPi:适用于树莓派(Raspberry Pi)开发板,支持控制树莓派的 GPIO 口及扩展模块。
- Simulink:适用于与 MATLAB/Simulink 联动,实现基于模型的控制仿真。
- Unipi:适用于 Unipi 品牌的工业控制器(如 Unipi Neuron、Unipi 1.1)。
构建成功标志:
脚本无报错并输出类似 "The OpenPLC environment has been built successfully" 的提示,说明构建完成。
2.5 启动 OpenPLC 服务器
根据硬件平台选择对应的服务器启动脚本,启动后将运行 Web 服务和控制逻辑引擎。
- 通用服务器(适用于普通 PC、虚拟机等非树莓派平台)
| # 以管理员权限启动通用服务器 sudo node server.js |
- Raspberry Pi 服务器(仅适用于树莓派硬件)
| # 以管理员权限启动树莓派专用服务器 sudo node server_rpi.js |
2.6 访问 Web 界面并配置
服务器启动后,通过浏览器访问 Web 界面,即可上传控制程序、配置运行参数。
- 访问地址
- 本地访问(服务器与浏览器在同一设备):http://localhost:8080
- 局域网访问(浏览器在其他设备):http://[服务器 IP 地址]:8080

三、总结
通过以上步骤,可完成 Ubuntu 系统下 OpenPLC 的完整安装、驱动配置、服务器启动及 Web 界面使用。OpenPLC 作为开源工业自动化控制器,支持梯形图、功能块图等工业标准编程方式,适用于教学实验、小型自动化项目开发、工业控制原型验证等场景。
1011

被折叠的 条评论
为什么被折叠?



