Das Buch beschreibt sehr praxisorientiert die Techniken der SPS

Transcription

Das Buch beschreibt sehr praxisorientiert die Techniken der SPS
Schiebe- und
Füllregister
ST-Programmierung
nach IEC61131-3
1-2012
Automatisierungslösungen bei Massenfluss- und Zielsteuerungen
Anwendung Schiebe- und Füllregister
Für die Realisierung von Massenfluss- und Zielsteuerungen kommen vor allem
Schiebeund Füllregister zum Einsatz. Die Bewegung einzelner Produkte z.B.
auf Förderbändern, Kreisförderern (Anwendung Schieberegister), oder Staubändern
(Anwendung Füllregister) lässt sich im Anwenderprogramm nachbilden. Durch die
Nutzung offener Standards wie
IEC61131-3 und PLCopen ist es möglich, mit Hilfe
der unter CoDeSys (Hersteller: 3S-Smart Software Solutions) vom Autor entwickelten
zusätzlichen anwendereigenen
Funktionsbausteine (FB) in entsprechenden
Applikationen einfach zu realisieren.
Schieberegister
Schieberegister werden vorwiegend zur Serien-Parallel-Umsetzung benutzt. Bei der
Serien-Parallel-Umsetzung wird eine in Serie ankommende Information Stelle für
Stelle in das Register aufgenommen und liegt nach erfolgter Übernahme parallel zur
Weiterverarbeitung vor. Die Parallel-Serien-Umsetzung dient z.B. dazu, eine parallel
vorliegende Information Stelle für Stelle einem Übertragungskanal
aufzuschalten.
Das Schieberegister wird dabei für eine bestimmte Anzahl Positionen projektiert
(Registerlänge). An jeder Eingabestation können Informationen in das
Schieberegister eingespeist werden. In einem Schieberegister werden an beliebigen
Plätzen eingegebene Informationen durch einen Takt weitertransportiert. Die
Informationen können an beliebigen Ausgangsplätzen entnommen werden.
Die Verschiebung der Registerinhalte wird dabei nur scheinbar ausgeführt.
Tatsächlich aber wird nur ein Adresszeiger durch 0/1-Übergang des Schiebetaktes
verändert, auf den sich alle Bearbeitungspositionen der beteiligten Bausteine
beziehen.
Schieberegister können nur synchron aufgebaut werden.
Grundsätzlich kommen folgende Arten von Schieberegistern vor:






Einrichtungsschieberegister (Bit), vor- oder rückwärts, offen
Einrichtungsschieberegister (Wort), vor- oder rückwärts, offen
Zweirichtungsschieberegister (Bit), vor-/rückwärts, offen
Zweirichtungsschieberegister (Wort), vor-/rückwärts, offen
Einrichtungsschieberegister (Bit), vor- oder rückwärts, geschlossen
Einrichtungsschieberegister (Wort), vor- oder rückwärts, geschlossen


Zweirichtungsschieberegister (Bit), vor-/rückwärts, geschlossen
Zweirichtungsschieberegister (Wort), vor-/rückwärts, geschlossen
Die nachfolgend aufgeführten Schiebe- und Füllregister-Funktionsbausteine (FB)
werden u. a. bei der Massenfluss- und Stückgutverfolgung eingesetzt und wurden
im Strukturierten Text (ST) editiert.
Schieberegister (Wort), 12 Stufen, ZWSRI,
(vor/rück mit serieller Eingabe und paralleler Ausgabe, offen)
Der Baustein ZWSRI verwirklicht die Funktion eines Zweirichtungs-Schieberegisters
(INT) für 12 Stufen. Der Baustein eignet sich zur Serien-Parallelumsetzung von
INT- Informationen. Die zum Zeitpunkt des Schiebetakt- Eingangs CLOCK am
Informations-Eingang INF anstehende Date wird in das Register übernommen. Der
Richtungseingang V_R be stimmt, ob die eingelesene Information vorwärts (>=
Stufe_1) bzw. rückwärts (<=Stufe_12) geschoben wird. 0-Signal am Eingang V_R
bedeutet Schieben vorwärts, 1-Signal gibt die Rückwärtsrichtung frei. Liegt am
Informations-Eingang INF die Date INT und führt der Richtungs-Eingang V_R 0Signal, so hat nach dem 1. 0-1-Übergang am Schiebetakt- Eingang CLOCK der
Ausgang Stufe_1 die Date INT. Die übrigen Stufen (2 bis 12) bleiben unverändert.
Durch das 2. Schiebetakt-Signal am Eingang CLOCK führt der Ausgang Stufe_2,
Date INT. Mit jedem weiteren Schiebetakt am Eingang CLOCK werden
nacheinander die 3., 4. usw. Registerstufe auf den Wert der Date vom Type INT
gesetzt, d. h. die eingegebene Information an INF, Datentyp INT, wird mit jedem
Schiebetakt vorwärts weiter geschoben.
Bei 1-Signal am Richtungseingang V_R werden die eingelesenen Informationen in
Verbindung mit dem Schiebetakt-Eingang CLOCK taktsynchron ausgelesen. Es
können Werte im Bereich 0 bis 32767 am Informations-Eingang INF in Verbindung
mit dem Schiebetakt in das Register übernommen werden.
Der Inhalt des Schieberegisters wird durch den RESET- Eingang gelöscht.
Bild 1: Parameter-Beschreibung
Bild 3: Bausteinrumpf in ST, Teil 1
Bild 2: Bausteinkopf ZWSRI
Bild 4: Bausteinrumpf in ST, Teil 2
Bild 5: Anwendung ZWSRI Vor-/Rückwärts-Schieberegister, offline Status
Bild 6: Anwendung ZWSRI Vor-/Rückwärts-Schieberegister, online Status
Schieberegister (Bit), 16 Stufen, ZSVRG
(vor-/rückwärts mit paralleler Eingabe und serieller Ausgabe, geschlossen)
Der Baustein ZSVRG verwirklicht die Funktion eines ZweirichtungsSchieberegisters (Bit) für 16 Stufen. Der Baustein eignet sich zur ParallelSerienumsetzung von Bit- Informationen. Ein über die Eingänge IN_0 bis IN_11
voreingestelltes Bitmuster wird Baustein intern nach WORD konvertiert und mit
dem Übernahme-Eingang INFC auf die Ausgangsbitspur (Stufe_0 bis Stufe_15)
kopiert.
Wird nun der Richtungs-Eingang V_R auf 1-Signal gesetzt, so wird über den
Schiebetakt- Eingang CLOCK die Ausgangsbitspur um 1 Stufe vorwärts
verschoben. 0- Signal am Richtungs-Eingang V_R bewirkt, dass in Verbindung mit
dem Schiebetakt-Eingang CLOCK die Ausgangsbitspur um 1 Stufe rückwärts
verschoben wird. Mit jedem weiteren Schiebetakt am Eingang CLOCK werden in
Abhängigkeit des Richtungs-Eingangs nacheinander die In- halte der Registerstufen
taktsynchron vor- bzw. rückwärts rotierend geschoben; d. h. die eingelesenen BitInformationen gehen nicht verloren. Der Inhalt des Schieberegisters wird durch den
Eingang RESET drahtbruchsicher gelöscht.
Bild 7: Parameter-Beschreibung
Bild 8: Bausteinkopf ZSVRG
Bild 9: Bausteinrumpf in ST
Bild 10:
Anwendung 1
Bild 11: Anwendung 2
Im Bild 10 ist das Eingangs-Bitmuster (Eingänge IN_0 bis IN_11) erkennbar. Mit
dem Übernahme-Eingang INFC (0-1-Übergang) wird das Eingangsbitmuster auf die
Ausgangsbitspur (Stufe_0 bis Stufe_11) kopiert.
Im Bild 11 ist das Ausgangsbitmuster rotierend verschoben. Hierzu ist der
Richtungs-Eingang V_R auf 1 (vorwärts) bzw. 0-Signal (rückwärts) zu setzen. Mit
dem Schiebetakt (0-1-Übergang) am Eingang CLOCK wird in Verbindung mit dem
Richtungs-Eingang V_R das Rotieren für jeweils eine Stufe ausgelöst.
Füllregister
In zwei Sonderbauarten haben Füllregister in der Automatisierungstechnik eine
große Bedeutung erfahren. Im Bereich der Warenwirtschaft ist FIFO das übliche
Verfahren, da die- von der Warte des Periodenendes gesehen- ältesten (zuerst
gelagerten) Bestände auch nach Möglichkeit zuerst verbraucht werden sollten.
Ausnahmen bestehen beispielsweise bei der Lagerung von Schüttgütern, die nur
wieder von oben abgetragen werden können, also nach dem LIFO-Verfahren
betrachtet werden.
In einem Füllregister werden eingegebene Informationen so lange lückenlos
entsprechend der Reihenfolge ihrer Eingaben gespeichert, bis sie entnommen oder
gelöscht werden.
Durch eine 0/1-Flanke am Eingang „SET“ werden die Eingabedaten ins Füllregister
übernommen. Entsprechend der Reihenfolge der Eingabe können diese
Informationen dem Register wieder entnommen oder gelöscht werden (First In-First
Out).
Grundsätzlich kommen folgende Arten von Füllregistern vor:




Füllregister (Bit), First IN - First OUT
Füllregister (Wort), First IN - First OUT
Füllregister (Bit), Last IN - First OUT
Füllregister (Wort), Last IN - First OUT
FIFO-Speicher
In der Informatik bezeichnet First In - First Out, auch Silo-Speicher genannt, eine
spezielle Art Daten abzulegen und wieder abzurufen. Die Warteschlange (engl.
Queue) be- ruht auf dem FIFO Prinzip. Elemente werden in genau der Reihenfolge
abgerufen, in der sie zuvor abgelegt wurden.
Während beim normalen Schieberegister die Daten mit jedem
Taktsignal
nur
eine Stufe in Richtung Ausgang verschoben werden, „sinken“ sie im Silo-Speicher
ohne externen Takt auf den letzten noch freien Platz vor dem Ausgang. Dieser
„Bubble Through“- Mechanismus ist asynchron zu den Schreib- und Lesesignalen.
Eine Steuerlogik markiert, welche Registerplätze schon belegt sind und erzeugt
intern so viele Schiebesignale, dass die Daten aufschließen. Die Meldung „FULL“
zeigt an, wenn der Speicher voll ist. Dadurch wird die weitere Dateneingabe
gesperrt. Die Meldung „EMPTY“ signalisiert den leeren Silo- Speicher. Der FIFOSpeicher eignet sich als Pufferspeicher bei der Datenübertragung, wenn Sender
und Empfänger mit unterschiedlichen Geschwindigkeiten arbeiten.
Paletten-Durchlaufregallager z.B. werden als Pufferlager im Versand, im
Produktions- bereich sowie im Wareneingang eingesetzt. Die Lagerung erfolgt nach
dem FIFO-Prinzip. Lagergut mit Verfallsdatum oder Produktchargen sind leichter
zu überwachen.
LIFO-Speicher
LIFO-Speicher (Last In - First Out), auch Stapel-Speicher, Stack- oder
Kellerspeicher genannt, sind seriell organisierte Schreib-Lese-Speicher, die ein
Auslesen der Daten nur in der umgekehrten Reihenfolge des Einschreibens
erlauben. Beim Einschreiben, dem PUSH-Vorgang, sinken die Daten zum
Stapelgrund auf das zuletzt gespeicherte Wort. Beim Lesen, dem POP-Vorgang,
werden die Daten vom Stapelgrund zum Datenausgang angehoben. Eine
Steuerlogik ähnlich der beim FIFO-Speicher übernimmt die Steuerungsaufgaben.
Der Speicher entspricht einem Links-Rechts-Schieberegister. Die Daten werden
mit Links-Schiebeimpulsen gespeichert, mit Rechts-Schiebeimpulsen ausgelesen.
Paletten-Einschubregallager z. B. sind Platz sparende Pufferlager mit nur einem
Bediengang. Bei dieser Lagertechnik wird das Lagergut mit Hilfe eines
Beschickungsgerätes gegen die Neigung der Rollenbahn geschoben.
Bei der Auslagerung werden die nachfolgenden Paletten durch den
Entnahmevorgang des Staplers abgebremst. Paletten-Einschublager arbeiten
nach dem LIFO-Prinzip.
Füllregister (Bit), Last IN - First OUT, LIFO
Funktion Einlesen:
Dieser Baustein verwirklicht den Last IN – First OUT buffer für 12 Stufen. Immer
wenn das Eingangssignal an CLOCK aktiv ist (0-1-0-Übergang) und der
Richtungseingang V_R 0- Signal führt, wird die am Eingang DATA_IN anstehende
Bit-Information (0/1) auf die Position 1 des buffers kopiert (sichtbar Stufe_1) und
alle bereits im buffer enthaltenen Informationen werden um 1 Position aufwärts
„geshiftet“. Befinden sich 12 Informationen,
Datentyp BOOL, im buffer, wird die
zuerst eingelesene Information an Stufe_12 angezeigt.
Funktion Auslesen:
Ist das Eingangssignal an CLOCK aktiv (0-1-0-Übergang) und führt der
Richtungseingang V_R 1-Signal, wird der Inhalt von Stufe_1 in das Ausgabebit
DATA_OUT, Datentyp
BOOL, kopiert. Alle weiteren im buffer enthaltenen
Informationen (Stufe_2 bis Stufe_12) werden um 1 Position rückwärts „geshiftet“.
Die ausgelesenen Stufen werden mit FALSE, Datentyp BOOL, aufgefüllt. Befinden
sich 12 Informationen mit Inhalt FALSE, (Datentyp BOOL) im buffer, sind alle
eingeschriebenen 12 Informationen wieder ausgelesen.
Bild 12: Parameter-Beschreibung
Bild 13: Bausteinkopf LIFO
Bild 14: Bausteinrumpf in ST
Bild 15: Anwendung LIFO: Ist das Eingangssignal %IX1.0 an CLOCK aktiv (0-1-0-Übergang) und
führt der Richtungseingsng
V_R 1-Signal, wird 0-Signal auf die Position 12 des buffers kopiert
(sichtbar Stufe_12) und alle bereits im buffer enthaltenen
Informationen werden um 1 Position
rückwärts „geshiftet“. Befinden sich 12 Informationen (0-Signale) im buffer, sind alle zu- erst
eingelesenen Informationen wieder raus geschoben (sichtbar an Stufe_1).
Füllregister (Wort), FIFO, FIFO_SETGET
Der Baustein FIFO_SETGET besitzt zwei boolesche Eingänge SET und GET, um
einen Wert in das Queue- (Warteschlange) Register zu schreiben bzw. aus dem
Queue-Register lesen zu können. Das Queue-Register wird gelöscht, wenn RESET
= TRUE.
Der Parameter N_MAX definiert die maximale Anzahl von Elementen im QueueRegister. Wenn das Queue-Register voll ist (Anzahl der Elemente im QueueRegister = N_MAX / (Größe von (X)), dann wird FULL auf TRUE gesetzt. Keine
weiteren Elemente können in das Queue-Register abgelegt werden.
Wenn das Queue-Register leer ist (Anzahl der Elemente im Queue-Register = 0),
dann wird
EMPTY auf TRUE gesetzt. Die Funktion besitzt einen Eingang X und
einen Ausgang Y mit gleichen Datentypen (INT).
Bild 16: Parameter-Beschreibung
Bild 17: Bausteinkopf FIFO_SETGET
Bild 18: Bausteinrumpf in ST, Teil 1
Bild 19: Bausteinrumpf in ST, Teil 2
Fazit
Die Wiederverwendbarkeit von Automatisierungs-Software steht in der Liste der
Automatisierer ganz oben. Auf Basis des PLCopen Reusability Level ist dieses
Ziel
der
Wiederverwendung
von
anwendereigenen
Funktionen
und
Funktionsbausteinen auf unterschiedlichen Automatisierungsgeräten einen
entscheidenden Schritt näher gekommen. Allerdings sind einige Randbedingungen
einzuhalten. So müssen z. B. die Systeme, zwischen denen Funktionen und
Funktionsbausteine ausgetauscht werden sollen, selbst nach „PLCopen Reusability
Level“ zertifiziert sein.
Das Prinzip der Konvertierung eines anwendereigenen Funktionsbausteins vom
Hersteller
A später auf der SPS eines anderen Herstellers laufen zu lassen,
besteht darin, dass zunächst das Programm in ST geschrieben wird. Der
Strukturierte Text (ST) innerhalb der Norm IEC61131-3 bietet hier die
größtmögliche Menge an Übereinstimmungen zwischen
verschiedenen
SPS
Programmiersystemen. Die grafischen Sprachen FBS (Funktionsbausteinsprache),
CFC (Continuous Function Chart), KOP (Kontaktplan) und AS (Ablaufsprache)
gestalten sich da sehr viel schwieriger, da die Hersteller oftmals unterschiedliche
Zwischensprachen verwenden.
Bei Verwendung von ST ist der Austausch der Programme im ASCII-Format
wesentlich einfacher. Durch die systemeigenen ASCII- Export/Import Funktionen
wird der Austausch bei vielen Herstellern bereits jetzt schon unterstützt.
Die hier beschriebenen Schiebe- und Füllregister-Bausteine sind das Ergebnis
langjähriger Projektierungserfahrung des Autors. Der Test der Bausteine wurde mit
der virtuellen SPS innerhalb CoDeSys erfolgreich durchgeführt. Durch die
konsequente Nutzung offener Standards wie IEC61131-3 und PLCopen durch
Programmiersysteme wie z.B. CoDeSys (Hersteller: 3S-Smart Software Solutions)
oder MULTIPROG (Hersteller: KW-Software) sehen Bausteinrumpf und -kopf in
der Sprache ST deshalb auch nahezu identisch aus.
Text, Abbildungen und Programme wurden mit größter Sorgfalt erarbeitet. Für
eventuelle verbliebene fehlerhafte Angaben und deren Folgen übernimmt der
Autor weder eine juristische Verantwortung noch irgendeine Haftung. Die
vorliegende Publikation ist urheberrechtlich geschützt.
Jochen Petry
IBP Ingenieurbüro Petry
www.ibp-automation.de
Juli 2012