Ladder Diagram Editor (LD)

Geplant für Release 0.3

LD ist für Release 0.3 geplant und wird derzeit noch nicht übersetzt. Für lauffähige Programme nutzen Sie heute Strukturierten Text (ST). Siehe auch die Roadmap.

Überblick

Ladder Diagram (LD) ist die älteste der drei grafischen IEC-61131-3-Sprachen und folgt der Stromlaufplan-Metapher: Zwischen einer linken und einer rechten Power-Rail verlaufen horizontale Strompfade (Rungs). Auf jedem Rung sitzen Kontakte (links, in Reihe) und Spulen (rechts), die das Signal je nach Variablenzustand „leiten" oder „sperren". LD eignet sich besonders für einfache Steuerungen — Endlagenschaltungen, Selbsthaltungen, Verriegelungen — und ist für Elektroplaner intuitiv lesbar.

Editor-Layout

Der LD-Editor hat den gleichen Aufbau wie der FBD-Editor (Toolbar oben, QGraphicsView mit Grid + Zoom + Pan, Variablentabelle rechts), mit zwei Besonderheiten:

  • Linke Power-Rail und rechte Power-Rail stehen als spezielle Items dauerhaft im Diagramm. Sie sind nicht verschiebbar und wachsen vertikal mit der Anzahl der Rungs.
  • Die Toolbar enthält zusätzliche Aktionen für LD-Symbole (Kontakte, Spulen, Edge-Trigger) und einen Add Rung-Button, der eine neue Rung-Verbindung zwischen den Power-Rails einfügt.

Symbole

SymbolBedeutung
--| |--Schließer (NO) — leitet, wenn die Variable TRUE ist
--|/|--Öffner (NC) — leitet, wenn die Variable FALSE ist
--|P|--Rising-Edge-Kontakt — leitet einen Zyklus lang bei steigender Flanke
--|N|--Falling-Edge-Kontakt — leitet einen Zyklus lang bei fallender Flanke

Mehrere Kontakte in Reihe wirken als logisches AND, parallele Pfade als logisches OR.

Spulen (rechts auf dem Rung)

SymbolBedeutung
--( )Standard-Spule — schreibt den aktuellen Pfad-Zustand in die Variable
--(/)Negierte Spule — schreibt den invertierten Zustand
--(S)Set-Spule — setzt die Variable auf TRUE und hält sie (auch wenn der Pfad später wieder öffnet)
--(R)Reset-Spule — setzt die Variable auf FALSE und hält sie

Set/Reset-Paare ergeben eine Selbsthaltung, ohne explizite IF-THEN-Logik.

Funktionsblöcke im Pfad

Funktionen und Funktionsblöcke aus der Library können inline zwischen Kontakten und Spulen eingebaut werden. Der LD-Editor zeichnet sie als horizontale Box mit Pin-Liste rechts/links — semantisch identisch zum FBD-Block. Typischer Einsatz: Timer (TON), Zähler (CTU), Vergleicher (GT, EQ).

Beispiel — Selbsthaltung mit Stop-Vorrang

Eine klassische Schütz-Schaltung: Ein Start-Taster xStart schaltet einen Motor qMotor ein, ein Stop-Taster xStop schaltet ihn aus. Solange xStart gedrückt war und xStop nicht, bleibt der Motor an (Selbsthaltung).

        |                                              |
        |   xStart      xStop                          |
   +----| |---+--|/|---+-----------------------( )----+
        |    |         |                       qMotor  |
        |    |         |                                |
        |   qMotor     |                                |
        +----| |-------+                                |
        |                                              |

Sprachlich gesprochen:

  • xStart (NO) oder qMotor (Selbsthalte-Kontakt, NO) — parallel,
  • und xStop (NC) — in Reihe,
  • setzt die Spule qMotor.

Beim Compile übersetzt der LD-Compiler diesen Pfad zu:

qMotor := (xStart OR qMotor) AND NOT xStop;

Das ist die einfachste Form einer Selbsthaltung mit Stop-Vorrang. Wenn beide Taster gleichzeitig gedrückt werden, gewinnt xStop, weil der NC-Kontakt den Strompfad öffnet.

Verwandte Themen