ASPEN XML / STREAM CONTRACT V1.2
流股数据
读取与写入
Aspen XML 决定项目流股、组分、数值和单位;CAD 物料表模板只固定线框、槽位和文字样式。这里说明如何从 XML Results File 读取并写入固定模板。
输入必须是什么
只接受根节点为 Plant 的 Aspen XML Results File。必须存在 ComponentsMain/COMPID/Value 和至少一个 StreamMaterial;项目配置 XML、块定义 XML或没有结果流股的 XML 不能制表。
Plant
ComponentsMain / COMPID / Value
StreamMaterial @name
TEMP_OUT @unit / Value
PRES_OUT @unit / Value
MASSFLMX @unit / Value
MASSFLOW @unit / Value
MASSFRAC / Value单位怎么读
量纲字段逐项读取当前 XML 元素的 @unit,不在全局接口中固定成某套单位,也不暗中换算。每个值保存为 {"value": number|null, "unit": string|null}。
- 温度取
TEMP_OUT@unit,压力取PRES_OUT@unit。 - 总质量流量取
MASSFLMX@unit,组分质量流量取MASSFLOW@unit。 - 相分率、质量分率和摩尔分率使用语义单位
fraction,数值保持 0..1。 - 缺字段、空值或
*写null,绝不补零。 - 同一行出现不同单位时输出
units_by_stream;写入 CAD 单位列前必须先统一换算。
组分如何对应
COMPID 的顺序是唯一索引。MASSFLOW[n]、MASSFRAC[n] 和 MOLEFRAC[n] 都对应第 n 个组分;任何向量长度与组分数不一致时立即停止,不能截断或补零。
是否按模板固定写入
线框和槽位固定,数据数量动态。源 CAD 表固定 20 列、60 行:字段列和单位列各 1 列,每张表最多容纳 18 条流股;两段组分区域各最多容纳 16 个组分。
列 1 字段名称 列 2 单位 列 3..20 流股值(18 条/表) 行 1 PFD 流股编号 行 2..26 固定属性 行 27..42 组分质量流量(16 个) 行 43 质量分率标题 行 44..59 组分质量分率(16 个) 行 60 体积流量
XML 只有 13 条流股就使用 13 个流股槽,其余留空;有 19 条则分成 18+1 两页。有 17 个组分则分成 16+1 两个组分页。流股页与组分页取笛卡尔积生成续表。
生成命令与输出
python cad_aspen_agent/scripts/xml_to_stream_table.py --xml <Aspen Results.xml> --project-id <project_id> --out-dir projects/<project_id> [--pfd-map stream_map.json]
stream_results.json:完整项目级流股、拓扑、数值、单位和组分。stream_table.json:固定 CAD 行列槽、每行单位、每列流号和分页计划。stream_table.csv:人工审阅文件。