Bei der SPS-Programmierung gibt es fünf Arten von Sprachen: Kontaktplanlogik, Anweisungsliste, strukturierter Text, Funktionsblockdiagramm und sequentielles Flussdiagramm. Jede Art von SPS-Sprache hat ihre eigenen Vor- und Nachteile. Während einige Sprachen optisch gut aussehen und sich leicht Fehler beheben lassen, verbrauchen andere Sprachen weniger Speicher und haben eine höhere Verarbeitungsgeschwindigkeit.
Eine der am häufigsten verwendeten SPS-Sprachen ist die Anweisungsliste. Sie ist nicht so bekannt wie andere Sprachen und wird aufgrund veralteter Technologie nur von wenigen SPS-Programmierern verwendet, ist aber dennoch in fast allen Softwareprogrammen von SPS-Herstellern verfügbar. In diesem Beitrag werden wir uns das Konzept der Anweisungslistensprache in der SPS ansehen.
Was ist eine Anweisungsliste?
Ein in der Anweisungslistensprache geschriebenes SPS-Programm besteht aus einer Reihe von Anweisungen, die vom Logikcontroller nacheinander ausgeführt werden. Jeder Befehl wird durch eine einzelne Programmzeile dargestellt und besteht aus den folgenden Komponenten:
- Zeilennummer
- Aktueller Wert (nur im Onlinemodus)
- Befehlsoperator
- Operand(en)
- Optionaler Kommentar
Wenn Sie schon einmal die traditionelle Assemblersprache in Mikroprozessoren gesehen haben, können Sie sich mit dieser Sprache leicht identifizieren. Sie kann auch als eine Mischung aus Kontaktplanlogik und strukturiertem Text bezeichnet werden. Kontaktplanlogik in dem Sinne, dass Befehle linear geschrieben werden müssen, und strukturierter Text in dem Sinne, dass Mnemonik in Worten verwendet wird.
Weitere Informationen finden Sie im folgenden Bild. Das erste Bild zeigt eine in Kontaktplansprache geschriebene SPS-Logik. Die Logik lautet: %M3 wird eingeschaltet, wenn %M0 eingeschaltet ist und %M1 eingeschaltet ist oder %M2 eingeschaltet ist.
Sehen Sie sich nun die folgende Logik für die Befehlsliste an. Sie können sehen, dass jede Zeile nur eine Komponente hat – die erste Zeile hat %M0 und die zweite Zeile hat %M1, das eine UND-Logik mit der nächsten Zeile ausführt.
In der dritten Zeile führt %M2 eine ODER-Logik mit der vorherigen Zeile aus, die vierte Zeile schließt die Befehle und die fünfte Zeile schaltet den Ausgang %M3 ein. Es handelt sich also um eine Darstellung sowohl der Kontaktplanlogik als auch des strukturierten Textes.
Komponenten der Anweisungsliste
Die Hauptkomponenten einer SPS-Anweisungsliste sind unten aufgeführt.
- Zeilennummer – Vierstellige Zeilennummern werden generiert, wenn Sie eine neue Programmzeile erstellen, und werden automatisch von der Software verwaltet. Sie sind in der obigen Abbildung als 0000 bis 0004 zu sehen.
- Aktuelle Werte – Im Onlinemodus können Sie die aktuellen Werte jedes Elements sehen, wie in der folgenden Abbildung gezeigt. Während der Online-Animation wird dies im folgenden Bild als wahr oder falsch angezeigt.
- Anweisungsoperatoren – Dieser Operator ist eine Art Befehl zum Ausführen einer Anweisung. Er kann auch als Eingabe- und Ausgabeseite der geschriebenen Logik bezeichnet werden. Es handelt sich um ein mnemonisches Symbol, das verwendet wird, um die Art des Befehls zu bezeichnen, der auf der Ausgabeseite ausgeführt werden soll, und auch, wie die Ausgabeseite ihn ausführen wird. Im obigen Bild beispielsweise steht LD für „Load“, wodurch die Ausführung durch Laden des Werts des ersten Bits gestartet wird, AND/OR bezeichnet logische Anweisungen und ST bezeichnet das Speichern von Ergebniswerten im Zielbit.
- Kommentar – Dies ist optional. Der Programmierer kann damit Kommentare schreiben, die ihm bei der einfachen Fehlerbehebung der Logik helfen.
Anweisungsliste bei der SPS-Programmierung
Einige der Anweisungslisten der SPS sind unten aufgeführt.
- LD – Lädt den Booleschen Wert des Operanden in den Akkumulator.
- LDN – Lädt den negierten Booleschen Wert des Operanden in den Akkumulator.
- LDR – Lädt den Booleschen Wert des Operanden in den Akkumulator, wenn sich der Wert von 0 auf 1 ändert (steigende Flanke).
- LDF – Lädt den Booleschen Wert des Operanden in den Akkumulator, wenn sich der Wert von 1 auf 0 ändert (fallende Flanke).
- AND – Führt eine UND-Operation zwischen dem vorherigen Ergebnis und dem aktuellen Operanden aus.
- ANDN – Führt eine UND-Operation zwischen dem vorherigen Ergebnis und der Inversen des aktuellen Operanden aus.
- ANDR – Führt eine UND-Operation zwischen dem vorherigen Ergebnis und der steigenden Flanke des aktuellen Operanden aus.
- ANDF – Führt eine UND-Operation zwischen dem vorherigen Ergebnis und der fallenden Flanke des aktuellen Operanden aus.
- OR – Führt eine ODER-Operation zwischen dem vorherigen Ergebnis und dem aktuellen Operanden aus.
- NOT – Führt die Inversoperation des Operanden aus.
- ST – Nimmt den Wert des generierten Ergebnisses.
- STN – Nimmt den Inversen des generierten Ergebnisses.
- S – Führt die Setzoperation des Operanden aus.
- R – Führt die Rücksetzoperation des Operanden aus.
Abgesehen davon gibt es auch andere Anweisungen wie Sprung, Unterprogramm, Ende, UND mit, ODER mit usw., je nach SPS-Hersteller.
Auf diese Weise haben wir das Konzept der Anweisungsliste in der SPS-Programmierung kennengelernt.