OpenPLC 本身不是一个特定PLC型号的仿真器,而是一个开源的软PLC平台。它的核心价值在于能够通过软件模拟PLC功能,并兼容多种工业硬件平台。以下是详细的支持情况:
一、原生支持的硬件平台
这些设备可直接运行OpenPLC Runtime:
- 树莓派全系列(Raspberry Pi 1/2/3/4/5)
- 最常用平台,支持数字I/O和扩展板(如MCP23017)
- 工业嵌入式设备
- UniPi(Neuron/Axon系列)
- RevPi(Revolution Pi)
- WAGO PFC100/PFC200
- 开发板
- Arduino(Uno/Mega/Nano通过专用固件)
- ESP32/ESP8266(物联网PLC方案)
- BeagleBone Black
二、兼容的PLC协议与标准
OpenPLC可通过以下方式与其他PLC交互:
协议 | 支持方式 | 典型应用场景 |
---|---|---|
Modbus TCP | 内置Slave模式 | 作为从站接入SCADA系统 |
Modbus RTU | 通过串口扩展 | 连接串行设备 (RS485) |
DNP3 | 插件支持 | 电力行业监控系统 |
OPC UA | 通过第三方插件(如open62541) | 与上位机数据交换 |
三、可替换的商业PLC型号
通过硬件适配层,OpenPLC可替换这些品牌PLC:
- 罗克韦尔/AB PLC
- 兼容MicroLogix 1400的指令集(需自定义硬件驱动)
- 西门子S7系列
- 部分替代S7-1200功能(通过S7comm协议转换)
- 施耐德Modicon
- 支持M221/M241系列基础逻辑控制
- 欧姆龙CP1系列
- 通过FINS协议实现有限兼容
⚠️ 注意:商业PLC替代需要额外开发硬件接口驱动,非原生支持。
四、虚拟仿真支持
通过软件模拟PLC运行:
- 内部软PLC
- 直接在Windows/Linux上运行Runtime
- Docker容器
- 跨平台虚拟化部署
- CODESYS兼容
- 导入导出符合IEC 61131-3标准的程序
五、扩展自定义硬件
通过开发硬件层驱动支持:
- 开发指南
- 修改
/hardware_layers
目录下的C++驱动模板 - 实现
void init()
,void updateInputs()
,void updateOutputs()
函数
- 修改
- 示例
// 自定义GPIO控制示例 void updateOutputs() { digitalWrite(OUTPUT_PIN, bool_output[0]); // 将逻辑输出映射到物理引脚 }
六、硬件选型建议
需求场景 | 推荐方案 |
---|---|
教学/实验 | 树莓派4B + 扩展IO板 |
工业物联网 | ESP32 + Modbus传感器网络 |
小型自动化控制 | UniPi Neuron S103 |
替换老旧PLC | RevPi Core + 定制硬件层 |
完整硬件兼容列表见:OpenPLC Hardware Compatibility
OpenPLC的灵活性使其能适应从教育实验到工业控制的各种场景,核心优势在于通过开源生态实现跨平台兼容。