P&ID(管道与仪表图)

关于 P&ID

**管道与仪表图(P&ID)**是工艺装置的工程"接线图"——每一个容器、泵、换热器、阀门和仪表回路,均以标准化符号绘制,并通过管道和信号线连接。工艺工程师、控制工程师和 HSE 审核人员读同一张 P&ID 来设计装置、调试、进行危险性分析(HAZOP)并在生产中操作。根据 OSHA PSM 和 EPA RMP,P&ID 是化工、石化、制药、水处理和发电项目的法定工程交付物。

Schematex 实现了 ANSI/ISA-5.1-2009 符号目录(仪表气泡、标签字母代码、信号线类型),以及来自 ISO 10628-1:2014 的设备符号(容器、塔、泵、换热器)。DSL 特意设计得紧凑,以便 LLM 能够根据工艺描述一次性生成控制回路 P&ID。

P&ID·§ ISA-5.1 / ISO 10628
↘ preview
100%
P&ID — Pump with Flow Control ISA-5.1 / ISO 10628 P&ID rendered by Schematex Pump with Flow Control Feed Tank P-101 V-101 Filter V-201 FT 101 FIC 101
UTF-8 · LF · 17 lines · 658 chars✓ parsed·0.7 ms·6.0 KB SVG

1. 第一张 P&ID

最小的 P&ID 至少包含一件设备和一条工艺线。

P&ID·§ ISA-5.1 / ISO 10628
↘ preview
100%
P&ID ISA-5.1 / ISO 10628 P&ID rendered by Schematex T-1 P-1 V-1
UTF-8 · LF · 8 lines · 206 chars✓ parsed·0.3 ms·3.7 KB SVG

三条规则涵盖了 80% 的使用场景:

  1. pid 开头(可选标题和 [direction: LR] 属性)。
  2. 声明每件设备:equip <ID> : <类型> [tag: "标签"]
  3. 用管道线连接它们:line <ID> from <设备>.<端口> to <设备>.<端口> [type: "process", size: "4\""]

仪表单独用 inst <TAG> : <类别> 加缩进的 measures / controls 子句添加。

注释使用行首的 #


2. 设备

equip 语句声明工艺设备。目录遵循 ISO 10628 / ISA-5.1 惯例。

equip T-101 : tank_atm [tag: "Feed Tank"]
equip P-101 : pump_centrifugal
equip E-201 : hx_shell_tube [tag: "Overhead Cond"]
equip T-201 : column_tray [tag: "Stripper"]

2.1 设备目录

类型符号用途
tank_atm柱体 + 拱形顶常压储罐
tank_cone_roof柱体 + 锥形顶锥顶储罐
vessel_v竖向胶囊形立式压力容器
vessel_h横向胶囊形卧式压力容器
sphere实心圆液化石油气/氨球罐
column_tray高胶囊形 + 水平塔板线筛板蒸馏塔
column_packed高胶囊形 + 填料符号填料吸收塔
hx_shell_tube横向胶囊形 + 管束管壳式换热器
hx_air_cooled矩形 + 风扇圆圈空冷(翅片风扇)冷却器
reboiler胶囊形 + 平行管线釜式再沸器
condenser横向胶囊形 + 管束塔顶冷凝器
pump_centrifugal圆形 + 右侧三角形出口离心泵
pump_pd圆形 + 内部齿轮容积式泵
compressor梯形(右侧较窄)离心压缩机
blower圆形 + 三叶扇风机/鼓风机
reactor_cstr立式胶囊形 + 搅拌器搅拌槽反应器(CSTR)
reactor_pfr横向胶囊形 + 填充床点平推流/固定床反应器
filter矩形 + 对角线填充过滤器
cyclone柱体 + 锥形底旋风分离器
flare高烟囱 + 火焰火炬塔
cooling_tower沙漏形感应通风冷却塔

2.2 阀门目录

阀门是安装在管道上的设备,以蝶形结(bowtie)风格渲染,带有特定类型的执行机构装饰。

类型装饰用途
valve_gate普通蝶形结手动开关(全通径)
valve_ball蝶形结 + 实心中心圆手动开关(四分之一转)
valve_globe蝶形结 + 小顶圆手动流量控制
valve_butterfly蝶形结 + 中心竖线四分之一转节流
valve_check蝶形结 + 弧线单向止回阀
valve_control蝶形结 + 膜片执行机构气动控制阀(与 FIC 配对)
valve_psv蝶形结 + 45° 出口 + 弹簧堆压力安全泄放阀
equip V-101 : valve_control [tag: "V-101 (FC)"]
equip V-303 : valve_psv     [tag: "V-303 · 150 psig"]

3. 管道与信号线

line 语句连接两个锚点(设备端口或仪表标签)。

line L1 from T-101.bottom to P-101.in  [size: "4\"", service: "water", type: "process"]
line s1 from FT-101 to FIC-101         [type: "electric"]
line s2 from FIC-101 to V-101          [type: "pneumatic"]

3.1 锚点语法

线的每个端点是以下之一:

  • <设备-id>.<端口> — 来自第 2.2 节的端口名称(inouttopbottomfeedshell_intube_outreflux 等)
  • <设备-id> — 省略端口;默认为目标端的 in / 来源端的 out(按设备类别)
  • <仪表-标签> — 仪表气泡中心(信号线)

3.2 线类型(ISA-5.1 §5)

type:线型用途
process实线,粗主工艺管线(默认)
process_minor实线,细辅助/公用工程线
pneumatic实线 + 对角刻度气动执行机构信号
electric长虚线电气 / 4–20 mA 信号
hydraulic长虚线 + 停顿液压执行机构
capillary点线(圆帽)充液系统温度
software短虚线,浅色DCS / PLC 内部数据链路
mechanical混合虚线机械连杆

3.3 管线标签

标准 PIP PIC001 标签格式为 <尺寸>"-<介质>-<序号>-<规格>。通过 tag: 属性传入,渲染器在管线中点放置一个白色背景的标签矩形。

line L1 from T-101.bottom to P-101.in [size: "4\"", service: "PG", tag: "4\"-PG-101-A1B"]

4. 仪表(ISA-5.1 §4)

inst 语句声明一个仪表气泡。标签采用 ISA 字母代码惯例:第一个字母是被测变量,后续字母是修饰符功能

inst FT-101  : field_discrete         %% Flow Transmitter, loop 101
inst FIC-101 : cr_shared              %% Flow Indicating Controller (DCS)
inst PSHH-301: cr_plc                 %% Pressure Switch High-High (PLC)
inst LIC-201 : cr_shared
  measures D-201
  controls V-202

4.1 字母代码(首字母)

最常用:F 流量 · L 液位 · P 压力 · T 温度 · A 分析 · S 转速 · H 手动 · Y 事件/状态。完整列表见 ISA-5.1 表 1。

4.2 功能修饰符

I 指示 · R 记录 · C 控制 · T 变送 · E 检测元件 · V 阀门 · S 开关 · A 报警 · H/L 高/低。组合为多字母标签:FIC = 流量指示控制器;PSHH = 压力开关高高。

4.3 气泡类别

ISA-5.1 区分位置(仪表所在位置)和类型(模拟式、共享式、计算机式或 PLC 式)。Schematex 实现了四种最常见的组合:

类别气泡形状用途
field_discrete普通圆形现场安装模拟仪表(FT、PT)
cr_shared圆形 + 水平线 + 内刻六边形DCS 控制的 HMI 显示
cr_computer圆形 + 水平线 + 内刻菱形计算机功能(FY、计算)
cr_plc圆形 + 水平线 + 内刻方形PLC 驱动逻辑

field_* 变体省略水平中心线;local_* 变体使用虚线中心线;cr_* 变体使用实线中心线,表示"主控制盘——正面"。

4.4 measures / controls

缩进在 inst 声明下方:

子句效果
measures <设备-id>从设备到气泡自动路由虚电信号线
controls <设备-id>从气泡到设备自动路由气动信号线(通常为 valve_control
inst FT-101 : field_discrete
  measures P-101
inst FIC-101 : cr_shared
  controls V-101

这些自动信号独立于明确的 line 语句——它们根据关系类型以适当的信号线样式渲染。


5. 布局方向

默认方向为 LR(从左到右)——原料从左侧进入,产品从右侧出来。在头部覆盖:

pid "Distillation Tower" [direction: TB]

equip T-201 : column_tray

MVP 布局沿主方向按声明顺序排列设备,使用曼哈顿信号线路由。多行/并行流布局和三通接头是路线图项——见第 9 节。


6. 实例:蒸馏塔

一个带塔顶冷凝器、再沸器、回流罐和仪表的真实回路:

P&ID·§ ISA-5.1 / ISO 10628
↘ preview
100%
P&ID — Distillation T-201 ISA-5.1 / ISO 10628 P&ID rendered by Schematex Distillation T-201 T-201 Overhead Cond Reflux Drum Reflux Pump Reboiler PT 201 LIC 201 TIC 201
UTF-8 · LF · 20 lines · 815 chars✓ parsed·0.7 ms·8.0 KB SVG

7. 语法(EBNF)

document    = header statement*
header      = "pid" ( title )? ( "[" attrs "]" )? NEWLINE
attrs       = attr ("," attr)*
attr        = "direction:" ("LR" | "TB")
            | "units:" ("imperial" | "metric")

statement   = comment
            | equipment-decl
            | line-decl
            | instrument-decl

equipment-decl = "equip" ID ":" equip-type ( "[" attr-list "]" )? NEWLINE
equip-type     = "tank_atm" | "tank_cone_roof"
               | "vessel_v" | "vessel_h" | "sphere"
               | "column_tray" | "column_packed"
               | "hx_shell_tube" | "hx_air_cooled" | "reboiler" | "condenser"
               | "pump_centrifugal" | "pump_pd"
               | "compressor" | "blower"
               | "reactor_cstr" | "reactor_pfr"
               | "filter" | "cyclone" | "flare" | "cooling_tower"
               | "valve_gate" | "valve_ball" | "valve_globe" | "valve_butterfly"
               | "valve_check" | "valve_control" | "valve_psv"

line-decl   = "line" ID "from" anchor "to" anchor ( "[" attr-list "]" )? NEWLINE
anchor      = ID ( "." port )?
port        = "in" | "out" | "top" | "bottom" | "left" | "right"
            | "feed" | "reflux" | "shell_in" | "shell_out"
            | "tube_in" | "tube_out" | "vapor_out" | "liquid_out"
            | "bottom_return"

instrument-decl = "inst" tag ":" inst-category ( "[" attr-list "]" )? NEWLINE
                  ( indented "measures" anchor NEWLINE )*
                  ( indented "controls" ID NEWLINE )*
tag             = letter-code "-" loop-num     %% e.g., "FIC-101"
inst-category   = "field_discrete" | "field_shared" | "field_computer" | "field_plc"
                | "cr_discrete"    | "cr_shared"    | "cr_computer"    | "cr_plc"
                | "local_discrete" | "local_shared"

attr-list   = attr ("," attr)*
attr        = key ":" value
key         = "tag" | "size" | "service" | "type" | "set_pressure"
            | "actuator" | "fail" | "trays" | …
value       = quoted-string | bare-word

ID          = [A-Za-z] [A-Za-z0-9_-]*

权威来源:src/diagrams/pid/parser.ts。如果与解析器有出入,以解析器为准——请提交 issue。


8. 标准符合性

目前已实现(P0 MVP):

  • ✅ 22 种工艺设备符号(容器、塔、泵、换热器、反应器、分离器、火炬、冷却塔)
  • ✅ 7 种阀门符号(闸阀、球阀、截止阀、蝶阀、止回阀、带膜片执行机构的控制阀、带斜角出口+弹簧的安全阀)
  • ✅ 4 种仪表气泡类别 × 2 种位置类 = 8 种 ISA-5.1 气泡变体(现场/主控室 × 分立/共享/计算机/PLC)
  • ✅ ISA 字母代码标签解析(FT-101LIC-203PSHH-301
  • ✅ 8 种线型样式(process / process_minor / pneumatic / electric / hydraulic / capillary / software / mechanical)
  • ✅ 自动路由的 measurescontrols 信号线
  • ✅ 管线标签渲染为线中点的白色背景矩形
  • ✅ 曼哈顿路由,单行设备布局

尚未实现(见路线图):

  • ⏳ 多行/并行流布置(如两台泵汇入混合器)
  • ⏳ 三通接头和分支管道
  • ⏳ 交叉检测(管道交叉处的跨越弧)
  • ⏳ 功能块叠加(Σ 加法器、PID、选择器)
  • ⏳ 联锁菱形和允许圆(ISA-5.06)
  • ⏳ 热伴/夹套管线装饰
  • ⏳ 管道内联变径(同心/偏心)
  • ⏳ 容器上的管嘴注释

参考文献:

  • ANSI/ISA-5.1-2009 — Instrumentation Symbols and Identification(美国标准)
  • ISO 10628-1:2014 — Diagrams for the chemical and petrochemical industry(国际标准)
  • ISA-5.06.01-2007 — Functional Requirements Documentation for Control Software
  • PIP PIC001 — Piping & Instrumentation Diagram Documentation Criteria(行业补充)

9. 路线图

MVP P&ID 覆盖单一线性控制回路(储罐 → 泵 → 控制阀 → 仪表)。实际装置需要二维布置和三通接头。计划在 v0.4 实现:

  • DSL 扩展equip ... [row: 0, col: 2] 泳道/网格提示,用于多流布局
  • tee 原语tee T1 on L1,在工艺管线上表达三通分支
  • junction 原语:管道连接的 ISA 接点点
  • 交叉检测:两管交叉时,对下方管道渲染小弧形凸起
  • 功能块Σ 加法器、PID 控制器、LS/HS 低/高选择器
  • 联锁符号interlock I-301 菱形、permissive P-202 圆形
  • 管道内联变径:同心/偏心变径作为管线装饰
  • 管嘴列表:容器符号上的侧端口注释(N1N2……)

目前单回路控制方案可开箱即用;复杂多股流 P&ID 需要手动位置提示(已推迟)。


相关示例

来自示例库的即用场景:

pid·§ ANSI/ISA-5.1-2009 + ISO 10628-1:2014
P&ID — Water Pump Flow Control ISA-5.1 / ISO 10628 P&ID rendered by Schematex Water Pump Flow Control Feed Tank Feed Pump V-101 Isolation FT 101 FIC 101
Pump with flow control loop (P&ID)
Classic centrifugal pump pulling from an atmospheric tank, with a flow transmitter (FT-101), flow indicating controller (FIC-101), and a fail-closed pneumatic control valve — the minimum viable P&ID that every process engineer recognises at a glance.
water-treatment
pid·§ ANSI/ISA-5.1-2009 + ISO 10628-1:2014
P&ID — High-Pressure Reactor Feed ISA-5.1 / ISO 10628 P&ID rendered by Schematex High-Pressure Reactor Feed Raw Material Tank Feed Pump P-201A/B Feed Pre-heater Reactor R-201 V-201 V-202 V-203 FT 201 FIC 201 TT 201 TIC 201 PT 201 PSHH 201
Reactor feed with multi-loop control and pressure safety (P&ID)
CSTR reactor system with centrifugal pump, shell-and-tube pre-heater, flow control on the feed line, temperature control on the product outlet, and a PSHH pressure switch interlock — four instrument loops in one diagram, covering the core vocabulary of ISA-5.1 P&ID engineering.
chemical-processing

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.