Schematex

Single-line diagram (SLD)

Power system one-line diagrams following IEEE 315. Substation and distribution layouts with transformers, breakers, disconnects, buses, and protective relays. For electrical engineering, utilities, and power distribution.

SLD·§ IEEE 315-1975
↘ preview
100%
Cannot parse line: utility [label: "Grid 138 kV"]
UTF-8 · LF · 9 lines · 283 chars✗ parse error

IEEE Std 315 (ANSI Y32.2) electrical graphic symbol standard + IEC 60617 international standard + power distribution system graphic conventions.

Primary References:

  • IEEE Std 315-1975 / ANSI Y32.2-1975: Graphic Symbols for Electrical and Electronics Diagrams (de facto SLD standard)
  • IEC 60617:2025 (BS 3939): International graphical symbols for diagrams
  • ANSI Device Numbering (ANSI/IEEE C37.2): Protection device numbering (e.g., Device 52 = AC circuit breaker)
  • NFPA 70 (NEC): National Electrical Code — service entrance conventions
  • IEEE Std 1584: Arc flash labeling conventions (informational)

Note: A Single-Line Diagram simplifies the three conductors of a three-phase AC system into a single line, reducing visual complexity. All equipment ratings and protection settings are presented as text annotations.


1. Symbol Set

1.1 Power Sources

Utility / Grid Connection

<!-- Arrow pointing down (utility power flowing into system) -->
<polygon points="0,-20 -10,-5 10,-5" fill="white" stroke="#333" stroke-width="2"/>
<text x="0" y="10" font-size="10" text-anchor="middle" font-style="italic">Utility</text>
<line x1="0" y1="-5" x2="0" y2="20" stroke="#333" stroke-width="3"/>

Generator

<!-- Circle Ø32px with "G" label and AC wave symbol -->
<circle cx="16" cy="16" r="16" fill="white" stroke="#333" stroke-width="2"/>
<text x="16" y="13" font-size="13" font-weight="bold" text-anchor="middle">G</text>
<!-- Small sine wave symbol inside circle (bottom half) -->
<path d="M 8,20 Q 11,14 14,20 Q 17,26 20,20" fill="none" stroke="#333" stroke-width="1.2"/>
<!-- Lead wire (top and bottom) -->
<line x1="16" y1="0" x2="16" y2="-10" stroke="#333" stroke-width="2.5"/>
<line x1="16" y1="32" x2="16" y2="42" stroke="#333" stroke-width="2.5"/>

Transformer (Two-Winding)

<!-- Primary coil: series of arcs (3 humps), left/top -->
<path d="M 0,0 A 6,6 0 0 1 12,0 A 6,6 0 0 1 24,0 A 6,6 0 0 1 36,0"
      fill="none" stroke="#333" stroke-width="2"/>
<!-- Gap (core gap) -->
<line x1="0" y1="6" x2="36" y2="6" stroke="#333" stroke-width="0.8"/>
<line x1="0" y1="10" x2="36" y2="10" stroke="#333" stroke-width="0.8"/>
<!-- Secondary coil: series of arcs (3 humps), below gap -->
<path d="M 0,16 A 6,6 0 0 0 12,16 A 6,6 0 0 0 24,16 A 6,6 0 0 0 36,16"
      fill="none" stroke="#333" stroke-width="2"/>
<!-- Polarity dots (standard: upper primary = upper secondary same polarity) -->
<circle cx="2" cy="-4" r="2.5" fill="#333"/>  <!-- primary dot -->
<circle cx="2" cy="20" r="2.5" fill="#333"/>  <!-- secondary dot -->
<!-- Lead wires -->
<line x1="18" y1="-10" x2="18" y2="0" stroke="#333" stroke-width="2.5"/>
<line x1="18" y1="16" x2="18" y2="26" stroke="#333" stroke-width="2.5"/>

Dimensions: 36px wide × 26px tall (excluding lead wires)

Transformer annotation convention:

  • Rating: {kVA} kVA, {V_pri}/{V_sec} V, {%Z}% Z
  • Example: 500 kVA, 13.8kV/480V, 5.75% Z

Battery Bank

  • Multiple groups of long and short parallel lines (long = positive, short = negative)
  • 3 groups is the standard representation for a storage battery bank

1.2 Switching & Protection Devices

Circuit Breaker (Device 52)

  • Distinction from disconnect switch: arc-interrupting capability, shown as diagonal line + arc
  • Symbol: diagonal line (lower-left → upper-right) + small arc at the top
<!-- Body: diagonal line -->
<line x1="5" y1="30" x2="25" y2="5" stroke="#333" stroke-width="2.5"/>
<!-- Arc indicator (distinguishes breaker from switch) -->
<path d="M 25,5 Q 30,0 28,-5" fill="none" stroke="#333" stroke-width="2"/>
<!-- Lead wires (top and bottom) -->
<line x1="15" y1="0" x2="15" y2="-10" stroke="#333" stroke-width="2.5"/>
<line x1="15" y1="38" x2="15" y2="48" stroke="#333" stroke-width="2.5"/>

Width×Height: 30px × 38px (excluding lead wires)

Annotation convention:

  • {kA} kA sym (short-circuit interrupting rating)
  • {A}A trip (trip setting)
  • Device number: 52 (optional)

Disconnect Switch / Isolator (Device 89)

  • Same shape as breaker, but without the arc (isolation only, cannot interrupt arc)
<line x1="5" y1="30" x2="25" y2="5" stroke="#333" stroke-width="2.5"/>
<!-- No arc → just a simple diagonal line -->

Fused Disconnect

  • Combination of disconnect switch + fuse symbol
  • Fuse: 10×5px rectangle (IEC) or small square (ANSI)

Fuse

<!-- IEC fuse: thin rectangle with wires -->
<rect x="-5" y="-4" width="10" height="28" fill="white" stroke="#333" stroke-width="1.5"/>
<line x1="0" y1="-12" x2="0" y2="-4" stroke="#333" stroke-width="2"/>
<line x1="0" y1="24" x2="0" y2="32" stroke="#333" stroke-width="2"/>

Motor Starter (Contactor with Overload)

  • Rectangle box 20×30px, labeled M or MS

Ground Switch

  • Small downward-pointing triangle (ground symbol) + switch line
  • Represents a grounding switch

1.3 Measurement & Protection

Current Transformer (CT)

<!-- Circle Ø14px -->
<circle cx="7" cy="7" r="7" fill="white" stroke="#333" stroke-width="1.5"/>
<!-- "CT" label inside -->
<text x="7" y="10" font-size="7" font-weight="bold" text-anchor="middle">CT</text>
<!-- Primary line passes through center (the single line) -->
<line x1="0" y1="7" x2="14" y2="7" stroke="#333" stroke-width="2"/>

Potential/Voltage Transformer (PT/VT)

  • Same symbol as CT, labeled PT inside, but connected differently to the main line (in parallel, not in series)

Relay (various protective relays)

<!-- Small circle with relay function code -->
<circle cx="10" cy="10" r="10" fill="white" stroke="#333" stroke-width="1.5"/>
<text x="10" y="14" font-size="8" text-anchor="middle">51</text>

Common ANSI relay device numbers:

CodeProtection Type
27Under Voltage
51Overcurrent
67Directional Overcurrent
87Differential
79Auto Recloser
81Frequency Relay

1.4 Load Devices

Motor

<!-- Circle Ø28px with "M" -->
<circle cx="14" cy="14" r="14" fill="white" stroke="#333" stroke-width="2"/>
<text x="14" y="19" font-size="14" font-weight="bold" text-anchor="middle">M</text>
<!-- Three phase connection points (120° apart, on circle perimeter) -->
<!-- For 3-phase: three small dots at 12, 4, 8 o'clock positions -->
<circle cx="14" cy="0" r="2" fill="#333"/>   <!-- top, phase A -->
<circle cx="26" cy="21" r="2" fill="#333"/>  <!-- lower-right, phase B -->
<circle cx="2" cy="21" r="2" fill="#333"/>   <!-- lower-left, phase C -->

Panel / Load Box (Generic)

<rect x="0" y="0" width="40" height="30" fill="white" stroke="#333" stroke-width="2"/>
<text x="20" y="19" font-size="10" text-anchor="middle">LP-1</text>

Lighting Panel (LP)

  • Rectangle + LP label + panel number

Motor Control Center (MCC)

  • Larger rectangle 60×40px + MCC label

1.5 Bus Bars

A bus bar is the voltage collection point in an SLD, represented by a thick horizontal line:

<!-- Bus bar (three-phase, single-line representation) -->
<!-- Thick horizontal line -->
<line x1="0" y1="y_bus" x2="{bus_width}" y2="y_bus"
      stroke="#333" stroke-width="6"
      class="lt-bus-bar" data-voltage="480V"/>
<!-- Bus voltage label (above bus) -->
<text x="{bus_width/2}" y="y_bus-10" font-size="11" font-weight="bold"
      text-anchor="middle" class="lt-bus-label">480V Bus</text>

Vertical connections (devices connected to bus):

  • Devices connect to the bus bar via vertical lines going down (or up)
  • Connection line width = standard stroke width (2px), thinner than the bus bar

1.6 Metering & Instrumentation

ElementSymbolSVG
AmmeterCircle + A<circle r="8"><text>A</text>
VoltmeterCircle + V<circle r="8"><text>V</text>
Power MeterCircle + W<circle r="8"><text>W</text>
Energy MeterCircle + Wh<circle r="8"><text>Wh</text>
Power Factor MeterCircle + PF<circle r="8"><text>PF</text>
Frequency MeterCircle + Hz<circle r="8"><text>Hz</text>

2. Layout Conventions

2.1 Vertical Hierarchy (Power Flow Direction)

The core SLD layout principle: source at top, loads at bottom.

┌─────────────────────────────────────────────────┐
│     Utility Source / Generator (top)            │
├─────────────────────────────────────────────────┤
│  ══════ High Voltage Bus (transmission level) ══ │
│         ↓              ↓                        │
│      [TX1]          [TX2]      (transformers)   │
│         ↓              ↓                        │
│  ══════ Medium Voltage Bus ══════════════════════ │
│         ↓              ↓         ↓              │
│      [CB1]          [CB2]     [CB3]  (breakers) │
│         ↓              ↓         ↓              │
│  ══════ Low Voltage Bus (480V/208V) ═════════════ │
│    ↓    ↓    ↓    ↓    ↓    ↓    ↓    ↓         │
│  [M1] [LP1] [MCC] [ATS] ... (loads, bottom)    │
└─────────────────────────────────────────────────┘

2.2 Voltage Level Bands

Each voltage level forms a horizontal band:

Voltage RangeLevelTypical Band Height
> 115 kVTransmission120px
1 kV – 115 kVDistribution (MV)100px
< 1 kV (600V)Utilization (LV)80px
< 120VControl/Signal60px

The bus bar is drawn horizontally at the top of each band.

2.3 Multiple Feeders

Multiple feeders on the same bus:

  • Extend downward from the bus bar at equal intervals
  • Spacing: feeder_spacing = 80px (default)
  • Symmetrically arranged (even count centered, odd count offset)

2.4 Component Sizing Consistency

Element TypeStandard HeightStandard Width
Circuit Breaker40px30px
Disconnect Switch35px30px
Transformer30px40px
Motor30px30px
CT / PT16px16px
Relay22px22px
Bus Bar6px thick100%+ bus width

2.5 Annotation Placement

         [Rating / Equipment ID]
                ↑ annotation above device
    ←── Bus ───[CB]─── Feeder →
                ↓ rating below device
         [kA rating / trip setting]
  • Equipment ID: above the device, 11px bold
  • Rating / kA: below the device, 10px, {A}A / {kA}kA
  • Voltage label: to the left of or above the bus bar, 12px bold
  • Cable annotation: beside the vertical connection line, 9px

3. Annotation System

3.1 Equipment Labels

<!-- Equipment ID (e.g., "CB-101") -->
<text x="x_center" y="y_top - 8" font-size="11" font-weight="bold"
      text-anchor="middle" class="lt-equip-id">CB-101</text>

<!-- Rating (e.g., "800A / 65kA sym") -->
<text x="x_center" y="y_bottom + 14" font-size="9"
      text-anchor="middle" class="lt-equip-rating">800A / 65kA sym</text>

3.2 Transformer Nameplate

Nameplate data is annotated beside the transformer:

<text x="x_right + 5" y="y_top" font-size="9" class="lt-nameplate">500 kVA</text>
<text x="x_right + 5" y="y_top + 12" font-size="9" class="lt-nameplate">13.8kV/480V</text>
<text x="x_right + 5" y="y_top + 24" font-size="9" class="lt-nameplate">5.75% Z</text>

3.3 Cable / Conductor Annotation

<!-- Cable annotation alongside feeder line -->
<text x="x_line + 5" y="y_mid" font-size="9"
      text-anchor="start" class="lt-cable-label"
      transform="rotate(-90, x_line+5, y_mid)">
  3#3/0 AWG, 200A
</text>

4. DSL Grammar (Single-Line Diagram)

document      = header statement*
header        = "sld" quoted_string? NEWLINE

statement     = comment | source_def | bus_def | device_def | load_def
              | connect_def | feeder_def | boundary_def

comment       = "#" [^\n]* NEWLINE

source_def    = IDENTIFIER "=" source_type attrs NEWLINE
source_type   = "utility" | "generator" | "battery"
attrs         = "[" attr ("," attr)* "]"
attr          = "voltage:" voltage_spec
              | "rating:" quoted_string
              | "label:" quoted_string
              | "id:" quoted_string
voltage_spec  = FLOAT "V" | FLOAT "kV"

bus_def       = IDENTIFIER "=" "bus" attrs NEWLINE

device_def    = IDENTIFIER "=" device_type attrs NEWLINE
device_type   = "breaker" | "switch" | "fuse" | "fused-switch"
              | "transformer" | "ct" | "pt" | "relay"
              | "starter" | "contactor" | "mcc"
              | "ammeter" | "voltmeter" | "power-meter"

load_def      = IDENTIFIER "=" load_type attrs NEWLINE
load_type     = "motor" | "panel" | "lighting-panel" | "ats" | "ups" | "load"

connect_def   = IDENTIFIER "->" IDENTIFIER cable_clause? NEWLINE
              | IDENTIFIER "--" IDENTIFIER             # bidirectional (bus tie)
cable_clause  = "[" "cable:" quoted_string "]"

feeder_def    = "feeder" IDENTIFIER "from:" bus_id "to:" load_id
              INDENT device_def+ DEDENT

boundary_def  = "boundary" quoted_string ":" NEWLINE
              INDENT statement+ DEDENT

IDENTIFIER    = /[a-zA-Z][a-zA-Z0-9_-]*/
FLOAT         = /[0-9]+(\.[0-9]+)?/
quoted_string = '"' /[^"]*/ '"'
INDENT        = increase in whitespace
DEDENT        = decrease in whitespace
NEWLINE       = /\n/

DSL Example: Simple Industrial Power Distribution SLD

sld "Industrial Facility Power Distribution"

# Sources
util = utility [voltage: "13.8kV", rating: "500MVA", label: "13.8kV Utility"]

# Main transformer
TX1 = transformer [rating: "1000 kVA, 13.8kV/480V, 5.75%Z", id: "TX-1"]

# Main breaker
CB-MAIN = breaker [rating: "2000A / 85kA sym", id: "CB-MAIN", voltage: "480V"]

# 480V Bus
BUS-480 = bus [voltage: "480V", label: "480V Main Bus"]

# Distribution breakers
CB1 = breaker [rating: "400A / 65kA", id: "CB-1"]
CB2 = breaker [rating: "400A / 65kA", id: "CB-2"]
CB3 = breaker [rating: "200A / 65kA", id: "CB-3"]

# Loads
M1 = motor [rating: "150HP, 480V, 3ph", label: "Pump Motor M-1"]
LP1 = lighting-panel [rating: "100A, 208/120V", label: "LP-1"]
MCC1 = mcc [rating: "800A", label: "MCC-1"]

# Connections (top-to-bottom power flow)
util -> TX1
TX1 -> CB-MAIN
CB-MAIN -> BUS-480
BUS-480 -> CB1 -> M1 [cable: "3#2/0 AWG, 200ft"]
BUS-480 -> CB2 -> LP1 [cable: "3#4 AWG, 75ft"]
BUS-480 -> CB3 -> MCC1 [cable: "3#2/0 AWG, 150ft"]

DSL Example: Residential Service Entrance

sld "Residential 200A Service"

util = utility [voltage: "240V", label: "Utility 240V/120V Split-Phase"]
meter = ammeter [id: "M-1"]
main-cb = breaker [rating: "200A / 10kA AIC", id: "MAIN"]
panel = panel [rating: "200A, 120/240V, 24-space", label: "Main Panel"]

util -> meter -> main-cb -> panel

5. SVG Structure

<svg class="lt-sld" data-diagram-type="sld">
  <defs>
    <style>
      .lt-sld-source    { stroke: #333; stroke-width: 2; fill: white; }
      .lt-sld-bus       { stroke: #333; stroke-width: 6; }
      .lt-sld-breaker   { stroke: #333; stroke-width: 2.5; fill: none; }
      .lt-sld-tx        { stroke: #333; stroke-width: 2; fill: none; }
      .lt-sld-motor     { stroke: #333; stroke-width: 2; fill: white; }
      .lt-sld-wire      { stroke: #333; stroke-width: 2.5; fill: none; }
      .lt-sld-relay     { stroke: #333; stroke-width: 1.5; fill: white; }
      .lt-equip-id      { font: bold 11px sans-serif; fill: #333; }
      .lt-equip-rating  { font: 9px sans-serif; fill: #555; }
      .lt-bus-label     { font: bold 12px sans-serif; fill: #333; }
      .lt-cable-label   { font: 9px monospace; fill: #666; }
      .lt-nameplate     { font: 9px sans-serif; fill: #444; }
      .lt-voltage-band  { fill: #F5F5F5; stroke: none; }
    </style>
  </defs>
  <title>Single-Line Diagram — [name]</title>
  <desc>[description]</desc>

  <!-- Voltage level bands (optional shading) -->
  <g id="lt-voltage-bands">
    <rect class="lt-voltage-band" x="0" y="0" width="{w}" height="120"/>
    <!-- ... -->
  </g>

  <!-- Bus bars -->
  <g id="lt-buses">
    <g id="BUS-480" data-voltage="480V" transform="translate(0, y_bus)">
      <line class="lt-sld-bus" x1="20" y1="0" x2="{bus_end}" y2="0"/>
      <text class="lt-bus-label" x="25" y="-10">480V Main Bus</text>
    </g>
  </g>

  <!-- Power flow wires (vertical feeders) -->
  <g id="lt-wires">
    <line class="lt-sld-wire" x1="x" y1="y1" x2="x" y2="y2"/>
  </g>

  <!-- Devices (breakers, switches, transformers) -->
  <g id="lt-devices">
    <g id="CB-MAIN" data-type="breaker" transform="translate(x, y)">
      <!-- breaker SVG -->
      <text class="lt-equip-id" ...>CB-MAIN</text>
      <text class="lt-equip-rating" ...>2000A / 85kA</text>
    </g>
    <g id="TX1" data-type="transformer" transform="translate(x, y)">
      <!-- transformer SVG -->
    </g>
  </g>

  <!-- Loads -->
  <g id="lt-loads">
    <g id="M1" data-type="motor" transform="translate(x, y)">
      <!-- motor circle SVG -->
      <text class="lt-equip-id" ...>M-1</text>
      <text class="lt-equip-rating" ...>150HP 480V</text>
    </g>
  </g>

  <!-- Metering & protection devices (overlaid on wires) -->
  <g id="lt-metering">
    <g id="CT1" data-type="ct" transform="translate(x, y)">
      <!-- CT circle SVG -->
    </g>
  </g>
</svg>

6. Test Cases

Case 1: Simple Transformer Feeder

sld "Transformer Test"
src = utility [voltage: "13.8kV"]
tx = transformer [rating: "500 kVA, 13.8kV/480V"]
bus = bus [voltage: "480V"]
src -> tx -> bus

Verify: utility arrow at top, transformer in the middle, 480V bus bar at the bottom, vertical connections correct.

Case 2: Circuit Breaker

sld
bus1 = bus [voltage: "480V"]
cb = breaker [rating: "800A", id: "CB-1"]
motor = motor [rating: "50HP"]
bus1 -> cb -> motor

Verify: breaker symbol (diagonal line + arc) is between the bus and motor, rating annotation correct.

Case 3: Multiple Feeders

sld "Multi-Feeder"
src = utility [voltage: "480V"]
bus = bus [voltage: "480V"]
cb1 = breaker [rating: "200A", id: "CB-1"]
cb2 = breaker [rating: "200A", id: "CB-2"]
cb3 = breaker [rating: "100A", id: "CB-3"]
m1 = motor [rating: "30HP", label: "Pump 1"]
m2 = motor [rating: "30HP", label: "Pump 2"]
lp1 = panel [rating: "100A", label: "LP-1"]
src -> bus
bus -> cb1 -> m1
bus -> cb2 -> m2
bus -> cb3 -> lp1

Verify: 3 feeders extend downward from the bus at equal intervals, each breaker + load correctly aligned.

Case 4: Full System with Transformer + Protection

(See Section 4 DSL Example: Industrial Power Distribution SLD)
Verify: 4 levels (utility → TX → bus → loads), all equipment annotations present, cable annotations alongside.

Case 5: Residential Service

(See Section 4 DSL Example: Residential Service Entrance)
Verify: simplified 3-element layout, meter → main breaker → panel, single-phase configuration.


7. Implementation Priority

PriorityFeatureComplexityUser Value
P0 (MVP)Bus bar + vertical wire + utility sourceLowCore — SLD skeleton
P0Circuit Breaker symbolMediumCore — required in every SLD
P0Transformer symbol (two coils)MediumCore
P0Motor symbol (circle + M)LowCore
P0Vertical hierarchy layout (top-to-bottom)MediumCore
P1Disconnect SwitchLowHigh
P1Equipment labels + ratings annotationsLowHigh
P1Bus voltage labelsLowHigh
P1Multiple feeders from same busMediumHigh
P1Fuse symbolLowMedium
P2CT / PT symbols (inline on wire)MediumMedium
P2Relay circle with device numberLowMedium
P2Lighting panel / MCC boxLowMedium
P2Voltage level band shadingLowMedium
P2Cable/conductor annotationsMediumMedium
P3Generator symbolMediumLow
P3ATS (Auto Transfer Switch)MediumLow
P3Metering instruments (A, V, W)LowLow

6. Expanded Symbol Library (v2): Winding Configurations & Protection Equipment

v1 only had a generic transformer and basic switching equipment. In real engineering SLDs, transformer winding configurations (Δ-Yg, Y-Δ, etc.) are critical information, and protection devices (surge arresters, reclosers) must also be rendered professionally.


6.1 Transformer Winding Configuration Symbols

The transformer symbol consists of two winding symbols, each drawn with standard connection notation.

Winding Symbol Primitives

Winding TypeSymbolSVG Description
Delta (Δ)Equilateral triangle, 20px side length, opening facing down or up
Wye grounded (Yg)Y groundedY-shape + ground line at bottom (three horizontal bars)
Wye ungrounded (Y)Y-shapeY-shape, no ground line
Zigzag (Z)Z-shapeTwo-segment zigzag, represents extended delta connection

Delta (Δ) SVG:

<!-- Equilateral triangle, 20×17px, centered at origin -->
<polygon points="0,-10 -10,7 10,7" fill="none" stroke="#333" stroke-width="2"/>

Wye Grounded (Yg) SVG:

<!-- Y stem: center to top three branches -->
<line x1="0" y1="0" x2="0" y2="-12"/>       <!-- stem -->
<line x1="0" y1="-12" x2="-8" y2="-20"/>    <!-- left branch -->
<line x1="0" y1="-12" x2="8" y2="-20"/>     <!-- right branch -->
<line x1="0" y1="-12" x2="0" y2="-22"/>     <!-- center branch (may omit) -->
<!-- Ground symbol at bottom -->
<line x1="-10" y1="6" x2="10" y2="6"/>
<line x1="-6" y1="10" x2="6" y2="10"/>
<line x1="-2" y1="14" x2="2" y2="14"/>

Wye Ungrounded (Y) SVG: Same as Yg, omit the ground symbol

Transformer_DY (Delta→Wye Grounded, most common)

  • DSL attr: [winding: "D-Yg"]
  • Symbol: upper Δ (primary) + lower Yg (secondary) + core lines in between
  • SVG (combined at origin):
<!-- Primary Delta -->
<g transform="translate(0,-20)">
  <polygon points="0,-10 -10,7 10,7" fill="none" stroke="#333" stroke-width="2"/>
</g>
<!-- Core lines (middle zone) -->
<line x1="-14" y1="-4" x2="14" y2="-4" stroke="#333" stroke-width="2"/>
<line x1="-14" y1="0" x2="14" y2="0" stroke="#333" stroke-width="2"/>
<!-- Secondary Wye-Grounded -->
<g transform="translate(0,22)">
  <!-- Y branches -->
  <line x1="0" y1="-8" x2="-6" y2="-14"/>
  <line x1="0" y1="-8" x2="6" y2="-14"/>
  <line x1="0" y1="-8" x2="0" y2="0"/>
  <!-- Ground -->
  <line x1="-8" y1="4" x2="8" y2="4"/>
  <line x1="-5" y1="7" x2="5" y2="7"/>
  <line x1="-2" y1="10" x2="2" y2="10"/>
</g>
<!-- Polarity dots -->
<circle cx="-10" cy="-14" r="2.5" fill="#333"/>
<circle cx="8" cy="18" r="2.5" fill="#333"/>

Transformer_YY (Wye-Wye)

  • DSL attr: [winding: "Yg-Yg"]
  • Symbol: Two Yg symbols (top and bottom) + core lines

Transformer_DD (Delta-Delta)

  • DSL attr: [winding: "D-D"]
  • Symbol: Two Δ symbols (top and bottom) + core lines

Transformer_YD (Wye→Delta)

  • DSL attr: [winding: "Yg-D"]

Autotransformer

  • DSL attr: [type: "auto"]
  • Symbol: Single winding (with center tap), lead wires at both ends + tap output
<!-- Single winding with center tap -->
<path d="M -12,0 A 4,4 0 0 1 -4,0 A 4,4 0 0 1 4,0 A 4,4 0 0 1 12,0"
      fill="none" stroke="#333" stroke-width="2"/>
<!-- Center tap -->
<line x1="0" y1="4" x2="0" y2="18"/>
<!-- Primary/Secondary terminals are same winding ends -->

Three-Winding Transformer

  • DSL attr: [type: "3winding"]
  • Symbol: Three windings, with the third winding tapped from the middle
  • Nameplate: specify tertiary: "13.8kV/138kV/12.47kV" in attrs

6.2 Switching Equipment (v2 Additions)

Recloser

  • Description: Automatic reclosing circuit breaker; detects a fault and recloses after a time delay (used in distribution systems)
  • Distinction from breaker: adds a small arc + circular arrow to indicate the reclosing function
<!-- Base: diagonal line (same as breaker) -->
<line x1="-12" y1="12" x2="12" y2="-12" stroke="#333" stroke-width="2"/>
<!-- Arc at top (like breaker) -->
<path d="M 8,-8 A 6,6 0 0 1 16,-8" fill="none" stroke="#333" stroke-width="2"/>
<!-- Reclosing indicator: small circular arrow -->
<path d="M 14,-16 A 6,6 0 1 1 20,-10" fill="none" stroke="#333" stroke-width="1.5"/>
<polygon points="20,-10 22,-14 17,-13" fill="#333"/>  <!-- arrowhead -->

Sectionalizer

  • Description: Used with a recloser to automatically isolate a faulted section (opens without arc interruption)
  • Distinction from switch: adds an "S" letter designation
<!-- Base disconnect switch symbol -->
<line x1="-12" y1="12" x2="12" y2="-12" stroke="#333" stroke-width="2"/>
<circle cx="12" cy="-12" r="2" fill="white" stroke="#333" stroke-width="1.5"/>
<!-- "S" label -->
<text x="16" y="-14" font-size="9" fill="#333">S</text>

Ground Switch

  • Description: Used for safety grounding, typically interlocked with a circuit breaker
<!-- Diagonal line (switch arm) -->
<line x1="-12" y1="12" x2="12" y2="-12" stroke="#333" stroke-width="2"/>
<!-- Ground symbol at bottom tip -->
<line x1="-12" y1="16" x2="12" y2="16"/>
<line x1="-8" y1="20" x2="8" y2="20"/>
<line x1="-4" y1="24" x2="4" y2="24"/>
<line x1="-12" y1="12" x2="0" y2="16"/>  <!-- connection to ground symbol -->

ATS (Automatic Transfer Switch)

  • Description: Automatically switches between two power sources (normal/standby)
  • Symbol: Two breaker symbols + coupling bar (indicating mechanical interlock)
<!-- Source 1 breaker (left) -->
<g transform="translate(-20,0)">
  <line x1="-8" y1="8" x2="8" y2="-8" stroke="#333" stroke-width="2"/>
  <path d="M 5,-5 A 4,4 0 0 1 10,-5" fill="none" stroke="#333" stroke-width="1.5"/>
</g>
<!-- Source 2 breaker (right) -->
<g transform="translate(20,0)">
  <line x1="-8" y1="8" x2="8" y2="-8" stroke="#333" stroke-width="2"/>
  <path d="M 5,-5 A 4,4 0 0 1 10,-5" fill="none" stroke="#333" stroke-width="1.5"/>
</g>
<!-- Mechanical interlock (dashed line between arms) -->
<line x1="-12" y1="-8" x2="12" y2="-8" stroke="#333" stroke-width="1.5" stroke-dasharray="3,2"/>
<!-- "ATS" label -->
<text x="0" y="20" text-anchor="middle" font-size="9" font-weight="bold">ATS</text>

6.3 Protection Equipment (v2 Additions)

Surge Arrester (Lightning Arrester)

  • Description: Limits overvoltage by diverting surge current to ground
  • IEEE symbol: Downward arrow + ground line, or arc gap + ground
<!-- Vertical line (line connection at top) -->
<line x1="0" y1="-20" x2="0" y2="0" stroke="#333" stroke-width="2"/>
<!-- Surge arrester body: rectangle with arc inside -->
<rect x="-8" y="0" width="16" height="16" fill="white" stroke="#333" stroke-width="2"/>
<path d="M -4,8 Q 0,2 4,8" fill="none" stroke="#333" stroke-width="1.5"/>  <!-- arc inside -->
<!-- Ground connection -->
<line x1="0" y1="16" x2="0" y2="24"/>
<line x1="-10" y1="24" x2="10" y2="24"/>
<line x1="-6" y1="28" x2="6" y2="28"/>
<line x1="-2" y1="32" x2="2" y2="32"/>

Fuse Cutout (Drop-Out Fuse)

  • Description: Isolation protection on distribution lines; visually indicates a blown fuse
  • Symbol: Ellipse enclosing a diagonal line (distinguished from a regular fuse)
<line x1="-14" y1="14" x2="14" y2="-14" stroke="#333" stroke-width="2"/>  <!-- fuse element -->
<ellipse cx="0" cy="0" rx="10" ry="16" transform="rotate(45)"
         fill="none" stroke="#333" stroke-width="1.5"/>  <!-- enclosure -->

VFD (Variable Frequency Drive)

  • Description: Controls motor speed by varying output frequency
  • Symbol: Rectangle block + "VFD" label + frequency change symbol
<rect x="-20" y="-16" width="40" height="32" fill="white" stroke="#333" stroke-width="2"/>
<text x="0" y="-4" text-anchor="middle" font-size="9" font-weight="bold">VFD</text>
<!-- frequency symbol: Hz or ~→~ with arrow -->
<text x="0" y="8" text-anchor="middle" font-size="8">f₁→f₂</text>

6.4 Metering Symbols (v2)

Watthour Meter (Energy Meter)

<circle r="16" fill="white" stroke="#333" stroke-width="2"/>
<text x="0" y="5" text-anchor="middle" font-size="11" font-weight="bold">Wh</text>

Potential Transformer / Voltage Transformer (PT/VT)

  • Description: Steps down high voltage for measurement; similar to CT but connected in parallel
<!-- Smaller transformer: two tiny coil groups side by side -->
<circle r="8" fill="white" stroke="#333" stroke-width="1.5"/>
<text x="0" y="3" text-anchor="middle" font-size="7">PT</text>
<!-- Parallel connection lines (unlike CT series) -->
<line x1="-16" y1="0" x2="-8" y2="0" stroke="#333" stroke-width="1.5"/>
<line x1="8" y1="0" x2="16" y2="0" stroke="#333" stroke-width="1.5"/>

6.5 Generator (Synchronous)

  • Distinction from motor: Circle + "G" label (instead of "M") + arrow direction indicates generation (power output)
<circle r="14" fill="white" stroke="#333" stroke-width="2"/>
<text text-anchor="middle" dominant-baseline="central"
      font-size="12" font-weight="bold">G</text>
<!-- 3-phase output lines at top -->
<line x1="-6" y1="-12" x2="-6" y2="-18" stroke="#333" stroke-width="1.5"/>
<line x1="0" y1="-14" x2="0" y2="-18" stroke="#333" stroke-width="1.5"/>
<line x1="6" y1="-12" x2="6" y2="-18" stroke="#333" stroke-width="1.5"/>

6.6 Updated DSL Examples

sld "Substation with Protection"
  UTIL   = utility [voltage: "115kV"]
  TX1    = transformer_dy [rating: "10MVA", primary: "115kV", secondary: "13.8kV", impedance: "6%"]
  ARR1   = surge_arrester
  BUS1   = bus [voltage: "13.8kV"]
  CB1    = breaker [rating: "1200A", label: "Main Breaker"]
  CT1    = ct [ratio: "600:5"]
  REL51  = relay [device: "51", label: "OC Relay"]
  REL87  = relay [device: "87T", label: "Diff Relay"]
  VFD1   = vfd [rating: "200HP"]
  M1     = motor [rating: "200HP", voltage: "13.8kV"]

  UTIL   -> TX1
  UTIL   -> ARR1   /* surge arrester in parallel */
  ARR1   -> BUS1   /* direct to bus */
  TX1    -> CB1
  CB1    -> CT1
  CT1    -> BUS1
  CT1    -> REL51
  TX1    -> REL87   /* differential relay monitors transformer */
  BUS1   -> VFD1
  VFD1   -> M1

6.7 Updated Implementation Priority (v2)

PrioritySymbolsHours
P0 (v1)utility, transformer (generic), bus, breaker, switch, fuse, motor, load, ct, relay4h
P1transformer_dy, transformer_yy, transformer_dd (winding configs)1.5h
P1surge_arrester, fuse_cl (current limiting)0.5h
P1recloser, sectionalizer0.5h
P1generator (sync), vfd, ats0.75h
P2autotransformer, transformer_3winding0.75h
P2ground_switch, watthour_meter, pt0.5h
P2harmonic_filter, capacitor_bank (switched)0.5h

Total SLD symbols (v2): 37 (P0: 10, P1: 16, P2: 11)

On this page

1. Symbol Set1.1 Power SourcesUtility / Grid ConnectionGeneratorTransformer (Two-Winding)Battery Bank1.2 Switching & Protection DevicesCircuit Breaker (Device 52)Disconnect Switch / Isolator (Device 89)Fused DisconnectFuseMotor Starter (Contactor with Overload)Ground Switch1.3 Measurement & ProtectionCurrent Transformer (CT)Potential/Voltage Transformer (PT/VT)Relay (various protective relays)1.4 Load DevicesMotorPanel / Load Box (Generic)Lighting Panel (LP)Motor Control Center (MCC)1.5 Bus Bars1.6 Metering & Instrumentation2. Layout Conventions2.1 Vertical Hierarchy (Power Flow Direction)2.2 Voltage Level Bands2.3 Multiple Feeders2.4 Component Sizing Consistency2.5 Annotation Placement3. Annotation System3.1 Equipment Labels3.2 Transformer Nameplate3.3 Cable / Conductor Annotation4. DSL Grammar (Single-Line Diagram)5. SVG Structure6. Test CasesCase 1: Simple Transformer FeederCase 2: Circuit BreakerCase 3: Multiple FeedersCase 4: Full System with Transformer + ProtectionCase 5: Residential Service7. Implementation Priority6. Expanded Symbol Library (v2): Winding Configurations & Protection Equipment6.1 Transformer Winding Configuration SymbolsWinding Symbol PrimitivesTransformer_DY (Delta→Wye Grounded, most common)Transformer_YY (Wye-Wye)Transformer_DD (Delta-Delta)Transformer_YD (Wye→Delta)AutotransformerThree-Winding Transformer6.2 Switching Equipment (v2 Additions)RecloserSectionalizerGround SwitchATS (Automatic Transfer Switch)6.3 Protection Equipment (v2 Additions)Surge Arrester (Lightning Arrester)Fuse Cutout (Drop-Out Fuse)VFD (Variable Frequency Drive)6.4 Metering Symbols (v2)Watthour Meter (Energy Meter)Potential Transformer / Voltage Transformer (PT/VT)6.5 Generator (Synchronous)6.6 Updated DSL Examples6.7 Updated Implementation Priority (v2)