> ## Documentation Index
> Fetch the complete documentation index at: https://all.mimedal.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 安全要求

> 说明设备动作前后如何检查安全条件并保留审计记录。

## 哪些检查不能省

FSP 在操作执行前校验对象、操作和系统，并在资源独占条件下复核会变化的现场条件；设备本地控制器保留最终硬件保护权。编译、仿真或自然语言内容不能绕过任一层。

| 校验部分 | 执行前要求                    | 执行后要求                 |
| ---- | ------------------------ | --------------------- |
| 对象   | 容器存在、类型匹配、实际状态与容量满足要求    | 返回实际对象状态或明确未知         |
| 操作   | 操作存在，参数类型、范围、枚举和跨字段约束通过  | 返回实际执行状态、实际参数和诊断      |
| 系统   | 设备状态、版本号、安全限制、资源锁和任务条件通过 | 返回设备状态、安全检查、任务信息和注意事项 |

## 校验顺序

```text theme={null}
身份与权限 → 请求解析与幂等查询 → 契约版本与参数检查
→ 对象和系统预检查 → 资源预留及受理持久化
→ 锁内复核状态、修订号与安全围栏 → 下发 → 实际结果验证
```

动作前检查失败，服务端不得下发物理动作。受理前的解析、鉴权等错误可以使用厂商接口的错误格式；受理后失败必须保留对象、操作、系统三个维度的结果。返回幂等历史结果仍须校验读取权限，不得因重新检查旧版本号而把同一已受理请求变成一次新执行。

## 状态记录和同时执行的限制

* 改变对象或系统状态的操作必须携带预期版本号；
* 同一容器或同一互斥设备资源的冲突操作不得并发执行；
* 只有完成条件验证通过才能提交预期成功状态；失败或未知时仍必须记录已发生的部分变化和字段失效；
* 任务状态为 `unknown` 时必须重新确认对象和系统状态；
* 安全限制只公开执行判断所需信息，不暴露设备秘密。

必要的限位、单位、坐标、校准或对象身份无法确认时，必须拒绝相应动作，不得把缺失约束解释为无限制。调用方省略围栏字段不能关闭服务端强制围栏。取消任务不是物理急停，软件也不得把控制器 ACK 解释为机械机构已经停止。

## 需要保留哪些记录

每次操作至少记录调用方、设备、操作标识、对象摘要、操作参数摘要、系统版本号、任务标识、实际结果、安全检查、注意事项和诊断编码。日志不得记录密码、内部堆栈或未脱敏样品秘密。
