Binäre Schaltungen in Kontaktplan
Beispielsammlung von Programmierbausteinen in Kontaktplan
KOP-Baustein FB_AssignToLamp.fb.ld

Das Äquivalent in ST:
FUNCTION_BLOCK FB_AssignToLamp
VAR_INPUT
bPushButton : BOOL := FALSE;
END_VAR
VAR_OUTPUT
bLamp : BOOL;
END_VAR
VAR
END_VAR
bLamp := bPushButton;FB_StorageCounterDer Zähler-Baustein FB_StorageCounter kapselt einen CTUD-Zähler (Vorwahl PV= 100).

FB_LatchxMotor := (xStart OR xMotor) AND NOT xStop
Der zweite Zweig der ParallelClosed-Verzweigung liest den eigenen Ausgang xMotor zurück (Selbsthaltung). xStop ist als Öffner in Reihe.
xStartkurzTRUE→xMotorbleibt an (hält sich selbst)xStopTRUE→xMotorfällt ab.

Netzwerk
1:iSum := iValue1 + iValue2über einenADD-Operatorbaustein.Netzwerk
2:xGreater := (iValue1 > iValue2)über einenGT-Operatorbaustein.
Beide Operatorbausteine haben den Freigabeeingang EN und den Freigabeausgang ENO. Eingänge sind iValue1 und iValue2. Ausgänge sind iSum und xGreater
PROGRAM PRG_CompareArithmetic
VAR
iValue1 : INT := 10; // first operand
iValue2 : INT := 5; // second operand
iSum : INT; // result iValue1 + iValue2
xGreater : BOOL; // TRUE if iValue1 > iValue2
END_VAR
PRG_SetResetNetzwerk
1:xSet→ Set-Spule (S) aufxLatch(Modifier.Storage = 1).Netzwerk
2:xReset→ Reset-Spule (R) aufxLatch(Modifier.Storage= 2).
xLatch bleibt nach xSet gespeichert TRUE und wird durch xReset zurückgesetzt.
FUNCTION_BLOCK FB_Latch
VAR_INPUT
xStart : BOOL; // start button (NO)
xStop : BOOL; // stop button (logic: TRUE = pressed)
END_VAR
VAR_OUTPUT
xMotor : BOOL; // latched motor output
END_VAR
VAR
END_VAR
PLC_PRGNetzwerk
1:Instanziiert
Storage1 : FB_StorageCounterund verdrahtet die Signaleingänge (xLightBarrierIn,xLightBarrierOut,xAck,xPreset) auf die Ausgänge für Meldeleuchten (xLampFull,xLampEmpty) und für die Anzeige (iDisplay).Netzwerk
2:xLamp50 := (iDisplay >= 50)über einen GE-Vergleicher.
PROGRAM PLC_PRG VAR Storage1 : FB_StorageCounter; // counter instance xLightBarrierIn : BOOL; // infeed light barrier -> xInfeed xLightBarrierOut : BOOL; // outfeed light barrier -> xOutfeed xAck : BOOL; // acknowledge / reset -> xReset xPreset : BOOL; // preset to 100 -> xLoad xLampFull : BOOL; // "storage full" lamp xLampEmpty : BOOL; // "storage empty" lamp xLamp50 : BOOL; // ">= 50% full" lamp iDisplay : INT; // stock display END_VAR
