Bitverknüpfungen
Kontakte, Spulen & Flanken
Das Herzstück der SPS-Programmierung. Bitverknüpfungen verarbeiten jede boolesche Operation — von einfachen Kontakten und Spulen bis hin zu Flipflops und der Flankenauswertung. Meistern Sie diese und Sie können jede Automatisierungslogik aufbauen.
Was sind Bitverknüpfungen?
Bitverknüpfungen sind die grundlegendsten Anweisungen in der SPS-Programmierung. Sie arbeiten mit booleschen Signalen (TRUE/FALSE, 1/0) — sie lesen Eingangszustände, kombinieren Bedingungen mit UND/ODER-Logik und steuern Ausgänge. In KOP (LAD) erscheinen diese als Kontakte und Spulen in Netzwerken. In FUP (FBD) erscheinen sie als UND/ODER/NICHT-Gatter.
Jedes SPS-Programm nutzt Bitverknüpfungen intensiv. Eine Motor-Start/Stopp-Schaltung, eine Alarmbedingung, eine Ventilverriegelung — sie alle beginnen mit Kontakten, die Sensorzustände lesen, und enden mit Spulen, die Aktoren ansteuern.
Kontakte — Eingangszustände lesen
Kontakte lesen den booleschen Zustand einer Variable und geben ihn entlang der Logikkette weiter
Schließer
—| |—Funktionsweise
Liest eine boolesche Variable (BOOL). Wenn die Variable TRUE (1) ist, schließt der Kontakt und gibt das Signal (VKE = TRUE) an das nächste Element weiter. Wenn die Variable FALSE (0) ist, ist der Kontakt geöffnet und blockiert den Signalfluss. Dies ist die am häufigsten verwendete Anweisung in der KOP-Programmierung.
Einsatzbereich
Jedes Mal, wenn Sie prüfen müssen, ob eine Bedingung WAHR ist: Ist eine Taste gedrückt? Ist ein Sensor aktiv? Ist ein Flag gesetzt? Platzieren Sie einen Schließer und weisen Sie ihm Ihre Variable zu.
Profi-Tipps
Der Name 'Normalerweise offen' (Normally Open) kommt aus der Relaislogik — der Kontakt ist im Normalzustand/Ruhezustand offen (leitet keinen Strom). Er schließt sich bei Ansteuerung.
Mehrere Schließer in Reihe bilden eine UND-Logik. Mehrere Schließer in parallelen Zweigen bilden eine ODER-Logik.
In FUP entspricht dies einfach der Verdrahtung einer BOOL-Variable mit einem UND/ODER-Box-Eingang — kein explizites Kontaktsymbol erforderlich.
Öffner
—|/|—Funktionsweise
Das Gegenteil eines Schließers. Wenn die Variable FALSE (0) ist, ist der Kontakt geschlossen und leitet das Signal weiter. Wenn die Variable TRUE (1) ist, öffnet der Kontakt und blockiert das Signal. Er wirkt wie eine NICHT-Operation auf den Variablenwert.
Einsatzbereich
Wenn Sie prüfen müssen, ob eine Bedingung NICHT wahr ist: Not-Aus nicht gedrückt, kein Fehler aktiv, Endschalter nicht erreicht. Sehr häufig für Sicherheitsverriegelungen und Alarmbedingungen.
Profi-Tipps
Verwenden Sie Öffner für Not-Aus- und Sicherheitskreise — sie sind drahtbruchsicher (Ruhestromprinzip). Wenn der Draht bricht, öffnet der Kontakt und stoppt die Maschine.
In FUP entspricht dies einem negierten Eingang (kleiner Kreis am Eingangspin einer UND/ODER-Box).
Verwechseln Sie die Öffner-Anweisung nicht mit einem physischen Öffner-Taster. Dies sind unabhängige Konzepte.
VKE invertieren
—|NOT|—Funktionsweise
Invertiert (negiert) das aktuelle Verknüpfungsergebnis (VKE). Wenn die Logikkette bis zu diesem Punkt TRUE ergibt, macht NOT daraus FALSE und umgekehrt. Es wirkt auf das kumulierte Logikergebnis, nicht auf eine spezifische Variable.
Einsatzbereich
Wenn Sie einen komplexen Logikausdruck invertieren müssen, anstatt nur eine einzelne Variable. Anstatt die gesamte Bedingung mit invertierten Kontakten neu zu schreiben, platzieren Sie NOT am Ende, um das Ergebnis umzukehren.
Profi-Tipps
NOT invertiert das gesamte VKE an diesem Punkt der Kette — im Gegensatz zu einem Öffner, der nur eine Variable invertiert.
Verwenden Sie in FUP die NOT-Box oder negieren Sie den Ausgang eines Logikgatters.
Sparsam einsetzen — übermäßiger Einsatz von NOT macht die Logik schwer lesbar. Oft ist eine Umstrukturierung der Logik klarer.
Spulen — Ausgänge steuern
Spulen schreiben das Ergebnis der Logikkette in eine Ausgangsvariable
Zuweisung
—( )—Funktionsweise
Schreibt das aktuelle VKE (Verknüpfungsergebnis) in eine boolesche Variable. Wenn die Logikkette TRUE ist, wird die Variable TRUE. Wenn FALSE, wird die Variable FALSE. Dies ist die Standard-Ausgangsspule — sie spiegelt die Eingangslogik in jedem Scan-Zyklus direkt wider.
Einsatzbereich
Für jeden Ausgang, der direkt seinen Eingangsbedingungen folgen soll. Eine Meldeleuchte, die leuchtet, wenn ein Motor läuft, ein Ventil, das öffnet, wenn die Bedingungen erfüllt sind. Der Ausgang folgt dem Eingang — wenn die Bedingungen auf FALSE gehen, geht auch der Ausgang auf FALSE.
Profi-Tipps
Die Zuweisungsspule ist 'nicht-remanent' — sie schreibt bei jedem Scan. Wenn die Logik auf FALSE geht, wird der Ausgang sofort FALSE.
Eine Variable sollte nur in EINEM Netzwerk zugewiesen werden. Mehrere Zuweisungen zur gleichen Variable führen dazu, dass die letzte gewinnt, was zu unvorhersehbarem Verhalten führt.
In FUP ist die Zuweisung einfach die Verbindung des Ausgangs eines Logikgatters mit einer BOOL-Variable.
Negierte Zuweisung
—(/)—Funktionsweise
Schreibt das invertierte VKE in eine boolesche Variable. Wenn die Logikkette TRUE ist, wird die Variable FALSE. Wenn die Logikkette FALSE ist, wird die Variable TRUE. Es kombiniert Zuweisung + NICHT in einer Anweisung.
Einsatzbereich
Wenn ein Ausgang im entgegengesetzten Zustand aktiv sein soll. Zum Beispiel eine 'System OK'-Lampe, die erlischt, wenn ein Fehler erkannt wird. Anstatt die gesamte Logikkette zu invertieren, verwenden Sie die negierte Spule.
Profi-Tipps
Entspricht dem Platzieren eines NOT vor einer regulären Zuweisungsspule, ist aber kompakter.
Mit Vorsicht verwenden — negierte Spulen können verwirrend zu lesen sein. Manchmal ist es klarer, die Logik umzustrukturieren.
In FUP ist dies eine negierte Ausgangsverbindung.
Rücksetzen (Reset)
—(R)—Funktionsweise
Wenn das VKE TRUE ist, wird die Variable auf FALSE (0) gesetzt. Wenn das VKE FALSE ist, bleibt die Variable unverändert (behält ihren aktuellen Wert bei). Dies ist eine unidirektionale Operation — sie kann nur ausschalten, niemals einschalten.
Einsatzbereich
In Setzen/Rücksetzen-Schaltungen: Ein Netzwerk setzt den Ausgang (schaltet EIN), ein anderes setzt ihn zurück (schaltet AUS). Verwenden Sie Rücksetzen für Stopp-Bedingungen, Fehlerquittierung und Alarmbestätigung. Das Rücksetzen hat in der Sicherheitslogik typischerweise Vorrang.
Profi-Tipps
Rücksetzen wirkt nur, wenn das VKE TRUE ist. Wenn das VKE FALSE ist, bleibt der Ausgang unverändert — er wird NICHT auf TRUE gesetzt.
In einem S/R-Paar hat die Anweisung Vorrang, die im Programm ZULETZT erscheint (wenn beide Bedingungen gleichzeitig TRUE sind).
Rücksetzen ist remanent — nach einem Rücksetzen bleibt der Ausgang FALSE, bis er explizit wieder gesetzt wird.
Setzen (Set)
—(S)—Funktionsweise
Wenn das VKE TRUE ist, wird die Variable auf TRUE (1) gesetzt. Wenn das VKE FALSE ist, bleibt die Variable unverändert (behält ihren aktuellen Wert bei). Dies ist eine unidirektionale Operation — sie kann nur einschalten, niemals ausschalten.
Einsatzbereich
In Setzen/Rücksetzen-Schaltungen: Verwenden Sie Setzen für Startbedingungen, Verriegelungssignale und First-Run-Flags. Einmal gesetzt, bleibt der Ausgang TRUE, bis er explizit zurückgesetzt wird — was ihn 'selbsthaltend' macht, ohne dass ein Selbsthaltekontakt erforderlich ist.
Profi-Tipps
Setzen wirkt nur, wenn das VKE TRUE ist. Wenn das VKE FALSE ist, bleibt der Ausgang unverändert — er wird nicht zurückgesetzt.
Klassische Motorsteuerung: Netzwerk 1 = Start-Taster → Motor setzen. Netzwerk 2 = Stopp-Taster ODER Fehler → Motor rücksetzen.
Vorsicht bei remanenten Variablen in Sicherheitskreisen — nach einem Power-Cycle können gesetzte Ausgänge ihren letzten Zustand beibehalten, abhängig von den DB-Einstellungen.
Bitfeld-Operationen
Einen Bereich von Bits in einer einzigen Operation setzen oder rücksetzen
SET_BF — Bitfeld setzen
Funktionsweise
Setzt eine zusammenhängende Gruppe von Bits ab einer bestimmten Adresse auf TRUE. Sie definieren das Startbit und die Anzahl der zu setzenden Bits. Wenn das VKE TRUE ist, werden alle angegebenen Bits auf 1 gesetzt.
Einsatzbereich
Wenn Sie mehrere zusammengehörige Ausgänge gleichzeitig aktivieren müssen — zum Beispiel das Setzen aller Bits eines Statusworts, das Initialisieren einer Gruppe von Flags oder das Aktivieren einer Ausgangsgruppe auf einmal.
Profi-Tipps
Nützlich für Batch-Operationen, anstatt einzelne Setzen-Anweisungen für jedes Bit zu schreiben.
Der Parameter für die Anzahl der Bits bestimmt, wie viele aufeinanderfolgende Bits betroffen sind.
Wie beim Setzen wirkt dies nur, wenn das VKE TRUE ist — Bits bleiben unverändert, wenn das VKE FALSE ist.
RESET_BF — Bitfeld rücksetzen
Funktionsweise
Setzt eine zusammenhängende Gruppe von Bits ab einer bestimmten Adresse auf FALSE zurück. Sie definieren das Startbit und die Anzahl der zurückzusetzenden Bits. Wenn das VKE TRUE ist, werden alle angegebenen Bits auf 0 gelöscht.
Einsatzbereich
Wenn Sie mehrere Flags oder Ausgänge gleichzeitig löschen müssen — zum Beispiel das Löschen aller Alarmbits in einem Statuswort, das Rücksetzen einer Gruppe von Ausgängen beim Herunterfahren oder das Initialisieren eines Datenbereichs.
Profi-Tipps
Das Gegenstück zu SET_BF — verwenden Sie sie zusammen für Setzen/Rücksetzen-Operationen auf Gruppenebene.
Besonders nützlich zum Löschen von Alarmwörtern oder Statusregistern in einer einzigen Operation.
Wie beim Rücksetzen wirkt dies nur, wenn das VKE TRUE ist — Bits bleiben unverändert, wenn das VKE FALSE ist.
Flipflops — Speicherschaltungen
Bistabile Elemente, die ihren Zustand speichern, bis er explizit geändert wird
SR — Setzen/Rücksetzen-Flipflop
Funktionsweise
Ein bistabiles Flipflop mit Setz-Vorrang. Es hat zwei Eingänge: S (Setzen) und R (Rücksetzen) sowie einen Ausgang Q. Wenn S=TRUE, wird Q zu TRUE. Wenn R=TRUE, wird Q zu FALSE. Wenn sowohl S als auch R gleichzeitig TRUE sind, ist Q TRUE (Setzen dominiert).
Einsatzbereich
Für Speicherschaltungen, bei denen die Setz-Bedingung Vorrang haben soll. Bei einem SR-Flipflop bleibt der Ausgang EIN, wenn sowohl Start als auch Stopp gleichzeitig gedrückt werden. Verwenden Sie dies, wenn 'Start-Vorrang' akzeptabel ist.
Profi-Tipps
SR = Setz-Vorrang. Wenn S=1 und R=1 → Q=1. Verwenden, wenn Starten wichtiger als Stoppen ist.
Bevorzugen Sie in sicherheitskritischen Anwendungen RS (Rücksetz-Vorrang) — es ist sicherer, wenn beide Bedingungen gleichzeitig ausgelöst werden.
Das Flipflop ist sowohl in KOP als auch in FUP eine Box mit S-, R-Eingängen und Q-Ausgang.
RS — Rücksetzen/Setzen-Flipflop
Funktionsweise
Ein bistabiles Flipflop mit Rücksetz-Vorrang. Es hat zwei Eingänge: R (Rücksetzen) und S (Setzen) sowie einen Ausgang Q. Wenn S=TRUE, wird Q zu TRUE. Wenn R=TRUE, wird Q zu FALSE. Wenn sowohl R als auch S gleichzeitig TRUE sind, ist Q FALSE (Rücksetzen dominiert).
Einsatzbereich
Für Speicherschaltungen, bei denen Sicherheit an erster Stelle steht. Die Rücksetz-Bedingung (Stopp) hat Vorrang — wenn sowohl Start als auch Stopp aktiv sind, ist der Ausgang AUS. Dies ist die Standardwahl für Motorsteuerung und Sicherheitsverriegelungen.
Profi-Tipps
RS = Rücksetz-Vorrang. Wenn S=1 und R=1 → Q=0. Die sicherere Wahl für die meisten industriellen Anwendungen.
Klassisches Motorsteuerungsmuster: S = Start_Taster UND NICHT Fehler, R = Stopp_Taster ODER Not-Aus ODER Fehler.
Der Ausgang Q ist innerhalb des Scan-Zyklus remanent — er behält seinen Wert bei, bis das Flipflop erneut ausgewertet wird.
Flankenauswertung — Signaländerungen erkennen
Erkennen, wenn ein Signal von FALSE→TRUE oder TRUE→FALSE wechselt
Operand auf positive Flanke abfragen
—|P|—Funktionsweise
Erkennt eine steigende Flanke (Wechsel von FALSE auf TRUE) bei einem bestimmten Operanden. Die Anweisung vergleicht den aktuellen Wert mit dem Wert aus dem vorherigen Scan. Wenn der Wert von 0 auf 1 gewechselt hat, ist das VKE für genau einen Scan-Zyklus TRUE. Erfordert ein Flankenmerkerbit (M-Bit), um den vorherigen Zustand zu speichern.
Einsatzbereich
Wenn Sie einen einmaligen Impuls aus einem dauerhaften Signal benötigen: Tastendrücke zählen, eine einzelne Aktion bei einer Pegeländerung auslösen, einen Zähler bei jeder Aktivierung inkrementieren. Ohne Flankenerkennung würde eine gedrückte Taste in jedem Scan-Zyklus auslösen.
Profi-Tipps
Sie MÜSSEN ein eindeutiges Flankenmerkerbit (M-Bit) zuweisen — verwenden Sie dasselbe M-Bit NICHT für mehrere Flankenerkennungen, da sie sich sonst gegenseitig beeinflussen.
Der Ausgang ist für genau einen SPS-Scan-Zyklus TRUE (typischerweise 1-50 ms). Wenn Sie einen längeren Impuls benötigen, verwenden Sie einen Timer.
In KOP erscheint dies als Kontakt mit der Kennzeichnung 'P'. Die Variable des M-Bits wird über/unter dem Kontakt angezeigt.
Operand auf negative Flanke abfragen
—|N|—Funktionsweise
Erkennt eine fallende Flanke (Wechsel von TRUE auf FALSE) bei einem bestimmten Operanden. Die Anweisung vergleicht den aktuellen Wert mit dem Wert aus dem vorherigen Scan. Wenn der Wert von 1 auf 0 gewechselt hat, ist das VKE für genau einen Scan-Zyklus TRUE. Erfordert ein Flankenmerkerbit.
Einsatzbereich
Wenn Sie auf das Ausschalten eines Signals reagieren müssen: Erkennen, wenn eine Taste losgelassen wird, Auslösen bei Sensordeaktivierung oder Erfassen des Moments, in dem ein Prozessschritt abgeschlossen ist.
Profi-Tipps
Gleiche Regeln wie bei der positiven Flanke — jede negative Flankenerkennung benötigt ihr eigenes eindeutiges M-Bit.
Nützlich für Aktionen beim 'Loslassen der Taste': Starten eines Timers, wenn eine Taste losgelassen wird, nicht beim Drücken.
Verwenden Sie in einer Abschaltsequenz negative Flanken, um zu erkennen, wann jeder Schritt abgeschlossen ist (Ausgang wechselt von EIN auf AUS).
Operand bei positiver Flanke setzen
—(P)—Funktionsweise
Setzt (schreibt TRUE) einen angegebenen Operanden für einen Scan-Zyklus, wenn eine positive Flanke (FALSE→TRUE) am VKE erkannt wird. Kombiniert Flankenerkennung und Ausgangszuweisung in einer Anweisung.
Einsatzbereich
Wenn Sie ein Flag oder einen Ausgang für genau einen Scan bei einer steigenden Flanke setzen möchten, ohne einen separaten Flankenerkennungskontakt gefolgt von einer Spule zu benötigen.
Profi-Tipps
Dies ist eine Anweisung vom Typ Spule — sie gehört ans Ende eines Netzwerks, nicht in die Mitte.
Erfordert genau wie die Kontaktversion ein Flankenmerkerbit.
Der Operand ist nur für einen Scan TRUE und kehrt dann automatisch auf FALSE zurück.
Operand bei negativer Flanke setzen
—(N)—Funktionsweise
Setzt (schreibt TRUE) einen angegebenen Operanden für einen Scan-Zyklus, wenn eine negative Flanke (TRUE→FALSE) am VKE erkannt wird. Kombiniert fallende Flankenerkennung und Ausgangszuweisung in einer Anweisung.
Einsatzbereich
Wenn Sie ein Flag oder einen Ausgang für genau einen Scan bei einer fallenden Flanke setzen möchten. Nützlich zum Auslösen von Aktionen nach einer Deaktivierung.
Profi-Tipps
Anweisung vom Typ Spule — am Ende eines Netzwerks platzieren.
Erfordert ein eigenes eindeutiges Flankenmerkerbit.
Wird oft für 'Aufräum-Aktionen' verwendet, die einmalig beim Stoppen eines Prozesses erfolgen sollen.
P_TRIG — VKE auf positive Flanke abfragen
Funktionsweise
Erkennt eine steigende Flanke am VKE (Verknüpfungsergebnis) anstatt an einem spezifischen Operanden. Wenn das kombinierte Logikergebnis von FALSE auf TRUE wechselt, ist der Ausgang für einen Scan-Zyklus TRUE. Der Flankenspeicher befindet sich innerhalb der Instanz der Anweisung.
Einsatzbereich
Wenn Sie eine steigende Flanke bei einer komplexen Logikkombination erkennen möchten, nicht nur bei einem einzelnen Tag. Zum Beispiel: Erkennen, wenn (Sensor1 UND Sensor2 UND NICHT Fehler) zum ersten Mal TRUE wird.
Profi-Tipps
P_TRIG arbeitet mit dem kumulierten VKE — es erkennt die Flanke der gesamten Logikkette davor.
Der Flankenspeicher ist in die Anweisung integriert — kein separates M-Bit erforderlich.
In FUP ist P_TRIG eine Box mit CLK-Eingang und Q-Ausgang.
N_TRIG — VKE auf negative Flanke abfragen
Funktionsweise
Erkennt eine fallende Flanke am VKE. Wenn das kombinierte Logikergebnis von TRUE auf FALSE wechselt, ist der Ausgang für einen Scan-Zyklus TRUE. Der Flankenspeicher befindet sich innerhalb der Instanz der Anweisung.
Einsatzbereich
Wenn Sie erkennen möchten, wann eine komplexe Bedingung nicht mehr wahr ist. Zum Beispiel: Den Moment erfassen, in dem (Auto_Modus UND Alles_OK) von TRUE auf FALSE wechselt.
Profi-Tipps
N_TRIG ist das Gegenstück zur steigenden Flanke von P_TRIG.
Kein separates M-Bit erforderlich — der Flankenspeicher ist intern.
Nützlich zum Erkennen des Endes einer kombinierten Bedingung anstelle eines einzelnen Signals.
R_TRIG — Positve Signalflanke erkennen
Funktionsweise
Ein IEC 61131-3-konformer Funktionsbaustein zur Erkennung steigender Flanken. Er hat einen CLK-Eingang und einen Q-Ausgang. Wenn CLK von FALSE auf TRUE wechselt, ist Q für einen Scan-Zyklus TRUE. Der Flankenspeicher wird in den Instanzdaten des FB gespeichert.
Einsatzbereich
Wenn Sie eine IEC-Standard-Flankenerkennung mit eigenen Instanzdaten wünschen. R_TRIG ist ein Funktionsbaustein — jede Instanz verwaltet ihren eigenen Flankenspeicher automatisch. Bevorzugt in strukturiertem, wiederverwendbarem Code.
Profi-Tipps
R_TRIG ist ein FB — er benötigt Instanzdaten (entweder einen eigenen DB oder als Multiinstanz in einem übergeordneten FB). Dies macht ihn autark und wiederverwendbar.
Verfügbar seit V1.0 auf S7-1200/1500. Dies ist die Standardmethode nach IEC 61131-3 zur Flankenerkennung.
In SCL: myRTRIG(CLK := meinSignal); IF myRTRIG.Q THEN ... END_IF;
F_TRIG — Negative Signalflanke erkennen
Funktionsweise
Ein IEC 61131-3-konformer Funktionsbaustein zur Erkennung fallender Flanken. Er hat einen CLK-Eingang und einen Q-Ausgang. Wenn CLK von TRUE auf FALSE wechselt, ist Q für einen Scan-Zyklus TRUE. Der Flankenspeicher wird in den Instanzdaten des FB gespeichert.
Einsatzbereich
Wenn Sie eine IEC-Standard-Flankenerkennung für fallende Flanken mit eigenen Instanzdaten wünschen. F_TRIG ist das Gegenstück zur steigenden Flanke von R_TRIG.
Profi-Tipps
F_TRIG ist ein FB mit eigener Instanz — wie R_TRIG ist er autark und IEC 61131-3-konform.
In SCL: myFTRIG(CLK := meinSignal); IF myFTRIG.Q THEN ... END_IF;
Bevorzugen Sie R_TRIG/F_TRIG gegenüber |P|/|N|-Kontakten beim Schreiben von wiederverwendbarem Bibliothekscode, da sie keine externen M-Bits erfordern.
Kurzübersicht — Alle 20 Bitverknüpfungen
| # | Anweisung | KOP-Symbol | Shortcut | Beschreibung |
|---|---|---|---|---|
| 1 | Schließer | —| |— | F9 | Gibt Signal weiter, wenn Variable TRUE ist |
| 2 | Öffner | —|/|— | F10 | Gibt Signal weiter, wenn Variable FALSE ist |
| 3 | VKE invertieren | —|NOT|— | — | Invertiert das Verknüpfungsergebnis (VKE) |
| 4 | Zuweisung | —( )— | Shift + F7 | Schreibt VKE in Ausgangsvariable |
| 5 | Negierte Zuweisung | —(/)— | — | Schreibt invertiertes VKE in Ausgangsvariable |
| 6 | Rücksetzen (Reset) | —(R)— | — | Setzt Variable auf FALSE, wenn VKE TRUE ist |
| 7 | Setzen (Set) | —(S)— | — | Setzt Variable auf TRUE, wenn VKE TRUE ist |
| 8 | SET_BF — Bitfeld setzen | — | — | Setzt einen Bereich von Bits auf TRUE |
| 9 | RESET_BF — Bitfeld rücksetzen | — | — | Setzt einen Bereich von Bits auf FALSE zurück |
| 10 | SR — Setzen/Rücksetzen-Flipflop | — | — | Flipflop mit Setz-Vorrang (S=1, R=1 → Q=1) |
| 11 | RS — Rücksetzen/Setzen-Flipflop | — | — | Flipflop mit Rücksetz-Vorrang (S=1, R=1 → Q=0) |
| 12 | Operand auf positive Flanke abfragen | —|P|— | — | Erkennt steigende Flanke bei einem Operanden |
| 13 | Operand auf negative Flanke abfragen | —|N|— | — | Erkennt fallende Flanke bei einem Operanden |
| 14 | Operand bei positiver Flanke setzen | —(P)— | — | Setzt Operanden für 1 Scan bei steigender Flanke |
| 15 | Operand bei negativer Flanke setzen | —(N)— | — | Setzt Operanden für 1 Scan bei fallender Flanke |
| 16 | P_TRIG — VKE auf positive Flanke abfragen | — | — | Erkennt steigende Flanke am VKE |
| 17 | N_TRIG — VKE auf negative Flanke abfragen | — | — | Erkennt fallende Flanke am VKE |
| 18 | R_TRIG — Positve Signalflanke erkennen | — | — | IEC-Detektor für steigende Flanken (FB) |
| 19 | F_TRIG — Negative Signalflanke erkennen | — | — | IEC-Detektor für fallende Flanken (FB) |
Häufig gestellte Fragen
Was ist der Unterschied zwischen Setzen/Rücksetzen-Spulen und SR/RS-Flipflops?
Setzen (S) und Rücksetzen (R) Spulen sind einzelne Anweisungen, die in separaten Netzwerken platziert werden — Sie steuern den Vorrang dadurch, welches Netzwerk zuletzt kommt. SR/RS-Flipflops sind einzelne Boxen mit beiden Eingängen — der Vorrang ist eingebaut (SR = Setz-Vorrang, RS = Rücksetz-Vorrang). Flipflops sind kompakter und machen den Vorrang explizit.
Welche Flankenerkennung sollte ich verwenden: |P|/|N|, (P)/(N), P_TRIG/N_TRIG oder R_TRIG/F_TRIG?
|P|/|N|-Kontakte erkennen Flanken an einem spezifischen Tag und benötigen ein externes M-Bit. (P)/(N)-Spulen kombinieren die Flankenerkennung mit der Ausgangszuweisung. P_TRIG/N_TRIG erkennen Flanken am VKE (kombinierte Logik). R_TRIG/F_TRIG sind IEC-Standard-FBs mit eingebautem Speicher. Bevorzugen Sie für wiederverwendbaren Bibliothekscode R_TRIG/F_TRIG. Für einfache Inline-Logik sind |P|/|N|-Kontakte in Ordnung.
Warum verhält sich meine Setzen/Rücksetzen-Schaltung unerwartet?
Die häufigste Ursache ist, dass sowohl die Setz- als auch die Rücksetz-Bedingung gleichzeitig TRUE sind. In diesem Fall gewinnt die letzte Anweisung im Programm. Wenn Ihr Rücksetz-Netzwerk vor Ihrem Setz-Netzwerk steht, wird der Ausgang gesetzt. Lösung: Verwenden Sie ein RS-Flipflop (Rücksetz-Vorrang) für sicherheitskritische Schaltungen oder stellen Sie sicher, dass sich Ihre Bedingungen gegenseitig ausschließen.
Kann die Flankenerkennung auch bei Analogwerten oder nur bei BOOL funktionieren?
Flankenerkennungsanweisungen (|P|, |N|, R_TRIG, F_TRIG) funktionieren nur bei booleschen Signalen. Für Analogwerte müssen Sie einen Vergleich erstellen (z. B. Wert > Schwellenwert), der ein BOOL-Ergebnis liefert, und dann die Flankenerkennung auf dieses BOOL anwenden.