MOVE-Baustein in FUP
In Step7 befindet sich unter dem Knoten Verschieben der MOVE-Baustein. Mit diesem Baustein kann man Daten von einer Adresse zu einer anderen transferieren. Der Vorgang wird auch Laden und Transferieren genannt. So kann man beispielsweise Daten von einer Adresse für die Istwertanzeige am Display transferieren.
Der Vorgang beim Laden und Transferieren ist wie folgt:
- Die Daten werden von der Adresse in Akku 1 geladen
- Der ursprüngliche Inhalte von Akku 1 wird in Akku 2 verschoben
- Die Daten in Akku 2 gehen dabei verloren
- Die Daten von Akku 1 werden zu der angegebenen Adresse transferiert
Zum Laden und Transferieren kann man Adressen aus folgenden Bereichen benutzen:
- Eingänge
- Ausgänge
- Merker
- Zeiten
- Zählwerte
- Konstanten
- Datenbausteine
- Peripherie
- Variablen
Diese Adressen können dabei angegeben werden:
Der Datentyp in den Adressen kann dabei folgendes Format haben:
- INT
- DINT
- REAL
Funktionsweise des MOVE-Bausteins
Am Eingang IN wird die Adresse angegeben, wo sich die Daten zum Transferieren befinden. Dabei kann man eine maximale Länge von 32 Bits transferieren, was einem Doppelwort entsprechen würde. Am Ausgang OUT wird die Adresse angegeben, zu der die Daten transferiert werden sollen. Zum Laden und Transferieren von Daten mit dem Datentyp UDT oder STRUCT muss man die Systemfunktion SFC20 benutzen.
Soll das Laden und Transferieren an ein Freigabesignal geknüpft werden, kann man diesen am Eingang EN angeben. Somit würde der Baustein nur abgearbeitet werden, wenn das Freigabesignal vorliegt. Als Operanden kann eine Bitadresse aus dem Bereich E, A, M, D, L, T oder Z genutzt werden. Der Freigabeausgang ENO hat dasselbe Signal wie EN, es sei denn, während der Abarbeitung tritt ein Fehler auf. In dem Fall wird das BIE-Bit im Statuswort auf 0 gesetzt und der Freigabeausgang ENO hat dann ebenfalls 0. Nachgelagerte Bausteine würden in dem Fall nicht abgearbeitet werden.
Beim Verschieben mit dem MOVE-Baustein muss man beachten, dass neu hinzukommende Bitstellen mit Nullen gefüllt werden oder wenn weniger Bitstellen an der Zieladresse vorhanden sind, z.B. beim Verschieben von Doppelwortadresse in eine Byteadresse, dass die höherwertigen Bitstellen entfallen. Hierfür ein Beispiel:
Ein Wort wird in eine Byteadresse übertragen:
- Wort 1000 0101 1001 1010
- Ergebnis in der Byteadresse: 1001 1010
Ein Byte wird in eine Wortadresse übertragen:
- Byte 1001 1010
- Ergebnis in der Wortadresse: 0000 0000 1001 1010