树莓派 GPIO 与 OpenPLC V4:3.3V 逻辑与 24V 工业现场之间
树莓派是 OpenPLC 最常被拿来做 demo 的硬件,但它和真实工厂之间隔着一道电压与电流的物理鸿沟。这一篇专门讲清楚怎么安全地跨过去。
图:3.3V/16mA 的 Pi GPIO 与 24V 工业现场之间必须加光耦/电平转换/工业 I/O HAT 隔离层。
一、地址映射:IEC 地址 ↔ 物理引脚
OpenPLC 把树莓派 GPIO 映射到标准 IEC 61131-3 地址。规则很直观:
- 奇数物理引脚(3, 5, 7, 11, 13…)→ 数字输入
%IX0.0, %IX0.1, %IX0.2 … - 偶数物理引脚 → 数字输出
%QX0.0, %QX0.1 …
于是你可以在 Editor 的梯形图里直接写 %IX0.3 代表接在 BCM 17 上的按钮,运行时负责把 IEC 地址翻译成物理 GPIO。V4 的 Editor 比 V3 更友好:在变量表的 location 单元格双击,会列出设备在配置页里暴露的全部可用地址,选就行。
硬件地址属于”目标配置”,不属于控制逻辑本身。写程序时先用未定位变量表达控制意图,最后再绑定到具体引脚——这样同一份逻辑能复用到不同板子。
二、物理现实:3.3V / 16mA 扛不住 24V
树莓派 GPIO 是 3.3V 逻辑,单脚最大约 16mA。而工业现场设备普遍 24V,一只 24V 接近开关直接怼到 GPIO 上会烧毁树莓派。
必须加隔离/电平转换层,常见三选一:
- 光耦隔离:最便宜可靠,输入侧吃 24V,输出侧给 3.3V 给 Pi。顺带解决地电位差。
- 电平转换模块:TXS0108E 一类双向电平转换,适合数字信号。
- 工业 I/O HAT:带光耦隔离、继电器/晶体管输出的扩展板,直接接 24V 现场,最省心,也最贴近”像 PLC 一样用”。
三、模拟量与 RS-485
- 模拟输入(如电机电流传感器):接 Pi 的 ADC 引脚,OpenPLC 映射为
%IW;用它做趋势监测正是 AI 预测性维护的数据入口(见本系列 AI 篇)。 - Modbus RTU(接 RS-485 总线上的既有设备):给 Pi 接一个 RS-485 HAT 到 UART,再在运行时设置里把串口配给
modbus_master插件即可。
四、实操清单
- 确认 Pi 型号与 GPIO 电流上限,绝不直连 24V 现场信号
- 输入用光耦,输出用继电器/晶体管隔离 HAT
- 在 Editor 用 location 下拉绑定
%IX/%QX,不要手敲地址 - 需要 RS-485 时加 HAT 并启用
modbus_master - 先做仿真(Simulator)验证逻辑,再上真实 I/O
五、小结
树莓派 + OpenPLC V4 是把”软 PLC”概念跑通的最低成本途径,但隔离层不是可选项,是安全底线。加一块工业 I/O HAT,它才真正从”开发板实验”跨进”现场可用的控制器”门槛。
→ 下一篇回到软件层:从 MatIEC 到 STruC++,看 V4 编译器到底改了什么。
配套代码与参考仓库
- OpenPLC Runtime v4(Autonomy-Logic,MIT):https://github.com/Autonomy-Logic/openplc-runtime
- OpenPLC Editor v4(Autonomy-Logic,GPL-3.0):https://github.com/Autonomy-Logic/openplc-editor
- 本系列配套示例(Docker Compose / 启保停 ST / GPIO 接线 / AI agent):https://gitcode.com/linjian19901122/openplc-v4-samples
- GPIO 光耦 / 电平转换接线图与工业 I/O HAT 选型,见示例库
gpio/
系列导航 · 双向链接(OpenPLC V4 系列 · 共 12 篇)
- ① 定位:从教学玩具到工业级 vPLC
- ② 协议栈变迁
- ③ 实战入门:Docker + 启保停
- ④ 树莓派 GPIO 与隔离
- ⑤ 编译器管线:MatIEC → STruC++
- ⑥ 安全设计:TLS/JWT/8443
- ⑦ 插件系统实战
- ⑧ AI 增强 PLC(预测性维护)
- ⑨ vPLC 与 Autonomy Edge
- ⑩ 实时性 vPLC:实验室→车间
- ⑪ 为什么选 SOEM(EtherCAT 主站)
- ⑫ Edge Control 机遇与挑战
本系列当前均为草稿(
draft: true)。建议发布序:① → ③ → ② → ④ → ⑧ 打头,⑩⑪⑫ 作深度延展按读者反馈穿插。