news 2026/4/23 16:17:09

OpenPLC Runtime v4 架构(英译中)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenPLC Runtime v4 架构(英译中)

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(客户端)

日志套接字

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:18:43

防爬虫机制下的自动化测试绕过方案

随着网站安全防护升级,防爬虫机制(如Cloudflare、行为分析系统)日益严密,常误判自动化测试脚本为恶意爬虫,导致测试中断或数据获取失败。本文针对软件测试从业者,系统解析主流反爬机制原理,并提…

作者头像 李华
网站建设 2026/4/23 9:54:18

Elastic 和 Alteryx:为企业 agents 提供可信、可搜索的数据基础

作者:来自 Elastic Sunnie Weber Elastic 很高兴与 Alteryx 合作,帮助组织用可信、业务就绪的数据将 AI agents 开发落地。通过结合 Alteryx 的受治理数据准备平台与 Elasticsearch 的向量数据库和上下文工程平台,我们让像你这样的企业能够构…

作者头像 李华
网站建设 2026/4/23 9:57:53

基于Java的广告制品制作智慧管理系统的设计与实现全方位解析:附毕设论文+源代码

1. 为什么这个毕设项目值得你 pick ? 开发广告制品制作智慧管理系统旨在提供一个全面且高效的解决方案,涵盖员工管理、客户管理、订单管理等多个功能模块。相比传统选题,“烂大街”的毕设项目多为单一或简单的系统设计与实现,而本系统的复杂…

作者头像 李华
网站建设 2026/4/22 12:58:40

OoderAgent Nexus 版本分支正式提交[号外]—核心四问

ooderAgent Nexus 版本分支已正式完成提交,经多维度严苛验证,5 大全场景测试全部通过,标志着这一年轻开源项目正式从技术原型迈入有实际场景、有核心价值的产品级新阶段。本次 Nexus 版本围绕 “AIGC 时代 AI 能力枢纽” 的核心定位完成全维度…

作者头像 李华
网站建设 2026/4/22 22:16:41

【bug】【Python】pandas中的DataFrame.to_excel()和ExcelWriter的区别

pandas中的DataFrame.to_excel()和ExcelWriter主要有以下区别:\nDataFrame.to_excel()是直接将DataFrame写入Excel文件,简单方便。ExcelWriter需要创建writer对象,并最终调用save()保存。\nDataFrame.to_excel()只能将一个DataFrame写入一个sheet。ExcelWriter可以将多个DataFr…

作者头像 李华