OpenPLC Runtime v4 架构
概述
OpenPLC Runtime v4 是一个双进程系统,通过 REST API 服务器(用于 OpenPLC Editor 通信)和实时 PLC 执行引擎提供工业自动化能力。
系统组件
1. REST API 服务器进程 (Python/Flask)
REST API 服务器是一个基于 Flask 的 HTTPS 应用程序,提供以下功能:
- REST API,用于 PLC 控制和管理
- WebSocket 接口,用于实时调试
- 程序编译编排
- 用户认证与安全
- 运行时进程管理
关键细节:
- 端口:8443 (HTTPS)
- 位置:
webserver/app.py - TLS:自签名证书(自动生成)
- 认证:基于 JWT
2. PLC 运行时核心 (C/C++)
PLC 运行时是一个实时执行引擎,其功能包括:
- 执行编译后的 PLC 程序,具有确定性时序
- 通过插件驱动程序管理 I/O 操作
- 提供调试接口,用于变量检查
- 通过看门狗监控系统健康状态
- 维护生命周期状态(INIT, RUNNING, STOPPED, ERROR, EMPTY)
关键细节:
- 可执行文件:
build/plc_main - 位置:
core/src/plc_app/ - 调度:SCHED_FIFO(实时优先级)
- 要求:root 权限或 CAP_SYS_NICE 能力
进程间通信
两个进程通过 Unix 域套接字进行通信:
PLC 运行时套接字
- 路径:
/run/runtime/plc_runtime.socket - 用途:命令与控制(启动、停止、状态查询)
- 协议:基于文本的命令,带同步响应
- 实现:
core/src/plc_app/unix_socket.c(服务器端),webserver/unixclient.py(客户端)