P&ID (Diagrama de Tubulação e Instrumentação)

Sobre P&IDs

Um diagrama de tubulação e instrumentação (P&ID) é o "diagrama de fiação" de engenharia de uma planta de processo — cada vaso, bomba, trocador de calor, válvula e malha de instrumentação, desenhados com símbolos padronizados e conectados por linhas de tubulação e sinal. Engenheiros de processo, engenheiros de controle e auditores de HSE leem o mesmo P&ID para especificar a planta, comissioná-la, conduzir revisões de perigo (HAZOP) e operá-la em produção. São o entregável de engenharia legalmente exigido para projetos químicos, petroquímicos, farmacêuticos, de tratamento de água e de geração de energia segundo o OSHA PSM e o EPA RMP.

O Schematex implementa o catálogo de símbolos ANSI/ISA-5.1-2009 (bolhas de instrumento, códigos de letras de tag, tipos de linha de sinal) mais símbolos de equipamentos da ISO 10628-1:2014 (vasos, colunas, bombas, trocadores de calor). O DSL é intencionalmente compacto para que um LLM possa gerar um P&ID de malha de controle a partir de uma descrição de processo em uma única instrução.

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·1.2 ms·6.0 KB SVG

1. Seu primeiro P&ID

Um P&ID mínimo tem pelo menos um equipamento e uma linha de processo.

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

Três regras cobrem 80% dos casos de uso:

  1. Inicie o documento com pid (título opcional e atributos [direction: LR]).
  2. Declare cada equipamento: equip <ID> : <type> [tag: "label"].
  3. Conecte-os com line <ID> from <equip>.<port> to <equip>.<port> [type: "process", size: "4\""].

A instrumentação é adicionada separadamente com inst <TAG> : <category> seguido de cláusulas measures / controls indentadas.

Comentários usam # no início de uma linha.


2. Equipamentos

A instrução equip declara um equipamento de processo. O catálogo segue as convenções 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 Catálogo de equipamentos

TipoSímboloFinalidade
tank_atmCilindro + topo em cúpulaTanque de armazenamento atmosférico
tank_cone_roofCilindro + teto cônicoTanque de armazenamento com teto cônico
vessel_vCápsula verticalVaso de pressão vertical
vessel_hCápsula horizontalVaso de pressão horizontal
sphereCírculo preenchidoEsfera para GLP / amônia
column_trayCápsula alta + linhas horizontais de bandejasColuna de destilação com bandejas
column_packedCápsula alta + hachura cruzadaColuna de absorção com recheio
hx_shell_tubeCápsula horizontal + feixe de tubosTrocador de calor casco-e-tubo
hx_air_cooledRetângulo + círculo de ventiladorResfriador a ar (fin-fan)
reboilerCápsula + linhas paralelas de tubosRefervedor tipo caldeira
condenserCápsula horizontal + tubosCondensador de topo
pump_centrifugalCírculo + triângulo de saída à direitaBomba centrífuga
pump_pdCírculo + engrenagens internasBomba de deslocamento positivo
compressorTrapézio (estreito à direita)Compressor centrífugo
blowerCírculo + ventilador de 3 pásSoprador / ventilador
reactor_cstrCápsula vertical + agitadorReator de tanque agitado (CSTR)
reactor_pfrCápsula horizontal + pontos de leito fixoReator de fluxo pistão / leito fixo
filterRetângulo + hachura diagonalFiltro
cycloneCilindro + cone inferiorSeparador ciclônico
flareChaminé alta + chamaTocha de queima
cooling_towerAmpulhetaTorre de resfriamento de tiragem induzida

2.2 Catálogo de válvulas

Válvulas são equipamentos posicionados na linha de tubulação. Renderizadas no estilo bowtie com decoração de atuador específica por tipo.

TipoDecoraçãoFinalidade
valve_gateGravata simplesBloqueio manual liga/desliga (passagem total)
valve_ballGravata + círculo central preenchidoBloqueio manual liga/desliga (giro de 1/4)
valve_globeGravata + pequeno círculo no topoControle de vazão manual
valve_butterflyGravata + linha vertical centralEstrangulamento de giro de 1/4
valve_checkGravata + arcoVálvula de retenção (anti-retorno)
valve_controlGravata + atuador diafragmaVálvula de controle pneumática (pareada com FIC)
valve_psvGravata + saída a 45° + molaVálvula de segurança e alívio de pressão
equip V-101 : valve_control [tag: "V-101 (FC)"]
equip V-303 : valve_psv     [tag: "V-303 · 150 psig"]

3. Linhas de tubulação e sinal

A instrução line conecta dois pontos de ancoragem (portas de equipamento ou tags de instrumento).

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 Sintaxe de ancoragem

Cada extremidade de uma linha é:

  • <equip-id>.<port> — nome da porta de §2.2 (in, out, top, bottom, feed, shell_in, tube_out, reflux, etc.)
  • <equip-id> — porta omitida; padrão para in (destino) / out (origem) por família de equipamento
  • <inst-tag> — centro da bolha de instrumento (linhas de sinal)

3.2 Tipos de linha (ISA-5.1 §5)

type:TraçoUso
processSólido, espessoLinha de processo principal (padrão)
process_minorSólido, finoAuxiliar / utilitário
pneumaticSólido + marcas diagonaisSinal de atuador a ar
electricTraço longoSinal elétrico / 4–20 mA
hydraulicTraço longo + pausaAtuador hidráulico
capillaryPontilhado (extremidades arredondadas)Temperatura de sistema preenchido
softwareTraço curto, leveLink de dados interno do DCS / CLP
mechanicalTraço mistoAcoplamento mecânico

3.3 Tags de linha

O formato de tag padrão PIP PIC001 é <tamanho>"-<serviço>-<sequência>-<spec>. Passe-o via atributo tag: e o renderizador coloca um pequeno retângulo de tag branco no ponto médio da linha.

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

4. Instrumentação (ISA-5.1 §4)

A instrução inst declara uma bolha de instrumento. O tag usa a convenção de código de letras ISA: a primeira letra é a variável medida, as letras seguintes são modificadores e função.

inst FT-101  : field_discrete         %% Transmissor de Vazão, malha 101
inst FIC-101 : cr_shared              %% Controlador Indicador de Vazão (DCS)
inst PSHH-301: cr_plc                 %% Pressostato Alto-Alto (CLP)
inst LIC-201 : cr_shared
  measures D-201
  controls V-202

4.1 Códigos de letras (primeira letra)

Mais usados: F vazão · L nível · P pressão · T temperatura · A análise · S velocidade · H manual · Y evento/estado. Lista completa na Tabela 1 da ISA-5.1.

4.2 Modificadores de função

I indicador · R registrador · C controlador · T transmissor · E elemento · V válvula · S chave · A alarme · H/L alto/baixo. Combine no tag de múltiplas letras: FIC = Controlador Indicador de Vazão; PSHH = Pressostato Alto-Alto.

4.3 Categorias de bolha

A ISA-5.1 distingue localização (onde o instrumento fica) e tipo (analógico vs. compartilhado vs. computador vs. CLP). O Schematex implementa as quatro combinações mais comuns:

CategoriaFormato da bolhaUso
field_discreteCírculo simplesInstrumento analógico montado em campo (FT, PT)
cr_sharedCírculo + linha horizontal + hexágono inscritoDisplay de HMI controlado por DCS
cr_computerCírculo + linha horizontal + losango inscritoFunção de computador (FY, cálculo)
cr_plcCírculo + linha horizontal + quadrado inscritoLógica acionada por CLP

Variantes field_* omitem a linha central horizontal; variantes local_* usam linha central tracejada; variantes cr_* usam linha central sólida indicando "painel de controle principal — frente".

4.4 measures / controls

Indentados sob uma declaração inst:

CláusulaEfeito
measures <equip-id>Linha de sinal elétrico tracejado roteada automaticamente do equipamento para a bolha
controls <equip-id>Linha de sinal pneumático roteada automaticamente da bolha para o equipamento (tipicamente um valve_control)
inst FT-101 : field_discrete
  measures P-101
inst FIC-101 : cr_shared
  controls V-101

Esses sinais automáticos são independentes das instruções line explícitas — são renderizados com o estilo de linha de sinal apropriado com base no tipo de relação.


5. Direção do layout

A direção padrão é LR (da esquerda para a direita) — a alimentação do processo entra pela esquerda, o produto sai pela direita. Substitua no cabeçalho:

pid "Distillation Tower" [direction: TB]

equip T-201 : column_tray

O layout MVP posiciona os equipamentos na ordem de declaração ao longo da direção principal com roteamento Manhattan de linhas de sinal. Layouts multi-linha / fluxo paralelo e junções em T são itens do roadmap — veja §9.


6. Exemplo prático: Coluna de destilação

Uma malha real de condensador de topo com refervedor, tambor de refluxo e instrumentação:

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·10.9 ms·8.0 KB SVG

7. Gramática (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     %% ex.: "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_-]*

Fonte autoritativa: src/diagrams/pid/parser.ts. Se isso divergir do parser, o parser prevalece — abra uma issue.


8. Conformidade com padrões

O que está implementado hoje (MVP P0):

  • ✅ 22 símbolos de equipamentos de processo (vasos, colunas, bombas, trocadores, reatores, separadores, tocha, torre de resfriamento)
  • ✅ 7 símbolos de válvulas (gaveta, esfera, globo, borboleta, retenção, controle com atuador diafragma, PSV com saída diagonal + mola)
  • ✅ 4 categorias de bolha de instrumento × 2 classes de localização = 8 variantes de bolha ISA-5.1 (campo/CR × discreto/compartilhado/computador/CLP)
  • ✅ Interpretação de tag com código de letras ISA (FT-101, LIC-203, PSHH-301)
  • ✅ 8 estilos de tipo de linha (process / process_minor / pneumatic / electric / hydraulic / capillary / software / mechanical)
  • ✅ Linhas de sinal measures e controls roteadas automaticamente
  • ✅ Tags de linha renderizados como retângulos de fundo branco no ponto médio da linha
  • ✅ Roteamento Manhattan, layout de equipamentos em fileira única

Ainda não implementado (veja roadmap):

  • ⏳ Posicionamento multi-linha / fluxo paralelo (ex.: duas bombas convergindo para um misturador)
  • ⏳ Junções em T e tubulação ramificada
  • ⏳ Detecção de cruzamento (saltos em cruzamentos de tubos)
  • ⏳ Sobreposições de bloco de função (Σ somador, PID, seletores)
  • ⏳ Losango de intertravamento e círculo de permissivo (ISA-5.06)
  • ⏳ Decoração de linha rastreada termicamente / com camisa
  • ⏳ Redutor (concêntrico / excêntrico) em linha
  • ⏳ Anotações de bocais em vasos

Referências:

  • ANSI/ISA-5.1-2009 — Instrumentation Symbols and Identification (padrão americano)
  • ISO 10628-1:2014 — Diagrams for the chemical and petrochemical industry (internacional)
  • ISA-5.06.01-2007 — Functional Requirements Documentation for Control Software
  • PIP PIC001 — Piping & Instrumentation Diagram Documentation Criteria (suplemento da indústria)

9. Roadmap

O MVP do P&ID cobre uma única malha de controle linear (tanque → bomba → válvula de controle → instrumentação). Plantas reais precisam de posicionamento 2D e junções em T. Planejado para v0.4:

  • Extensão do DSL: equip ... [row: 0, col: 2] dicas de faixa / grade para layouts de fluxo múltiplo
  • Primitiva tee: tee T1 on L1 para expressar uma ramificação em 3 vias em uma linha de processo
  • Primitiva junction: ponto de junção ISA para conexão de tubulação
  • Detecção de cruzamento: quando dois tubos se cruzam, renderizar o inferior com um pequeno arco
  • Blocos de função: somador Σ, controlador PID, seletor LS/HS baixo/alto
  • Símbolos de intertravamento: losango interlock I-301, círculo permissive P-202
  • Redutor em linha: redutores concêntricos / excêntricos como decorações de linha
  • Lista de bocais: anotações de porta lateral nos símbolos de vasos (N1, N2, …)

Por enquanto, esquemas de controle de malha única são renderizados corretamente de forma nativa; P&IDs complexos de múltiplos fluxos precisam de dicas de posicionamento manual (adiado).


Exemplos relacionados

Cenários prontos para uso da galeria de exemplos:

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.