跳转至

plcopen v0.21.0 — Motion, Twin & Tooling Closure

v0.21.0 是围绕重写后的 core/ 运行时以及运动、孪生、工具与消费路径软件收口 批次发布的正式 pre-1.0 版本。它仍然是 pre-1.0:不声称稳定 ABI、不声称 PLCopen 或 Safety 认证、不声称真实机械上的生产级证据,也不声称长期 LTS 承诺。

本次发布仍只提供 C++ 的 source/header-only 交付。C++ 发布形式仍是 GitHub 源码归档 + CMake install/export;ConanCenter 与 vcpkg 中央仓库资产仍固定在 已发布的 v0.20.0 线上,本次发布不声称 v0.21.0 已进入这些中央仓库。 Python 包 pyplcopen==0.21.0 已在 PyPI 公开发布,包含 20 个 wheel、1 个 sdist,且 Requires-Python >=3.10

安装

使用 FetchContent 集成 C++

include(FetchContent)
FetchContent_Declare(
  plcopen
  GIT_REPOSITORY https://github.com/lusipad/plcopen.git
  GIT_TAG v0.21.0)
FetchContent_MakeAvailable(plcopen)

target_link_libraries(my_controller PRIVATE plcopen::plcopen)

导出的 target 为 header-only,要求 C++17 以及 CMake 3.21 或更高版本。 通过 find_package(plcopen CONFIG REQUIRED) 消费已安装包仍然是支持的下游路径。

Python

pip install pyplcopen==0.21.0

已发布包页面:https://pypi.org/project/pyplcopen/0.21.0/

用户将获得什么

  • H1 新增 48 关节原子 {q_des,dq_des,tau_ff,kp,kd} 流合同,包含 direct / upsample、 完整预检、keep-latest、本地 watchdog、组级断流和命令快照。tau_ff 仍然只 是数据通路,不代表 T18 或真实机械完成。
  • H2 新增固定容量 kin::SerialChain,支持 1-8 个转动关节的 standard/modified DH 正解和确定性的数值逆解兜底。
  • H3 新增 dyn::FixedBaseChain 固定基座逆动力学路径,只返回纯 tau_ff 数值。 浮动基座、接触、全身耦合和安全声明仍不在范围内。
  • T2a 新增现有孪生路径的可选 MuJoCo/Rerun 闭环;T2b 将它扩展到仓库自有的七关节 fixture,而不改变默认依赖面。
  • D1 新增 ST Language Server 和薄 VS Code client,用于多 POU 文档;D3 新增在线 commissioning Scope,支持阈值抓取与 PLCT/CSV/HTML 导出。
  • Z1-Z5 把五分钟 notebook、轴/组 SI 配置、Python/C++/ST 同源旅程、Conan/vcpkg 消费者资产、结构化诊断和 trace 可视化打包成一组面向使用者的收口成果。
  • X5 提供固定 ABI 的 Servo IPC 合同,包含 setpoint/feedback SPSC、状态缓冲和显式 生命周期检查。
  • Y4b、Y7b1、Y7b2a 继续收敛线性、圆弧和平面 Cartesian LINE 源处理的接管与桥接 缺口,同时不扩大 kinematics ABI。

兼容性与迁移

  • v0.21.0 仍低于 1.0。公开变更遵循 SemVer 并有文档记录,但尚不承诺 ABI 稳定性。
  • plcopen::plcopen 现在解析到重写后的 core/ target。只有在维护迁移或回放基线时, 才显式启用冻结实现 PLCOPEN_BUILD_LEGACY=ON
  • 新 C++ facade 中的公共字段继续使用 snake_case,功能块输出继续收拢在 outputs 下,应用通过显式周期调用推进轴/组对象。
  • 仓库保留本地 Conan recipe 和草案版 vcpkg manifest,但本次发布不声称已发布到 ConanCenter 或 vcpkg registry。

API 与运行时模型变化见 migration guide

发布制品

渠道 制品
GitHub 已发布的 C++ header-only 库源码 .zip / .tar.gz、CMake install/export 文件、本地 Conan recipe、示例和文档:https://github.com/lusipad/plcopen/releases/tag/v0.21.0
PyPI 已发布的 pyplcopen==0.21.0 分发,含 20 个 wheel + 1 个 sdist,Requires-Python >=3.10https://pypi.org/project/pyplcopen/0.21.0/

本次发布不提供独立的 C++ 平台安装器或共享库二进制。C++ 交付按设计仍是 source/header-only。

验证快照

最终发布与验证已经绑定到公开制品和全部完成的门禁:

门禁 状态
发布标题 / URL 已发布为 v0.21.0 — Motion, Twin & Tooling Closurehttps://github.com/lusipad/plcopen/releases/tag/v0.21.0
最终 annotated tag tag object 9985312fd8c862ae435bec28adcd5f2943966288 -> target commit 08d62b1b16e841a88509284b4c8c75d778592efc
候选验证提交 候选收口提交 b4f2b87ea7a2cf5bdd0a9ee262dc5ddbcf1ca807
最终 main 门禁 tag 目标上的 Windows 30480823667Linux 30480823343Language Tools 30480823421Twin 30480823345Documentation 30480824589 均已通过
本地构建、安装与运行时验证 已通过:MSVC Debug 102/102;Release/install/find_package/ST/FetchContent/Python 3/3;RT scan 32 个文件;replay 18 个 fixture / 2409 个样本;docs strict 27 对双语页面;matrices 49/43/11
Windows CI 已通过:run 30479093819
Linux CI 已通过:run 30479093300
Language Tools 已通过:run 30479093381
Twin integration 已通过:run 30479093204
Documentation 已通过:run 30479093304,且本地 strict 构建覆盖 27 对双语页面
Wheels 候选流水线 已通过:run 30479097551(候选通道故意跳过 publish)
Core Nightly 已通过:run 30479101207
Coverage Gate 已通过:run 30479104454;full-core 行覆盖率 95.3%;motion 分支覆盖率 10319/12138 = 85.014%;ST 分支覆盖率 14811/17423 = 85.008%
Mutation Score Gate 已通过:run 3047910761720/20 = 100%
标签触发的 wheel / PyPI 发布 已通过:run 304969167085/5 全绿)
GitHub Release 已从核验过的 annotated tag 发布:https://github.com/lusipad/plcopen/releases/tag/v0.21.0
PyPI 发布 已公开且未撤回:https://pypi.org/project/pyplcopen/0.21.0/
公开冷用户旅程 已通过:run 30497974380;公开 wheel Notebook、C++ installed package、ST 与文档入口全部通过

已知限制

  • 这是一个可嵌入内核,不是完整的 PLC IDE,也不是完整的 IEC 61131-3 平台。
  • 不包含 PLCopen 批准、安全认证、SIL/PL 声明或官方 logo 使用权。
  • 不声称稳定 ABI、真实机械 72 小时证据或长期硬件验证。
  • H1 q/dq 流已经可用,但 tau_ff/kp/kd 消费与 H3 输出集成仍受 T18 门控; 树里已有这些数据通路,不等于允许消费它们。
  • Cartesian Y7b2b 仍然是 NO-GO;Cartesian ARC/chain/window 与 dynamic PCS/tracking 仍是独立合同。
  • EtherCAT 产品集成与真实总线握手仍属于独立 F 轨与硬件工作,不属于这份 source/header-only 发布。
  • ConanCenter 和 vcpkg 中央仓库发布仍固定在已发布的 v0.20.0 线上;v0.21.0 还不声称已有中央仓库资产。

完整工程记录