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
Kontakte (links auf dem Rung)
| Symbol | Bedeutung |
|---|---|
--| |-- | 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)
| Symbol | Bedeutung |
|---|---|
--( ) | 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) oderqMotor(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
- Function Block Diagram — datenfluss-orientierte Schwester-Sprache.
- Library — Funktionsblöcke für Inline-Einsatz im Pfad
(
TON,CTU,JK_FF,DEBOUNCE). - Variables Panel — Adress-Pool und Variablenbindung.