目录 / 文档-技术白皮书 / 22-EFT.WP.Metrology.Instrument v1.0
第13章 数据接口与元数据(SCPI/IVI/manifest)
一句话目标:以标准化 SCPI/IVI 接口与清单 manifest.instrument.* 为核心,统一采集、控制与溯源元数据,保障量纲、时基与合规一致化发布。
I. 范围与对象
- 范围
- 适用于通过 SCPI(VISA/TCPIP/USB/GPIB/Serial)与 IVI(IVI-C/IVI-COM)驱动访问的通用测量仪器。
- 覆盖控制面(配置/状态/错误)与数据面(波形/标量/事件流),以及批量与流式采集。
- 输出标准化数据集与清单:manifest.instrument.*、签名与追溯字段。
- 对象
- 会话 sess、资源标识 resource、命令集 cmds、数据块 blob。
- 时间与时基:ts, tau_mono, t_hw, offset/skew/J。
- 计量与不确定度:y, unit(y), dim(y), u(y), U = k * u_c。
- 追溯:*IDN?, firmware_ver, driver_ver, cal_cert_id, hash_sha256(blob), TraceID, signature。
- 产出
统一字段数据集 ds,对齐后的 ts,单位归一报告,错误与状态寄存器快照,manifest.instrument.* 与验收报告。
II. 名词与变量
- 接口与驱动:SCPI, IVI, VISA, OPC?, SYST:ERR?, *CLS, *RST。
- 配置与状态:MEAS:FUNC, SENS:FUNC, SENS:AVER, TRIG:SEQ, ACQ:SRATE, BAND, RANGE。
- 元数据键:vendor, model, serial, firmware_ver, driver_ver, cal_date, RefCond。
- 错误与事件:STB, SRQ, queue_len, err_code, err_msg。
- 清单与签名:manifest.instrument.meta, manifest.instrument.session, hash_sha256(blob), signature。
III. 公设 P713-*
- P713-1(接口幂等与可发现):每个会话必须通过 *IDN? 标识并以 *CLS 清队列后进入受控状态。
- P713-2(时基一体化):数据时间语义在 tau_mono 对齐,对外以 ts 发布,记录 offset/skew/J。
- P713-3(量纲守恒):进入计算前执行 repair_units 与 check_dim( y - f(x) )。
- P713-4(错误显式):每次采集结束后检查 SYST:ERR? 与状态寄存器并落盘。
- P713-5(溯源闭环):记录 *IDN?, firmware_ver, driver_ver, cal_cert_id, RefCond,并对每个 blob 计算 hash_sha256(blob)。
- P713-6(清单为准):发布以 manifest.instrument.* 为唯一可信源,签名可追溯。
IV. 最小方程 S713-*
- S713-1(时间映射)
ts = t_ref + offset + skew * ( t_hw - t0 ) + eps_J,其中 t_hw 为硬件时间戳,eps_J 为抖动残差。 - S713-2(时间不确定度传播)
u(ts)^2 = u(offset)^2 + ( t_hw - t0 )^2 * u(skew)^2 + u(J)^2。 - S713-3(量纲校核)
check_dim( y_norm - y_spec ) = true,其中 y_norm 为单位归一后的量,y_spec 为规格口径量。 - S713-4(数据面稳定性)
rho = lambda / mu < 1,其中 lambda 为采集入队速率,mu 为解码与落盘服务速率,保证流式稳定。 - S713-5(签名与完整性)
sig_ok = ( signature == Sign( hash_sha256(blob), pk ) )。
V. 计量流程 M70-13(接入→配置→采集→校核→落盘)
- 会话接入与握手
- 打开 resource,发送 *CLS 清错误与状态,*IDN? 记录设备指纹,拉取 firmware_ver, driver_ver。
- 读取 cal_cert_id, cal_date 与 RefCond,校验有效期与环境一致性。
- 模式与参数配置
- 根据 plan 发出 MEAS:FUNC, SENS:FUNC, RANGE, BAND, ACQ:SRATE, TRIG:SEQ 等命令。
- *OPC? 确认完成;记录最终生效的配置回读值(避免影子状态)。
- 采集与时间戳
- 读取数据 blob 与 t_hw,若设备不提供硬件时间戳,则在驱动侧标注获取时刻并记录 J。
- 调用 align_timebase:映射到 tau_mono 并发布 ts,携带 offset/skew/J 与 u(ts)。
- 解码与计量一致化
- decode_scpi_blob(blob) 得到 ds_raw;执行 repair_units,完成单位归一与 check_dim。
- 按需要计算 U = k * u_c 并合并到字段不确定度。
- 错误与状态校核
查询 SYST:ERR?、读取 STB/SRQ,将 err_code/err_msg/queue_len 落盘,错误不为空则标记 q_score 降权。 - 落盘与清单
对 blob 与结构化数据计算 hash_sha256,生成并签名 manifest.instrument.*;写入 TraceID 与依赖闭包。
VI. 契约与断言 C70-13*
- iface.idn.ok:*IDN? 返回与 vendor/model/serial 匹配。
- iface.error.empty:采集后 SYST:ERR? = 0,"No error";queue_len = 0。
- time.align.ok:|offset| ≤ offset_max, |skew| ≤ skew_max, J ≤ J_max,u(ts) ≤ u_ts_max。
- units.dim.ok:所有数值字段满足 check_dim(expr),单位在白名单内。
- throughput.ok:rho < rho_max,sample_loss_rate ≤ slr_max。
- calib.valid:cal_cert_id 存在且未过期;RefCond 已落盘。
- manifest.signed:sig_ok = true,unique(TraceID),non_decreasing(ts)。
VII. 实现绑定 I70-13*(接口原型与不变量)
- open_session(resource) -> sess(不变量:可重入,超时与重试策略生效)
- scpi_handshake(sess) -> {idn, firmware_ver, driver_ver}(不变量:*CLS 后错误队列为空)
- configure_instrument(sess, cfg) -> cfg_effective(不变量:*OPC?=1)
- stream_measure(sess, plan) -> {blob, t_hw, meta}(不变量:原样保留设备端打包与标记)
- decode_scpi_blob(blob) -> ds_raw(不变量:二进制/ASCII 两类兼容)
- collect_and_align(ds_raw, sync_ref) -> ds(不变量:写入 ts, offset/skew/J, u(ts))
- query_metadata(sess) -> meta(包含 cal_cert_id, RefCond, *IDN? 等)
- emit_instrument_manifest(meta, ds, policy) -> manifest.instrument(不变量:hash_sha256 与 signature 存在)
- assert_instrument_contract(ds, meta, rules) -> report(不变量:覆盖本章 C70-13* 全量断言)
VIII. 交叉引用
- 时基与到达时:见《EFT.WP.Metrology.TimeBase v1.0》第2、4、8–9章;同步与链路:见《EFT.WP.Metrology.Sync v1.0》第4–8章。
- 清洗发布与契约:见《EFT.WP.Methods.Cleaning v1.0》第10章与附录 C。
- 多仪器一致化:见本卷第12章;不确定度发布:见第10章与《CrossStats v1.0》附录 E。
- 成像链条(适用于相机/光谱仪):见《Methods.Imaging v1.0》第3、4章。
IX. 质量度量与风控
- SLI
session_open_latency_ms, cmd_roundtrip_ms_p95, scpi_error_rate, sample_loss_rate, ts_skew_p95, u(ts)_p95, manifest_emit_latency_ms。 - SLO(示例)
scpi_error_rate ≤ 0.1%, sample_loss_rate ≤ 0.01%, ts_skew_p95 ≤ 1e-6 s, manifest_emit_latency_ms ≤ 500。 - 风控与回退
iface.error.empty 失败触发自动 *CLS 与重配;time.align.ok 失败降级为本地 t_hw 与标注 J;清单签名失败阻断发布并告警。
小结
本章以 P713-* / S713-* / M70-13 / C70-13* / I70-13* 建立从 SCPI/IVI 接入、配置与采集,到时基对齐、量纲校核与清单签名发布的一体化规范;所有数据以 manifest.instrument.* 为单一可信源,并与 TimeBase/Sync/ Cleaning 卷形成闭环。版权与许可(CC BY 4.0)
版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。
首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/