避开这些坑:在Ubuntu for Raspberry Pi上成功安装OpenPLC运行时的完整指南

张开发
2026/4/20 22:32:28 15 分钟阅读

分享文章

避开这些坑:在Ubuntu for Raspberry Pi上成功安装OpenPLC运行时的完整指南
在树莓派Ubuntu系统上部署OpenPLC的避坑实战手册当工业自动化遇上开源硬件树莓派与OpenPLC的组合为教育和小型项目提供了极具性价比的解决方案。但官方推荐的Raspberry Pi OS并非唯一选择——许多开发者更习惯Ubuntu的生态却在这个过程中频频遭遇依赖缺失、编译失败的暗礁。本文将分享我在Ubuntu for Raspberry Pi上成功部署OpenPLC运行时的完整历程重点解析那些官方文档未曾提及的关键细节。1. 系统准备与环境配置陷阱选择Ubuntu for Raspberry Pi作为基础系统时第一个要面对的就是软件源差异。与官方推荐的Raspberry Pi OS不同Ubuntu的arm64仓库并不包含专为树莓派优化的部分开发库。这就引出了我们遇到的第一个典型问题# 常见错误示例 fatal error: WiringPi.h: No such file or directory这个报错的根本原因在于Ubuntu提供的wiringpi包仅包含运行时组件而开发所需的头文件和静态库需要手动编译安装。以下是经过验证的解决方案首先卸载可能存在的冲突包sudo apt remove wiringpi -y从源码编译安装WiringPigit clone --branch final_official_2.50 https://github.com/WiringPi/WiringPi.git cd WiringPi ./build注意务必使用final_official_2.50分支主分支可能包含不兼容的改动2. OpenPLC运行时安装的深度调优完成基础依赖配置后标准的OpenPLC安装流程仍然可能遇到各种隐性问题。以下是针对Ubuntu系统的增强版安装步骤# 先安装编译工具链 sudo apt install build-essential cmake git -y # 克隆仓库时推荐添加--depth参数加速下载 git clone --depth 1 https://github.com/thiagoralves/OpenPLC_v3.git cd OpenPLC_v3 # 关键修改编辑install.sh脚本 sed -i s/apt-get install/apt-get install -y --no-install-recommends/ install.sh安装过程中需要特别关注的几个要点检查项正常表现异常处理modbus库编译输出Built target libmodbus检查libtool是否安装matiec编译器生成iec2c可执行文件需要g-multilib网页接口8080端口监听检查python依赖3. 硬件配置的隐藏细节成功安装后硬件配置环节仍有几个容易忽视的关键点GPIO权限问题# 将用户加入gpio组 sudo usermod -a -G gpio $USER # 需要重启生效引脚映射验证方法# 安装gpio工具 sudo apt install gpiod -y # 查看引脚状态 gpioinfo推荐在/etc/rc.local中添加以下预处理命令echo 4 /sys/class/gpio/export echo out /sys/class/gpio/gpio4/direction chmod 666 /sys/class/gpio/gpio4/value4. 编辑器与运行时的协同工作流开发环境的顺畅程度直接影响工作效率。针对Windows版OpenPLC Editor与树莓派运行时的配合我总结出以下优化流程网络配置检查清单确保编辑器与运行时在同一局域网段关闭防火墙或放行8080端口使用固定IP而非DHCP程序上传的避坑指南# 示例通过API上传程序 import requests files {file: open(program.st, rb)} r requests.post(http://树莓派IP:8080/upload, filesfiles, auth(openplc, openplc))遇到LogMessage未声明错误时的处理步骤检查编辑器版本是否≥3.0重新生成.ts文件清除运行时缓存后重启服务5. SCADA集成的高级技巧ScadaBR作为OpenPLC的监控组件其配置过程也有诸多讲究。相比直接使用官方虚拟机原生安装能获得更好性能内存优化配置# 编辑ScadaBR启动脚本 JAVA_OPTS-Xms256m -Xmx512m -XX:MaxMetaspaceSize128m数据源配置模板point nameGPIO_Status/name address%QX0.0/address typeBOOLEAN/type polling1000/polling /point状态图性能优化建议将刷新间隔设置为≥2秒使用PNG而非GIF格式图片启用浏览器缓存经过多次项目实践我发现最稳定的组合是Ubuntu 20.04 LTS OpenPLC v3.0 WiringPi 2.50。这种配置下连续运行30天未出现异常崩溃GPIO响应延迟稳定在5ms以内。

更多文章