IICP · Industrial Intelligent Control Platform
面向多模型工业控制的可信 AI 协同运行时
以控制关键性组织模型:控制类模型贴近闭环,诊断与预测模型异步服务;PLC 始终保留最终执行权。
- Industrial Control
- PLC Runtime
- AI Model Plane
- PINN / MPC Surrogate
- Diagnostic & Forecast AI
研究思路:先约束权限,再释放智能
控制系统的核心问题不是“AI 能否给出更优建议”,而是“建议失效、迟到或越界时,系统能否保持可预测”。
Abstract
未来 AI 能力不再被建模为一个承载所有任务的单一 Runtime。IICP 将其组织为 AI Model Plane:控制类模型的独立执行通道紧邻 PLC 闭环,诊断与预测模型运行于异步服务域;三者共享模型注册、版本和准入治理,却不共享控制权限。PLC 始终保有基础控制、约束检查、联锁与最终输出裁决。
AI 产生建议,PLC 决定是否接纳和应用。AI 不能直接写物理 IO,也不能升级自身权限。
需要进入控制闭环的模型使用独立有界通道;诊断、预测与数据补齐运行在异步服务域,不得抢占控制时限。
控制模型退出时,PLC 保持基础控制并撤回修正;诊断或预测服务故障不改变控制语义。
传感器 → PI_IN;携带质量与采样时间。
独立运行,形成候选基础输出。
PINN / MPC 代理,仅生成有界候选值。
质量、权限、斜率、联锁、冲突。
候选基础值 + 已接纳修正。
设备动作与状态回执。
CommandFrame;诊断与预测模型不进入此控制通道。AI 产物仍须经 PLC 仲裁,不能直接写 PI_OUT。
控制不变式:模型可以增加,调度与部署方式可以演进,但 PLC 的最终软件裁决权和基础控制连续性不随模型数量增加而转移。
Invariant整体框架:AI 模型平面,按关键性分域
AI Runtime 不是位于 PLC 之上的控制层,而是与 PLC 并列、按模型关键性拆分资源的执行平面。
保留“AI Runtime”作为平台能力名称,不再把它实现成一个承载全部模型的进程。 控制类模型进入 Control Model Lane;诊断、寿命、故障、风速预测与数据补齐进入 AI Services Plane。两类负载共享模型注册与治理,但不共享调度队列、资源预算和控制权限。
Proposal| 位置方案 | 主要收益 | 主要风险 | 判断 |
|---|---|---|---|
| 单一 AI Runtime | 初期组件少,模型接入简单。 | 控制、诊断、预测共享进程与资源池;NPU 饱和、模型异常或队列积压会扩大故障半径。 | 不适合长期 |
| AI 位于 PLC 之上 | 结构表面简单,可把 AI 作为控制决策层。 | 暗示 AI 拥有更高控制权限,与“PLC 最终裁决、硬件保护独立”的原则冲突。 | 否决 |
| 并列 Model Plane、按关键性分域 | 控制模型保持紧耦合短链路;诊断/预测隔离部署;共享注册、版本和可观测性。 | 需要明确多进程边界、资源预留、控制类模型实时约束及跨域数据版本。 | 推荐 |
基础逻辑与配置。
周期执行、裁决和输出。
控制 / 诊断 / 预测。
准入、路由、版本、配额与审计。
PINN / MPC 代理;固定输入、硬 deadline、每个回路单一 ACTIVE 模型。
健康度、寿命、故障、风速预测和缺失值补齐;异步运行,不直接控制。
现场 IO、振动、温度、功率等信号进入版本化特征与数据服务。
生命周期、限频重启、指标、审计、A/B 回退和配额;不转发周期数据。
驱动、HAL、计算和现场接口为控制与模型域提供支撑。
| 模块 | 负责 | 明确不负责 |
|---|---|---|
| PLC Runtime | 周期调度、基础控制执行、状态发布、控制类模型命令验收、输出仲裁与撤回。 | 模型推理、云协议、长事务持久化、硬件安全功能替代。 |
| AI Model Plane · Gateway | 模型包验证、分类、路由、准入、版本、配额、A/B 与审计关联。 | 直接写 IO、替代 PLC 裁决、把诊断/预测结果授予控制权。 |
| Control Model Lane | 运行 PINN、MPC 代理等控制类模型;按硬 deadline 生成有界候选命令。 | 直接输出设备、绕开命令契约、与诊断/预测任务共享无界资源池。 |
| AI Services Plane | 异步运行健康度、寿命、故障诊断、风速预测与数据补齐模型。 | 进入控制命令通道、抢占控制类模型资源、把预测结果当作设备事实。 |
| Protocol Host | 模拟 IO、协议适配、过程映像交换、多源数据采集、质量与设备回执。 | 业务控制策略、直接改写 PLC 内部状态。 |
| Supervisor | 启动顺序、IPC 初始化、会话、限频重启、恢复核对。 | 转发周期数据、代替硬件看门狗、在失联时改变控制语义。 |
运行时:控制模型贴近闭环,服务模型异步运行
控制类模型必须有界返回并与 PLC 解耦;诊断和预测模型以服务化节奏运行,不参与控制截止时间。
PLC 控制周期
10 ms target · provisional
PI_IN;检查点位质量、采样时间与 IO 状态。
CommandFrame;任一项校验失败即拒绝整帧。
PI_OUT;发布状态、拒绝码与设备回执。
Control Model Lane
Bounded · deadline-driven · isolated
控制类模型
PINN、MPC 代理模型或学习型预测控制器。其用途是产生控制候选,而不是取代执行裁决。
- 输入
- 实时状态、约束、设定值与短期上下文
- 输出
- 有界 CommandFrame 候选
- 部署
- 独立 Control Model Lane,严格 quota 与 deadline
- 权限
- 无;仍由 PLC 验收和输出
诊断类模型
融合振动、温度、功率、声音与工况上下文,对设备健康度、剩余寿命与故障模式进行预测。
- 输入
- 多源、多模态、历史与工况数据
- 输出
- 健康分数、RUL、故障概率与解释
- 部署
- 异步 AI Services Plane
- 权限
- 无;输出到运维、告警与诊断服务
预测与数据补齐
提供风速与功率预测、缺失序列补齐、上下文生成等能力,可为其它模型供数,但输出不自动成为控制量。
- 输入
- 气象、历史功率、时间上下文与数据质量
- 输出
- 带时间戳、区间和版本的预测/补齐序列
- 部署
- 批量、周期或事件触发的服务域
- 权限
- 无命令权限;可作为带版本与质量标记的控制上下文输入
PLC → Control Model Lane Command / Feedback
Control Model Lane ⇄ PLC
多模型并发属于目标能力,不代表已通过共享 NPU、缓存、内存带宽与热约束下的联调验证。时间语义仍使用 CLOCK_MONOTONIC_RAW 纳秒。
协同契约:只有控制类模型能进入命令通道
模型来源、用途与权限必须在帧级别可验证;诊断和预测输出无论精度如何,都不能伪装成控制命令。
ABI major、`struct_bytes`、layout hash、会话 epoch、model hash。
序列单调、状态序号匹配、心跳有效、`now < expires_ns`。
输入质量、模型 class、变量字典、控制授权与当前运行模式。
白名单、类型、范围、变化率、撤回状态与部分接纳策略。
保护/联锁、手动/急停、外部电网控制与更高优先级来源。
PI_OUT。
任一校验失败:不写控制输出,生成带拒绝码的反馈,并保留请求值、模型版本与实际应用值。非 CONTROL_MODEL 产物默认不得写 Command ring。
数据面设计
IICP-IPC-001-
共享内存
/iicp.ipc.v1;固定 4 KiB 头部,区域偏移与容量由 `layout hash` 和版本门控。 - 状态发布 PLC → AI,双槽 seqlock;AI 读取后复核 generation / active index,不稳定即视为不可用。
- 消息通道 Command、Feedback、Event 各为固定容量 SPSC ring;不在 RT 数据路径分配、加锁、等待或系统调用。
- 原子语义 C11 acquire/release 发布;缓存线对齐;目标 ARM 上必须完成撕裂、顺序与并发压力验证。
- 权限 PLC UID 拥有状态/反馈写权限;仅 Control Model Lane 服务身份拥有 Command 写权限;诊断、预测和 MLOps 账户均无该权限。
建议语义
Bounded correction-
模型类别
命令帧必须携带
model_class=CONTROL_MODEL、模型 hash、用途白名单与生效范围;类别不可由运行时自行升级。 - 状态绑定 `based_on_state_sequence` 表示建议所依据的状态,不代表到达时仍新鲜。
- 回执 Feedback 携带请求序列、基准状态、模型类别、拒绝码、应用值与应用时间,形成可审计闭环。
- 优先级 硬件安全 > PLC 保护/联锁 > 经授权手动/急停 > 外部/电网控制 > AI 修正 > PLC 基础逻辑。
- 原子性 默认整帧接受或拒绝;若未来启用部分接纳,必须采用独立能力位与逐值反馈。
// PLC 周期内,非阻塞、固定预算
if (try_pop(command) &&
abi_matches(command) &&
session_epoch_matches(command) &&
sequence_is_unseen(command) &&
state_is_fresh(command.based_on_state_sequence) &&
mono_now_ns() < command.expires_ns &&
quality_is_good(command) &&
mode_and_authority_allow(command) &&
within_allowlist_range_and_rate(command) &&
no_interlock_or_conflict(command)) {
applied = combine_with_base_control(command); // 仍受输出约束
publish_feedback(ACCEPTED, requested, applied);
} else {
publish_feedback(REJECTED, first_failed_reason);
}
失效路径:控制模型退出,服务模型降级
不同模型类别拥有不同故障半径。恢复心跳不等于恢复控制;诊断或预测服务失效也不应改变 PLC 控制语义。
控制模型未投用;PLC 基础控制独立运行。
控制模型健康且获准;候选值按受限速率进入。
心跳丢失/建议到期;停止接纳新建议,按配置速率撤回至零。
控制模型可计算与记录候选,但不得影响控制。
健康检查通过且操作员确认后,才可受限速率重新投用。
控制执行与语义切换暂停;输出策略必须由配置预先冻结。
| 事件 | 系统决策 | 行为 | 状态 |
|---|---|---|---|
| Control Model Lane 心跳丢失 | 普通退出 | 拒绝控制类候选命令;基础控制继续;已应用修正按配置速率撤回;记录事件。 | Confirmed |
| Supervisor 失联 | 保留基础运行 | PLC/Protocol Host 使用已激活配置继续;Control Model Lane 退出并撤回;暂停配置激活、模块切换和控制模型重投。 | Confirmed |
| 诊断或预测服务故障 | 服务域降级 | 停止或降采样对应任务;告警与数据版本保持可追溯;PLC、Control Model Lane 与输出不受影响。 | Proposed |
| NPU / CPU 资源竞争 | 按关键性配额 | Control Model Lane 保留独立资源与截止时间;服务模型受 cgroup、队列和降采样限制;超期候选被丢弃。 | Proposed |
| 非控制模型尝试写命令 | 契约拒绝 | 按 UID、会话、model_class 和用途白名单拒绝;记录安全事件与来源模型。 |
Proposed |
| 受信控制模块卡死 | PLC 整体故障 | 原生函数不可被同进程周期计时器抢占;由进程外监测、Protocol Host 与硬件保护链处理。 | Confirmed |
| 受控停止态 | 运行配置集成组切换 | 执行模块、IO 映射、变量字典、AI 权限和输出约束整体校验/激活/回退。 | Confirmed |
| 停止时输出策略 | 逐变量冻结 | 输出值、保持时间、设备行为和重新使能条件尚未决定;不得默认“保持最后输出”。 | Open |
验证路线:以证据关闭设计假设
实时性、模型效果与协议互操作性不靠设计文字成立,而由目标硬件、故障注入和联合负载报告成立。
评审门槛:进入实现前关闭硬件/BSP 矩阵、PLC 内核与许可、协议角色、IPC ABI、变量字典、安全链和验收负载画像。
P0 · Before implementation智能能力可以更复杂,
但控制权限必须保持简单、明确、可撤回。