ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PHAST-SAFETI二次开发教程(01):Phast™ 与 Safeti™ 全景——过程安全 QRA 的行业标配与二次开发三条通道

PHAST-SAFETI二次开发教程(01):Phast™ 与 Safeti™ 全景——过程安全 QRA 的行业标配与二次开发三条通道 PHAST-SAFETI二次开发教程01Phast™ 与 Safeti™ 全景——过程安全 QRA 的行业标配与二次开发三条通道版本声明块工具与软件Phast™ 与 Safeti™ 的版本主线为 9.x其中 9.0 于 2023 年 12 月发布9.1 增补了粉尘爆炸Dust Explosions等能力知识中心另可见 9.3 相关的 GIS BETA 视频历史锚点版本为 8.4、8.6、8.7 与 8.x具体细节一律以官方发布说明为准。语言与环境官方 Python 库 PyPWS 要求 Python 3.11 及以上官方 API 客户端形态为 Excel、Python、.NET 与 TypeScript 四种。本文目标用一篇文章建立 Phast™ 与 Safeti™ 的能力地图、二次开发的三条真实通道以及全系列四阶段的学习路径。一句话结论Phast™ 负责后果分析泄漏 Discharge、扩散 Dispersion、火灾/爆炸/毒性 EffectsSafeti™ 在同一界面内把后果与频率合成定量风险分析LSIR、FN curve、PLL、IRPA 与 ALARP 判据二次开发只有三条真实通道——桌面批量与 Excel 导入、官方 Phast API / Phast Web Services含 Python 库 PyPWS、以及 Phast Online 与 Phast CFD / KFX™ / EXSIM 生态而 Safeti™ 侧的公开自动化接口目前未获官方证据必须按桌面操作加数据面自动化的思路设计。〇、本篇要解决的认知问题开始之前请带着这五个问题读完全篇——文末的 FAQ 会逐一自包含地回答不依赖其他篇章。Q1Phast™ 与 Safeti™ 到底怎么分工为什么它们总是被一起提起Q2这套软件凭什么成为过程安全行业的标准工具四十年验证对二次开发意味着什么Q3二次开发的三条通道分别是什么各自能做什么、需要什么前提条件Q4官方可编程接口长什么样为什么必须先确认官方接口再动手写第一行代码Q5学完这个系列我能做什么四阶段的学习路径如何安排一、机制解析1.1 分工一个回答会发生什么一个回答风险有多大Phast™ 与 Safeti™ 出自同一厂商 DNV二者使用同一套后果模型内核但在工程角色上分工清晰维度Phast™Safeti™核心问题会发生什么后果风险有多大后果 × 频率典型输入物料、源项、气象、地面条件、点火假设前者全部 设备失效频率、点火概率、风向频率、受体位置典型输出浓度等值线、火焰长度、池径、热辐射、闪火范围、超压与冲量、毒性剂量与致死率LSIR 等值线、Individual Risk、FN curve、PLL、IRPA并据 ALARP 判据论证结果视图2D 曲线、3D 视图、地图与 plot plan、表格、Word/Excel 报告风险等值线图、风险排序点贡献分解、社会风险曲线典型使用者工艺安全工程师、设计院、EPCQRA 分析师、安全咨询团队、监管沟通团队为什么这对你很重要它直接决定二次开发的目标函数完全不同。Phast™ 侧的自动化目标是把成百上千个场景的后果算出来并结构化落盘Safeti™ 侧的自动化目标则是把多组风险标准的验收结论批量比对出来。前者有官方 API 支撑后者目前以桌面操作与数据面复用为主——这两条路线的工法差异贯穿整个系列。1.2 为什么它是行业标配验证历史即信用Phast™ 与 Safeti™ 经历了四十余年的持续开发与实验验证累计用户数以万计、服务组织数以千计覆盖油气、炼化、LNG、氢、氨、CCS碳捕集与封存等场景。其物料库包含 2,000 种以上物料物性来源为 DIPPR 数据库另提供代表物料与用户自定义物料机制。对二次开发而言验证历史不是宣传语而是一条工程约束结果可被第三方接受。你自动化产出的后果图要能直接进入安全报告与许可论证这要求你的脚本调用的是官方计算内核而不是你自研的近似公式。物性不可臆造。物料的热力学与物性行为由官方物料系统提供自建物性参数铁律 8必须取自官方技术文档并标注来源。能力边界要清楚。Phast™ 的核心链路由经验/唯象模型构成高保真三维场景才走 CFD 扩展Phast CFD、KFX™、EXSIM——把两者混为一谈是最常见的论证错误。1.3 三条通道一次把路摸清在动手之前必须先把你到底走哪条路这件事定下来。二次开发的三条真实通道如下你的工程输入工况表 / 流程模拟导出 / 数字孪生 / 设计数据 | ---------------------------------------------- | | | [通道 A] [通道 B] [通道 C] 桌面批量与 Excel 导入 官方 Phast API / Phast Online 与 CFD 生态 Phast(TM)/Safeti(TM) GUI Phast Web Services - 浏览器端筛选与应急 - Batch runner 队列 - Excel / Python / - Phast CFD池火/射流火/ - Excel import 建研究 .NET / TypeScript 扩散 - Word/Excel 报告 - Python 库 PyPWS - KFX(TM) / EXSIM 高级 CFD - 风险排序点(RRP) - 托管端点 访问令牌 - Safeti 导入 asc 结果回灌 | | | 成果研究文件与报表 成果结构化结果对象 成果高保真三维结果三条通道的选型依据可以压成一张决策表通道能做什么前提条件官方证据A 桌面批量队列化跑多场景、Excel 导入快速建研究、出报告Phast™/Safeti™ 桌面许可官方 Phast/Safeti 9.0 更新文章Knowledge CentreB 官方 API脚本化逐场景计算、结果进结构化数据管道Phast API 访问令牌 网络可达托管端点https://phastwebservices.dnv.com/C CFD 生态三维几何下的扩散/火灾/爆炸、结果回灌CFD 扩展许可与几何数据官方后果分析总览页最佳实践先用通道 A 把业务跑通、把哪些参数要扫描、结果要看哪些量想清楚再决定是否上通道 B。没有清晰的业务参数化需求就上 API只会把 GUI 的手工劳动翻译成 Python 的手工劳动。1.4 官方接口的真实形态与诚实边界官方为 Phast™ 后果计算提供的是托管 Web 服务形态的接口Phast Web Services 门户https://phastwebservices.dnv.com/明列 Excel、Python、.NET、TypeScript 四种客户端形态Python 侧对应官方 PyPI 包pypws文档体例写作 PyPWS要求 Python 3.11 及以上。计算端点形如https://phastwebservices.dnv.com/api/analytics/v1/。同时必须把边界说清楚这也是本系列的写作纪律未确证项 FSafeti™ 侧是否存在等价的公开 API本次检索未找到官方证据。因此 Safeti™ 相关的自动化本系列一律限定为桌面操作 数据面自动化不宣称其具备公开 API 能力。未确证项 B官方可编程接口形态是 Web ServicesREST与四种官方客户端库未见 COM / Scripting 独立接口的官方表述。凡在网上看到Phast 的 COM 接口请一律回到官方门户核对。未确证项 APhast™ 研究文件的具体扩展名官方页面未给出确证本系列一律写以官方 User Manual 为准不写任何扩展名。铁律 2闭源事实纪律任何 API 类名、方法名、端点、文件扩展名都必须有官方证据查不到的一律写未确证 / 以官方文档为准。Phast™ 与 Safeti™ 是闭源商业软件公开技术资料有限宁缺毋编是唯一安全策略。1.5 四阶段学习路径本系列 20 篇按四阶段递进本篇属于第一阶段阶段篇号能力目标入门01~04认识产品、搭好环境、看懂数据模型、跑通第一个后果分析核心05~08解剖模型链路、掌握源项与物料、气象与地形、第一个批处理进阶09~12Safeti™ 与 QRA 原理、研究设置、影响分析与验收标准、CFD 扩展高级/实战13~20批处理工程化、自定义源项与物料、数据对接与三条实战线二、完整操作与脚本/API 代码逐段剖析2.1 通道 A 走查用桌面把一个研究跑完操作步骤清单在你写任何脚本之前先用桌面走一遍完整流程把研究这个概念坐实。以下是标准动作序列各版本菜单措辞可能微调以官方 User Manual 为准步骤 1 启动 Phast(TM)或 Safeti(TM)确认标题栏/关于页显示的版本号为 9.x 主线 步骤 2 新建一个 Study Folder用于收纳本项目下所有研究 步骤 3 在 Study Folder 下新建一个 Study例如 Tank Farm - LPG 步骤 4 在该 Study 下新建一个 Scenario场景例如 V-101 10mm 孔泄漏 步骤 5 在场景输入区依次设置物料 - 源项容器/管道/孔径/相态- 气象 - 地面条件 - 点火假设 步骤 6 选择需要计算的结果类型扩散浓度、热辐射、闪火、超压、毒性 步骤 7 点击运行官方内核通常在秒级给出结果单场景经验/唯象模型 步骤 8 在结果视图中查看2D 曲线、3D 视图、地图/plot plan、结果表格 步骤 9 导出报告选择 Word 报告或 Excel 表格供后续批量汇总 步骤 10 回到步骤 3复制该 Study 作为模板批量扩建气候与孔径维度这一步的目的是什么把场景 一组输入 一组结果这个心智模型固化下来。第 03 篇会把它形式化为 Study Folder / Study / Scenario 三层数据模型第 04 篇会逐字段讲源项输入。2.2 通道 B能力自检脚本确认接口可见性在决定投入通道 B 之前先跑一个只读的能力盘点脚本确认三件事API 目标地址是否指向官方端点、访问令牌是否已按纪律配置、物料系统是否可见。# capability_probe.py —— 通道 B 能力自检只读不产生任何计算费用# 运行前提pip install pypws需 Python 3.11且访问令牌已放入环境变量importos# 读取环境变量避免把令牌写进代码frompypws.utilitiesimportgetAnalyticsApiTarget# 官方工具函数返回当前 API 调用目标地址frompypws.materialsimport(# 官方物料模块的检索函数族getAllCasIds,# 取全部可用 CAS 号getDNVComponents,# 取 DNV 自有组分组件的标识集合getDIPPRComponents,# 取源自 DIPPR 的组分组件的标识集合getUserComponents,# 取用户自定义组件的标识集合getMaterialByCasId,# 按 CAS 号取物料定义)defmain()-None:targetgetAnalyticsApiTarget()# 核验调用目标是否指向官方托管端点print(f当前 Phast API 目标:{target})# 打印出来与官方门户对照tokenos.environ.get(PHAST_API_TOKEN,)# 令牌只从环境变量读取铁律 5print(f访问令牌是否已配置:{bool(token)})# 只输出布尔值绝不回显令牌内容dnvgetDNVComponents()# DNV 组件集合dipprgetDIPPRComponents()# DIPPR 组件集合物料库 2000 的物性来源usergetUserComponents()# 用户自定义组件集合print(fDNV 组件数{len(dnv)}DIPPR 组件数{len(dippr)}用户组件数{len(user)})cas_idsgetAllCasIds()# 全部可用 CAS 号print(f可用 CAS 号总数:{len(cas_ids)})# 作为物料系统是否可用的客观判据sample_cascas_ids[0]# 取任意一个 CAS 号作样例不臆造具体编号铁律 8materialgetMaterialByCasId(sample_cas)# 返回对象的字段结构以官方参考文档为准print(f样例物料 CAS{sample_cas}取出成功:{materialisnotNone})if__name____main__:main()# 一次性盘点通道 B 的可见能力逐行要点getAnalyticsApiTarget()解决我到底在调谁的疑问——企业网络里配错代理或指向测试环境时这一行就能暴露问题os.environ.get而非字面量解决凭据泄露getMaterialByCasId的返回对象结构以官方 PyPWS 参考文档为准所以脚本只判断是否取出成功不臆造其属性名。铁律 3只用官方接口二次开发仅使用 DNV 官方的 Phast API / Phast Web Services / PyPWS。网络上流传的第三方封装器没有官方背书既带来法律风险也会在你升级版本时瞬间失效。2.3 通道选型检查清单动手前先过一遍[ ] 业务是否真的需要批量场景数 20 且只在项目初期通道 A 更划算 [ ] 参数化维度是否清楚要扫描的是孔径、物料、气象、点火假设中的哪几个 [ ] 结果要落成什么只要图还是要结构化表格进数据库/报表 [ ] 许可是否齐备通道 A 需桌面许可通道 B 需访问令牌 [ ] 凭据怎么管令牌走环境变量或密钥管理不进仓库铁律 5 [ ] 是否涉及 Safeti(TM) 风险计算若是先按桌面操作 数据面自动化设计未确证项 F [ ] 有没有一致性回归基准每次自动化结果要与 GUI 结果做对照铁律 7三、常见报错与排查报错 3-1ImportError: No module named pypws。现象脚本无法导入官方 Python 库。根因有两种一是当前 Python 环境未安装该包二是解释器版本低于官方要求的 3.11。解法先python --version确认版本再在同一解释器下pip install pypws多版本共存时务必用虚拟环境否则会出现装了但导入不到的错觉。报错 3-2脚本能导入却始终连不通服务。现象调用计算时长时间无响应或返回网络类错误。根因企业网络对托管端点的访问受限或代理配置未生效。解法先用浏览器打开官方门户 https://phastwebservices.dnv.com/ 验证可达性再用getAnalyticsApiTarget()打印脚本侧的调用目标并逐字比对网络策略问题应交由 IT而不是在代码里硬写代理绕过。报错 3-3鉴权类失败令牌缺失、过期或未被识别。现象请求被拒绝提示与授权相关。根因访问令牌未配置、已过期或因脚本把令牌写死而无法轮换。解法把令牌放入环境变量或密钥管理服务铁律 5过期后统一在配置侧轮换不要把令牌提交进版本库即使后来删掉也可能残留在历史里。报错 3-4“我自动化算出来跟 GUI 不一致”。现象同一场景脚本与桌面结果有偏差。根因排查顺序单位是否混用官方 Web Services 面向全 SI 单位铁律 4→ 物料是否为同一 CAS 号/同一代表物料 → 气象与地面条件是否逐项一致 → 源项相态假设是否相同。解法固定一个黄金场景最简单的单组分、单气象、固定孔径逐字段比对 GUI 与脚本输入把差异收敛到零之后再扩维。四、动手练习练习 1走通通道 A用桌面完整跑一遍 §2.1 的十个步骤建成一个 Study Folder、一个 Study、一个 Scenario 并出图。判定你能不看清单复述出三层数据层次的名称与各自作用。练习 2填出决策表针对你手上真实的项目把 §1.3 的决策表补全为你的版本——写下通道 A/B/C 各自的用途、前提、放弃理由。判定至少有一条通道被你明确否掉并给出理由例如本项目 Safeti™ 侧无公开 API风险部分只用通道 A。练习 3能力自检在 Python 3.11 虚拟环境中安装pypws运行capability_probe.py。判定脚本打印出 API 目标地址、令牌配置布尔值与物料计数若可用 CAS 号总数为 0说明环境或授权有问题需回到 §三排查。练习 4边界自检在网上找一篇声称Phast 有 COM 接口 / 某工具能直读流程模拟原生文件的文章逐条与官方门户比对写出哪一条有官方证据、哪一条属于未确证项。判定能准确引用未确证项 B/E的口径而不是照抄网络说法。练习 5路径规划结合你的岗位写出你在四阶段中真正要走的篇号例如工艺安全工程师可能重点走 05~08、13、17、18。判定每篇都能写出我要用它解决哪个具体痛点。五、小结与下一篇预告本篇建立了全系列的坐标系产品分工Phast™ 管后果、Safeti™ 管风险、三条通道桌面批量与 Excel 导入、官方 Phast API / Phast Web Services 与 PyPWS、Phast Online 与 CFD 生态、两条纪律只用官方接口、查不到就写未确证、一条路径四阶段 20 篇。请记住那个最重要的判断通道 B 的官方能力只覆盖 Phast™ 侧的后果计算Safeti™ 侧的公开 API 未获确证——这句话会决定你后续所有架构决策。第 02 篇《环境与许可》将补齐动手前的最后一环许可形态Individual / Network订阅、租赁与永久、Veracity 商店的购买与续期、Knowledge Centre 作为下载与发布说明的统一入口、API 访问令牌的必要性与治理方式以及一套可直接运行的环境自检脚本。本篇认知问题回显FAQQ1Phast™ 与 Safeti™ 的分工是什么为什么会一起出现APhast™ 做后果分析回答会发生什么输出浓度等值线、火焰长度、池径、热辐射、闪火范围、超压与冲量、毒性剂量与致死率等Safeti™ 做定量风险分析QRA在同一界面里把后果与频率设备失效频率、点火概率、风向频率合成输出 LSIR 等值线、Individual Risk、FN curve、PLL 与 IRPA并据 ALARP 判据论证。二者出自同一厂商 DNV共用同一套后果模型内核所以常被一起提及但 Safeti™ 侧是否存在公开 API 未获官方证据。Q2四十余年验证对二次开发意味着什么A它意味着三件事。第一你自动化产出的后果结果可以支撑安全报告与许可论证前提是调用官方计算内核而不是自研近似公式第二物料与物性由官方物料系统提供物料库 2,000 种以上物性源自 DIPPR自建参数必须取自官方技术文档并标注来源第三能力边界必须清楚——核心链路是经验与唯象模型三维高保真场景才走 Phast CFD、KFX™、EXSIM。Q3二次开发的三条通道是什么各自前提如何A通道 A 是桌面批量与 Excel 导入能力是队列化多场景、Excel import 快速建研究与出报告前提是桌面许可通道 B 是官方 Phast API / Phast Web Services含 Python 库 PyPWS要求 Python 3.11能力是脚本化逐场景计算并进结构化数据管道前提是访问令牌与网络可达托管端点通道 C 是 Phast Online 与 CFD 生态能力是三维几何下的扩散、火灾、爆炸计算并把结果回灌 Safeti™前提是 CFD 扩展许可与几何数据。Q4官方可编程接口是什么形态为什么强调先确认官方接口A官方为 Phast™ 后果计算提供托管 Web 服务形态的接口门户 https://phastwebservices.dnv.com/ 明列 Excel、Python、.NET、TypeScript 四种客户端形态Python 侧对应 PyPI 包pypws计算端点形如 https://phastwebservices.dnv.com/api/analytics/v1/。强调先确认是因为 Phast™ 与 Safeti™ 为闭源商业软件公开技术资料有限COM / Scripting 独立接口未见官方表述Safeti™ 侧公开 API 未获证据研究文件扩展名亦未确证。凡查不到官方出处的类名、方法名、扩展名一律写未确证 / 以官方文档为准绝不臆造。Q5本系列的学习路径如何安排A四阶段 20 篇。入门阶段01~04认识产品、搭环境、看懂 Study Folder / Study / Scenario 三层数据模型、跑通第一个后果分析核心阶段05~08解剖 Discharge → Dispersion → Effects 模型链路与 UDM、掌握源项与物料、气象与地形、第一个批处理进阶阶段09~12学 Safeti™ 与 QRA 原理、研究设置、影响分析与验收标准、CFD 扩展高级与实战阶段13~20做批处理工程化、自定义源项与物料、数据对接以及三条实战流水线。
返回列表