汇川 AutoShop PLC 自动编程
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/knj--inovance-autoshop-codegen.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @knj/inovance-autoshop-codegen。面向汇川 H5U、Easy 系列 PLC 的 AutoShop 自动编程 Skill。支持基于用户提供的空白或既有工程,创建并注册 ST 子程序、生成 AutoShop 可识别的原生变量表、在 MAIN 中建立 TRUE→CALL 调用,并保留工程原有多个 SBR 及调用顺序。支持工程备份、回写、往返校验、程序包检查和编译证据审查。
不会默认连接或下载 PLC。
阅读全文 (展开查看完整说明)
概述
一个统一入口,内部按任务路由到“AutoShop 原生工程候选”“显式通用 L1 审查包”和“既有 ST 工程对象”三个模式。默认目标是 AutoShop 能打开和编译的原生工程候选;用户只需描述设备需求,不应被要求编写标准 IEC POU。只有用户明确要求“待导入文本审查包”时,才允许生成通用 L1。
三分钟快速开始
复制下面请求并替换方括号内容:
我已在 AutoShop 中按实际汇川 H5U/Easy 型号新建空白工程,完整工程目录为[绝对路径]。请根据[上料→夹紧→加工→下料]生成 AutoShop 原生工程候选。MAIN 只保留 TRUE→CALL SBR_AI_MAIN;SBR 只写执行体;变量、枚举、结构体和 FB 实例必须使用工程内原生对象。缺少原生对象时停止并列清单,禁止输出标准 IEC PROGRAM/VAR 明文替代品。不连接或下载 PLC。
预期得到完整工程候选、原生对象清单、SBR 执行体契约结果、变更/保持哈希和 QA 报告。只有 AutoShop 真实全量编译成功才能称为可用程序。显式通用 L1 的单独流程见 [references/requirements-to-program.md](references/requirements-to-program.md)。
场景选择
| 当前条件 | 选择 | 最高可达 | 关键限制 |
|---|---|---|---|
| 无现成工程 | 准备 AutoShop 原生空白工程 | L0 | 默认不输出明文 POU;用户先按实际型号建立工程 |
| 无现成工程,且明确只要待导入文本审查包 | 通用 L1 示例生成 | L1 | 非原生工程、不可直接编译;必须明确选择 |
| 已提供 HCP/HCPP、完整工程目录、ST 或明确要求借用模板 | 模板优先适配 | L1/L2 候选 | 必须先建立工程清单;不得静默退回通用 MAIN |
| 已有工程,只查看 ST | 读取模式 | L1 | 不发生写入 |
| 已有工程,修改既有 ST | 备份→修改→回写→再读校验 | L2 | 写前再次明确授权且 AutoShop 关闭 |
| 用户新建的 H5U/Easy 工程,MAIN 命中已核验 AutoShop 6.2 真空白格式档案 | 创建 ST SBR,并从真空白 MAIN 生成原生 TRUE→CALL 入口 | L2 候选 | Easy301 是首个编译验证样本;其他型号需补做型号级编译 QA |
| MAIN 未命中已知格式档案的纯 LD 空白工程 | 一次性在 AutoShop 创建 ST 子程序并由 MAIN CALL | L1 | 先为该格式建立验证档案,或由 AutoShop 完成创建、注册、保存和首编译 |
| MAIN.LD 已 CALL 预置 ST 子程序的完整模板 | 可见证据预检→复制模板→后台替换 ST 子程序→往返校验 | L2 候选 | ASCII 字符串不算调用证据;必须绑定 AutoShop 可见网络与基准编译证据 |
| 完整兼容 H5U/Easy 模板,只替换已有 MAIN 普通地址 | 模板候选 | L1 | 只生成新副本;仍需对应型号的 AutoShop 加载、保存和编译 |
| 有真实 AutoShop 编译证据 | 编译证据审查 | L3 | 结构化证据、工程和日志哈希必须一致 |
| 下载 PLC | 现场受控下载 | L4 | 必须再次明确授权;本 Skill 不默认执行 |
| 其他 PLC 品牌 | 不适用 | — | 使用对应品牌工具 |
目标和能力边界
AutoShop 原生输出硬契约
- 用户输入应是设备需求、控制器型号、工程路径和验收条件,不要求用户提供或改写 IEC 程序。
- AutoShop 工程模式下禁止把
PROGRAM、VAR...END_VAR、END_PROGRAM、FUNCTION_BLOCK等标准 IEC 完整 POU 写入 SBR。 - SBR 源码只能是执行体;变量、枚举、结构体和 FB 实例必须存在于 AutoShop 原生变量表、类型表和功能块实例对象。精确命中已核验真空白 GVT 档案时,可从
VariableSpec创建 BOOL 变量;其他类型或非空表仍必须预先存在。 - 每次构建前运行
scripts/validate_autoshop_sbr_source.ps1。自定义符号必须由声明清单覆盖;清单必须给出当前工程 HCP 的工程内相对路径与实际 SHA-256,以及每个原生声明对象的工程内相对路径、实际 SHA-256 和folder.txt注册关系。只有布尔标志或任意 64 位字符串不能作为原生声明证据。 - 缺少原生对象、声明清单或安全创建能力时,输出结构化阻塞诊断和最小准备步骤;禁止退回通用 L1、禁止在回答中粘贴一份明文 POU 冒充完成结果。
- 原生候选未取得 AutoShop 全量编译证据时只能称为候选,不能称为“AutoShop 可用程序”。
程序生成模块
- 整理自然语言需求、假设、待确认项和安全边界。
- 生成 LiteST/ST L1 源码包:变量清单、结构体、枚举、FB/FC、MAIN/工位程序、状态机、报警复位、I/O、调用关系、QA 和轴配置需求说明。
- 可以输出 LD 网络规格供人工创建和核对,但不能生成或注册原生 LD 图形对象。
- 可以说明软件轴、EtherCAT、PDO、单位、限位和回零等配置需求,但不能创建或修改原生轴树。
通用 L1 不是默认生成路径。只要用户提供 .hcp/.hcpp、完整工程目录、既有 ST,或明确说“按模板修改/借用模板”,必须优先读取实际模板并建立对象、变量、FB 实例、MAIN 调用和 I/O 映射清单。模板缺少可安全替换的预置对象时,停止在模板适配方案并列出阻塞原因;不得改为生成通用 PROGRAM MAIN。只有用户未提供模板且明确接受“待导入源码包”时,才使用 assets/examples/generic-l1-source-package/。详细路由和一致性证据见 [references/template-first-routing.md](references/template-first-routing.md)。
既有 ST 工程对象模块
- 检查、提取用户授权的既有 AutoShop 6.x
.ST对象。 - 在文本层生成可审查补丁。
- 写回前要求新的明确授权并确认 AutoShop 已关闭。
- 写回时完成加密—解密往返校验、临时对象验证、非源码尾部逐字节保持、旁路备份、原子替换和最终重新解密验证;最终失败自动恢复备份。
MAIN.LD → ST 子程序基准工程模块
- 推荐用 ST 语言的 SBR 作为业务逻辑入口。
MAIN.LD可以按项目结构调用多个 SBR,例如初始化、自动、手动、报警和数据处理各自使用独立子程序;调用数量和顺序必须沿用实际项目架构。 - 候选构建器只要求“本次选择的目标 SBR 在
MAIN.LD中恰好有一个调用锚点”,用于证明该对象确实进入扫描流程;这不是对 MAIN 全部 CALL 数量的限制,其他 SBR 调用必须保留且不得被改写。 - AutoShop 的 SBR 源文件只接受执行体,不能写标准 IEC 的
PROGRAM、VAR...END_VAR、END_PROGRAM。符号变量、结构体、枚举和 FB 实例必须先存在于 AutoShop 原生变量表/类型/实例对象中。 - 直接候选构建前必须运行
validate_autoshop_sbr_source.ps1。源码含自定义符号时,可传入既有DeclarationInventory,或对精确匹配的真空白表传入VariableSpec自动创建 BOOL 变量;构建器在 SBR 注册后重新绑定最终 HCP/GVT 哈希并复验全部符号。证据缺失或类型不支持时停止。 - 空白工程由用户自己在 AutoShop 新建;发布包不附带空白 PLC 工程。
- 对命中已核验 AutoShop 6.2 真空白 MAIN 序列化档案的 H5U/Easy 工程,当前最小启动档案可用 ST 结构档案、受完整哈希保护的 LD 变换档案、用户源码和本机官方加密接口,生成第一个
TRUE → CALL SBR_AI_MAIN;这只是空白工程启动夹具,不代表正式项目只能有一个 SBR。Easy301 是首个完成编译 QA 的示范型号;是否可构建由完整文件指纹与结构约束决定,不由型号文字硬编码决定。 - 其他空白工程仍需第一次由 AutoShop 创建并注册 SBR、添加 CALL、保存且编译,形成可复用的只读基准工程。
- 后续只复制完整基准工程,在候选副本中后台替换该既有
.ST对象;MAIN、folder.txt、HCP 和其余工程文件不变。 - 构建器要求目标 SBR 的 CALL 锚点恰好出现一次、ST 已由
folder.txt注册,并验证模板本体未改变、候选只改变目标 ST、源码往返和非源码尾部保持成功;其他 SBR 及其 CALL 不得变化。 - 构建器还要求项目内
qa/native-main-call-evidence.json将当前 MAIN/HCP/folder.txt/ST 哈希绑定到 AutoShop 可见的TRUE → CALL截图和一次基准全量编译。仅在 MAIN.LD 二进制中找到CALL字符串必须拒绝,因为孤立字符串可能对应空白画面。 - FB 需要实例声明和调用参数,不作为这个最小模板入口;复杂功能可在预置 SBR 内调用模板已经声明好的 FB 实例。
详细准备和候选构建见 [references/ld-main-st-subroutine-template.md](references/ld-main-st-subroutine-template.md)。
当前仅有一个受源文件与结果文件双重哈希约束的 AutoShop 6.2 真空白 MAIN 格式档案,可在匹配工程的候选副本中创建并注册 ST SBR,并生成原生 TRUE → CALL SBR_AI_MAIN MAIN。Easy301 已完成该档案的首个黑盒编译验证;其他 H5U/Easy 型号若产生相同完整指纹可生成候选,但必须以该型号的 AutoShop 保存、关闭重开和全量编译证据完成型号级确认。空白工程必须由用户自己用 AutoShop 新建;未知 MAIN 指纹安全停止。该档案不是通用 HCP/LD 生成能力。
工程内部 GCMModal/HardwareFile 是 AutoShop 平台兼容码,不一定等于 PLC 对外型号。输出和 QA 必须动态记录用户选择的 controller_display 与工程实际读取的 project_internal_model_code,不得用 Easy301/H6ES 常量覆盖其他型号。
H5U/Easy 用户工程副本候选模块
- 复制用户授权的完整模板目录,保留全部工程文件。
- 在新副本的既有
MAIN.LD中替换唯一出现的普通 ASCII 设备操作数,支持地址长度变化。 - 验证所有非 MAIN 文件哈希不变,并输出
candidate_load_required证据。 - 不原地修改、不覆盖已有输出,也不新增网络、元件、指令块或工程节点。详细流程见 [references/ld-template-candidate.md](references/ld-template-candidate.md)。
能力证据和未实现项见 [references/capability-evidence.md](references/capability-evidence.md)。
精确触发条件
当用户同时涉及汇川 H5U/Easy、AutoShop、LiteST/ST、PLC 状态机、变量/类型/FB/FC、程序生成、已有 ST 工程源码读取或后台回写时使用。典型请求包括“根据设备动作生成完整 PLC 程序”“修复 AutoShop 工位 ST”“不操作鼠标后台修改既有 ST”“检查是否真的编译通过”。
其他品牌 PLC、纯 HMI 设计、机械/电气选型、绕过密码、未经验证的未知工程格式不触发。仅讨论通用 IEC 61131-3 概念时也不需要本 Skill。
输入与前置条件
程序生成优先取得控制器具体型号、AutoShop 版本、语言、动作顺序、模式、I/O、轴/气缸/真空/视觉、联锁、超时、报警、复位、计数和保持要求。缺少地址、轴号或第三方接口时不得虚构,写入 manifest 的 open_items。
既有 ST 对象操作还需要:
- 用户有权处理的实际
.ST路径;该事务模块不解析或修改.hcp/.hcpp,不自动注册引用。 - 本机 32 位 AutoShop、
InterfaceMgr.dll和 32 位 .NET Framework C# 编译器。 - 写回前再次获得明确授权,且 AutoShop 已关闭;只读检查/提取不要求关闭。
交付等级
- L1
candidate:完整、可审查、待导入的源码包。允许列出open_items,不能称为工程已写入或已编译。 - L2
written:内容写入用户提供且兼容的既有工程对象。当前自动实现覆盖兼容的既有 AutoShop 6.x ST,以及精确命中已验证空白格式档案的 BOOL 变量表/ST SBR 候选;必须有备份、往返验证和对应结构化证据。没有 AutoShop 编译证据时,原生候选仍不得称为 L3。 - L3
compiled:真实 AutoShop 全量编译成功,open_items为空,并具有独立结构化编译证据、实际工程文件和证据文件哈希。 - L4
downloaded:在 L3 基础上,经用户单独授权下载 PLC并保存结构化证据;在线修改、I/O 强制和轴动作同样需要单独授权。
状态只按结构化证据提升。自然语言中的“编译通过”“未编译通过”或类似子串没有任何等级效力。证据规范见 [references/delivery-evidence.md](references/delivery-evidence.md)。
路由和执行流程
- 先运行
scripts/preflight_check.py,确认控制器、工程类型、AutoShop 版本、工程路径、ST 对象、读写条件、当前可达 L1–L4 和受限项。显式 ST 必须是工程根直属枚举对象,并同时在folder.txt与当前 HCP 中唯一注册;备份目录或仅复制进目录的孤立文件不能作为目标。授权“生成代码”不等于授权“写工程、编译或下载”。 - 用户提供工程/ST/模板或明确要求借用模板时,先读取 [references/template-first-routing.md](references/template-first-routing.md),输出模板清单和适配结论。缺少安全替换锚点时停止,不得调用通用 L1 模板。
- 默认生成请求必须得到
output_contract.target=autoshop_native_project且raw_iec_pou_allowed=false。没有工程时路由到prepare_autoshop_native_project,要求用户先在 AutoShop 按实际型号新建空白工程。只有用户明确要求待导入文本审查包时,才读取 [references/requirements-to-program.md](references/requirements-to-program.md),并使用--accept-generic-l1;该结果必须标记autoshop_recognizable=false。 - 涉及变量、结构体、枚举、FB/FC 时读取 [references/project-types.md](references/project-types.md);保持声明、实例、调用和复位一致。
- 涉及轴配置或运动指令时读取 [references/motion-control.md](references/motion-control.md),严格区分配置对象与运行逻辑。
- 指令接口或型号支持不确定时使用
scripts/query_manual.py查询本地官方手册;无 PDF 时只使用 [references/instruction-quick-reference.md](references/instruction-quick-reference.md) 的降级速查并标明来源。 - 发布包通用示例位于
assets/examples/generic-l1-source-package/并使用.st.txt;仅在通用 L1 已被明确接受时运行scripts/materialize_source_package.py恢复.st,再使用scripts/validate_program_package.py验证 L1–L4 包。 - 用户提供既有 ST 时,先读取 [references/st-object-usage.md](references/st-object-usage.md),执行
inspect和extract,在提取文本上生成补丁。 - 工程只有 LD 时不得把外部 ST 文件硬塞进目录。若 MAIN 精确匹配已核验的 AutoShop 6.2 真空白格式档案,可按 [references/ld-main-st-subroutine-template.md](references/ld-main-st-subroutine-template.md) 使用
scripts/build_autoshop62_native_call_candidate.ps1并传入实际显示型号;需要基础 BOOL 符号时同时传入-VariableSpec。构建器只在新副本中创建变量表记录、注册 SBR 和生成原生 TRUE→CALL MAIN;源或结果完整哈希不匹配必须停止。Easy301 之外的首次型号验证必须补做 AutoShop 编译 QA。 - 用户提供完整兼容 H5U/Easy 模板且只需替换已有 MAIN 普通地址时,读取 [references/ld-template-candidate.md](references/ld-template-candidate.md),使用
scripts/build_ld_template_candidate.py --controller <实际型号>生成新的完整候选副本;不得直接改模板。 - 写回属于新的外部修改动作。展示目标和补丁后,再次取得用户明确授权;检查 AutoShop 已关闭后才运行
scripts/autoshop-st.ps1 write。 - 写回前必须通过当前 DLL 的原密文精确复现;写回后再次提取实际对象,核对输入源码哈希、最终对象哈希、备份、
TailPreserved=True、ProfileRoundtripVerified=True和Verified=True,形成 L2 证据。最终核验或证据提交失败时必须自动恢复备份。 - 验证报告必须分别给出
package_structure_valid、template_conformance_valid和autoshop_compiled。只有出现真实 AutoShop 编译会话和满足规范的证据才令autoshop_compiled=true并提升 L3;只有单独下载授权和下载证据才提升 L4。
执行闭环必须保持为:需求 → 生成 → 校验 →(写入时)备份 → 回写 → 再读核对 → 证据。没有真实编译环境时必须停在 L1/L2。
诊断不支持的 ST 布局前读取 [references/st-object-format.md](references/st-object-format.md)。不要猜偏移或直接修改密文。
生成与修改规则
- 先生成与语言无关的需求/对象中间清单,再映射到 AutoShop 原生对象;不得直接从自然语言拼接标准 IEC 完整 POU并作为工程结果。
- AutoShop 工程模式的最终回答不粘贴完整 POU,不把
.st.txt、CSV 变量表或 Markdown 声明清单描述成已写入工程;只交付原生候选路径、对象变化、验证和阻塞项。 - 沿用现有工程命名、数组范围、工位索引、I/O 和对象约定;没有工程时使用清晰占位并列入
open_items。 - 新增符号必须给出声明位置、类型、初始/复位和保持规则;FB 必须有实例。
- 持续电平、单次触发、握手和计数按扫描周期设计,避免重复执行和同周期连续跳步。
- 输出、状态、计数器和握手位必须有唯一所有者或明确仲裁。
- 动作使用真实完成条件和超时/错误路径;固定延时不能冒充运动、视觉或通信完成。
- 安全、停止和复位优先级明确,未知物理输出默认关闭。
- 轴配置说明与 ST 运动代码分开;无授权不生成会驱动真实轴的测试。
输出规范
每次交付必须明确最高等级、已完成内容、目标对象、全部新增/修改声明、假设、open_items、验证证据及未完成事项。
- 原生工程默认路径的 L1:交付需求、I/O、状态机、原生对象清单、SBR 执行体草案和模板适配方案;缺少工程或原生对象时停止,不输出标准 IEC 完整 POU 冒充 AutoShop 工程。
- 显式通用 L1:仅当用户明确接受“待导入文本审查包”时,才交付完整文本程序包;必须标注
autoshop_recognizable=false。 - MAIN→ST 模板候选:另列 CALL 锚点、模板/候选文件清单、唯一变更 ST、源码/对象哈希、备份和往返证据;没有 AutoShop 编译证据不得称为 L3。
- H5U/Easy 模板候选:另列真实显示型号、内部平台码、格式档案、模板文件数、源/候选 MAIN 哈希、非 MAIN 差异和 AutoShop 加载结果;没有该型号的保存与编译证据时仍是 L1/L2 候选。
- L2:另列实际 ST 路径、修改前后片段、备份路径、源码/对象哈希、尾部保持和验证状态。
- L3:另列 AutoShop 版本、控制器、编译时间、
result=success、error_count=0、工程/日志路径和哈希。 - L4:另列下载授权确认和下载证据;不得包含密码、Token 或不必要的设备身份信息。
不得把文本审查、ST 往返验证或验证器通过描述为已经编译、下载或现场功能正常。
异常处理
所有失败统一输出:stage、object_name、reason、write_occurred、target_restored、backup_location、next_action、candidates。找不到对象时必须列出候选对象。字段和五类标准错误见 [references/error-diagnostics.md](references/error-diagnostics.md)。
- 信息不足:完成安全的原生 L1 设计部分并列
open_items;没有工程时路由到prepare_autoshop_native_project,不得静默生成通用 IEC POU。影响安全架构时请求补充。 - 指令/型号不确定:查询本地官方手册;无官方证据时降低结论。
- AutoShop 正在运行:允许只读,拒绝写入;不得强制结束进程。
- DLL、编译器或 PDF 依赖缺失:明确数据来源和安装要求,不下载非官方组件。
- ST 头、长度或布局不支持:停止,不猜格式,目标保持不变。
- 加解密或临时对象验证失败:不替换目标;最终验证失败时自动恢复备份。
- L3 证据为空、字段不一致、哈希不匹配或
open_items非空:拒绝compiled状态。 - 编译失败:从首个有效错误回查声明、实例和引用,不删除安全逻辑规避错误。
安全与隐私
本 Skill 本地优先,不上传工程、源码、哈希、手册或日志。发布包不包含官方 PDF、客户工程、样本、备份或预编译 EXE。ST 桥接程序从随包 C# 源码在 %LOCALAPPDATA%Codexinovance-autoshop-codegen 编译,可删除重建;原生加解密在带保护页的隔离辅助进程中执行。
不绕过密码、授权或安全联锁;不扫描无关目录。手册查询默认只检查明确路径、环境变量和 AutoShop 手册目录,只有传入 --discover-user-files 才搜索当前用户的 Downloads/Documents。PLC 下载、在线改写、强制 I/O、设备启动和轴动作必须分别获得明确授权。
真实案例
1. 只有自然语言需求
用户要求:“Easy521 控制双工位装配机,自动上料、夹紧、加工、下料,所有气缸 3 秒超时报警。”
输出原生 L1 设计:需求、假设、I/O、状态机、报警、所需原生变量/枚举/结构体/FB 实例清单、SBR 执行体草案、调用图和 QA;同时要求用户在 AutoShop 按实际型号创建空白工程。当前路由为 prepare_autoshop_native_project,不交付 PROGRAM/VAR/END_PROGRAM 明文,不声称已有 HCP、编译或下载。若用户明确改要“待导入文本审查包”,才切换到显式通用 L1。
2. 已有 ST 对象
用户要求:“修复转盘清料状态机,后台写入,不操作鼠标。”
先只读提取目标和相关 ST,生成补丁并展示;写回前重新取得明确授权并要求关闭 AutoShop。随后备份、回写、尾部保持、最终解密和再次提取均成功,最高可报告 L2;没有编译证据不能升 L3。
3. 条件不足的更高等级请求
用户要求:“新建含 INT/结构体的变量表、FB、轴对象,编译后直接下载 PLC”,但只提供自然语言且没有模板、AutoShop 编译环境或下载授权。
生成原生对象定义清单、轴配置需求和模板适配方案,明确当前原生变量表写入仅覆盖已验证空白 GVT 的 BOOL 记录,不能创建本例所需的其他原生对象;列出达到 L2/L3/L4 分别缺少的工程/对象创建流程、编译证据和下载授权,并停止在原生 L1 设计阶段。禁止退回标准 IEC 完整 POU。
4. H5U/Easy 的 MAIN 只负责 CALL
用户先在 AutoShop 按实际 H5U/Easy 型号新建空白工程。适配器按 MAIN/GVT 完整指纹判断是否命中已核验格式档案,而不是按 Easy301 名称放行;命中后复制完整工程,可由 JSON 清单创建基础 BOOL 原生变量,创建并注册 SBR_AI_MAIN.ST,写入仅执行体源码并原子安装原生 MAIN。INT/REAL、数组、结构体、枚举、FB 实例或非空变量表仍停在声明准备阶段;不得把标准 IEC VAR 段写进 SBR 冒充声明。离线证据固定 autoshop_compiled=false,随后必须用同型号 AutoShop 环境打开、编译、关闭重开并再次编译。
常见问题
可以自动生成完整 HCP 工程吗? 目前不能通用生成。默认可以基于兼容工程生成原生候选、安全写回兼容的既有 ST 对象,并在精确空白格式档案上创建 BOOL 变量表/ST SBR 候选;其他原生对象仍需经验证的创建流程。只有用户明确接受时才生成不属于原生工程的通用 L1 文本审查包。
支持 LD 吗? 可以生成和审查 LD 网络规格,也能在兼容 H5U/Easy 完整工程的新副本中替换既有 MAIN 的唯一普通设备地址。仍不能任意新建 LD 网络、元件或工程节点,因此不宣称从零生成任意原生 LD 工程。
纯 LD 空白工程怎样用于自动编程? 用户先用 AutoShop 按实际型号新建空白工程;Skill 不附带所谓“模板程序”。若 MAIN 命中已核验的 AutoShop 6.2 真空白格式档案,适配器可在候选副本中自动创建第一个 ST 类型 SBR 和对应 TRUE → CALL。正式项目可以继续按结构增加并调用多个 SBR;每个调用的存在性、顺序和目标都要单独验证。Easy301 是示范和首个编译验证型号,并非型号白名单;其他型号仍须完成型号级编译 QA。未命中档案时先做一次人工准备或建立新档案。
为什么选择 SBR 而不是 FB? SBR 可由 MAIN 用一条 CALL 调用,依赖最少。FB 还需要实例、变量表和参数映射;若确实需要 FB,应在基准模板里预先创建实例,再由 SBR 调用。
为什么 PROGRAM/VAR 在 SBR 中报错? AutoShop 的 SBR 对象不是标准 IEC 完整 POU 文本;代码区只保存执行体。变量必须在 AutoShop 原生变量表、枚举、结构体或功能块实例表中创建。真空白且命中当前 GVT 档案时可自动创建 BOOL;其他声明必须先准备并生成声明清单。
L3 验证通过是否绝对证明真实编译? 不绝对。验证器证明字段、文件和哈希一致;操作者或外部 QA仍需确认日志确实来自对应 AutoShop 编译会话。
AutoShop 打开时能后台写吗? 只读提取可以;写回会拒绝,避免与 AutoShop 保存竞争。
完成与验证标准
- L1:需求、声明、类型、实例、执行、复位、报警、I/O、调用关系和 QA 一致,包验证通过,待确认项结构化记录。
- L2:在 L1 基础上,授权的既有 ST 写入完成,备份存在,源码往返和尾部保持通过,并再次提取一致。
- L3:在 L2 基础上,真实 AutoShop 全量编译成功,结构化证据与实际工程/日志哈希一致,
open_items为空。 - L4:在 L3 基础上,获得单独下载授权并保存成功证据;现场动态 QA 仍需单独说明。
发布前矩阵见 [references/test-plan.md](references/test-plan.md),发布与包卫生规则见 [references/release-qa-policy.md](references/release-qa-policy.md),最近一次本地结果见 [references/test-results.md](references/test-results.md)。