STEP 7 Professional V13.1 - Industry Online Support

STEP 7 Professional V13.1
BLKMOV: Bereich kopieren
BLKMOV: Bereich kopieren
Beschreibung
Mit der Anweisung "Bereich kopieren" kopieren Sie die Inhalte eines Speicherbereichs
(Quellbereich) in einen anderen Speicherbereich (Zielbereich). Der Kopiervorgang findet in
Richtung aufsteigender Adressen statt. Den Quell- und Zielbereich definieren Sie durch ANYZeiger.
Hinweis
In dieser Anweisung können Sie nur Datentypen verwenden, die auf einer CPU der Baureihe
S7-300/400 gültig sind.
Das folgende Bild zeigt das Prinzip des Kopiervorgangs:
Konsistenz der Quelldaten und der Zieldaten
Beachten Sie, dass während der Bearbeitung der Anweisung "Bereich kopieren" die
Quelldaten unverändert bleiben, da sonst die Konsistenz der Zieldaten nicht gewährleistet ist.
This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims
all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete
documentation can be found at:
/dokumentation/default.aspx?DocVersionId=74495465995&Language=de-DE&TopicId=67104518027
24.07.2016
STEP 7 Professional V13.1
BLKMOV: Bereich kopieren
Unterbrechbarkeit
Solange der Quellbereich nicht Teil eines Datenbausteins ist, der nur im Ladespeicher
vorhanden ist, gibt es keine Begrenzung der Schachtelungstiefe.
Bei Unterbrechung einer BLKMOV-Bearbeitung hingegen, bei der aus einem nicht
ablaufrelevanten DB kopiert wird, kann eine solche BLKMOV-Bearbeitung nicht mehr
eingeschachtelt werden.
Speicherbereiche
Mit der Anweisung "Bereich kopieren" können Sie die folgenden Speicherbereiche kopieren:
•
•
•
•
•
Bereiche eines Datenbausteins
Merker
Prozessabbild der Eingänge
Prozessabbild der Ausgänge
Nicht ablaufrelevante Datenbausteine
Allgemeine Regeln beim Kopieren
Quell- und Zielbereich dürfen sich nicht überlappen. Wenn der Quell- und der Zielbereich
unterschiedlich lang sind, wird nur bis zur Länge des kleineren Bereichs kopiert.
Wenn der Quellbereich kleiner als der Zielbereich ist, wird der Quellbereich komplett in den
Zielbereich geschrieben. Die restlichen Bytes des Zielbereichs bleiben unverändert.
Wenn der Zielbereich kleiner als der Quellbereich ist, wird der Zielbereich komplett
beschrieben. Die restlichen Bytes des Quellbereichs werden ignoriert.
Wenn ein Bereich vom Datentyp BOOL kopiert wird, muss die angegebene Länge des Bereichs
durch 8 teilbar sein, da sonst die Anweisung nicht ausgeführt wird.
Hinweis
Falls der tatsächlich vorhandene Ziel- oder Quellbereich kleiner als ein am Parameter SRCBLK
oder DSTBLK angegebener Ziel- oder Quellbereich ist, hängt das Verhalten vom CPU-Typ ab:
•
Für S7-300-CPUs gilt:
Es werden keine Daten übertragen. Am Parameter RET_VAL wird der Fehlercode W#16#837F
ausgegeben. Dieser Fehlercode muss in Ihrem Anwenderprogramm ausgewertet werden.
•
Für S7-400 V4-CPUs (V4, V4 H-CPU und V4.5. H-CPU) gilt:
Es werden keine Daten übertragen. Am Parameter RET_VAL wird der Fehlercode W#16#8122 bzw.
W#16#8323 ausgegeben. Dieser Fehlercode muss in Ihrem Anwenderprogramm ausgewertet
werden.
•
Für alle anderen S7-400-CPUs gilt:
Es werden Daten übertragen. Am Parameter RET_VAL wird der Fehlercode W#16#8122 bzw.
W#16#8323 ausgegeben. Dieser Fehlercode muss in Ihrem Anwenderprogramm ausgewertet
werden.
This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims
all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete
documentation can be found at:
/dokumentation/default.aspx?DocVersionId=74495465995&Language=de-DE&TopicId=67104518027
24.07.2016
STEP 7 Professional V13.1
BLKMOV: Bereich kopieren
Regeln beim Kopieren von Zeichenketten
Mit der Anweisung "Bereich kopieren" können Sie auch Quell- und Zielbereiche vom Datentyp
STRING kopieren. Wenn nur der Quellbereich vom Datentyp STRING ist, werden die Zeichen
kopiert, die tatsächlich in der Zeichenkette enthalten sind. Informationen über tatsächliche und
maximale Länge werden ebenfalls in den Zielbereich geschrieben. Wenn der Quell- und der
Zielbereich jeweils vom Datentyp STRING sind, wird die aktuelle Länge der Zeichenkette im
Zielbereich auf die Anzahl der tatsächlich kopierten Zeichen gesetzt.
Falls Sie die Informationen über die maximale und tatsächliche Länge einer Zeichenkette
kopieren wollen, geben Sie die Bereiche an den Parametern SRCBLK und DSTBLK in Bytes
an.
Regeln beim Kopieren von nicht ablaufrelevanten Datenbausteinen
Der Quellbereich kann auch in einem nicht ablaufrelevanten Datenbaustein im Ladespeicher
liegen. Datenbausteine, die nicht ablaufrelevant sind, werden mit dem Schlüsselwort
UNLINKED gekennzeichnet.
Wenn ein nicht ablaufrelevanter Datenbaustein mit der Anweisung "Bereich kopieren" in den
Arbeitsspeicher kopiert und gleichzeitig z. B. durch das Programmiergerät geladen wird, kann
die Bearbeitung der Anweisung um mehrere Millisekunden verzögert werden. Dies führt zu
einer Verlängerung des OB-Zyklus und kann zum Ansprechen der Zykluszeitüberwachung
führen.
Wenn mit der Anweisung "Bereich kopieren" ein nicht ablaufrelevanter Datenbaustein kopiert
wird und der Kopiervorgang unterbrochen wird, kann die Bearbeitung der Anweisung nicht
mehr fortgesetzt werden.
Falls auf Ihrer CPU die Anweisung "Aus Datenbaustein im Ladespeicher lesen" vorhanden ist,
müssen Sie diese Anweisung zum Lesen von nicht ablaufrelevanten Datenbausteinen im
Ladespeicher benutzen. Wenn Sie die Anweisung "Bereich kopieren" benutzen, wird der Fehler
W#16#8092 ausgegeben.
Syntax
Für die Anweisung "Bereich kopieren" wird die folgende Syntax verwendet:
SCL
BLKMOV(SRCBLK := <Operand>,
DSTBLK => <Operand>)
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "Bereich kopieren":
This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims
all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete
documentation can be found at:
/dokumentation/default.aspx?DocVersionId=74495465995&Language=de-DE&TopicId=67104518027
24.07.2016
STEP 7 Professional V13.1
BLKMOV: Bereich kopieren
Parameter
Deklaration
Datentyp
Speicherbereich
Beschreibung
SRCBLK
Input
ANY
E, A, M, D, L, P
Angabe des
Speicherbereichs, der kopiert
wird (Quellbereich).
DSTBLK
Output 1)
ANY
E, A, M, D, L, P
Angabe des
Speicherbereichs, in den
kopiert wird (Zielbereich).
INT
E, A, M, D, L, P
Fehlerinformationen
Funktionswert (RET_VAL)
1) Der Parameter DSTBLK ist als Output deklariert, muss aber in der Bausteinschnittstelle als InOut
deklariert werden.
Weitere Informationen zu den gültigen Datentypen finden Sie unter "Siehe auch".
Parameter RET_VAL
Die folgende Tabelle zeigt die Bedeutung der Werte des Parameters RET_VAL:
Fehlercode*
(W#16#...)
Erläuterung
0000
Kein Fehler
8092
Der Quell- oder Zielbereich liegt nur im Ladespeicher.
8xyy
Weitere Fehlerinformationen finden Sie unter "Siehe auch".
*Die Fehlercodes im Programmeditor können als Integer- oder Hexadezimalwert dargestellt werden. Informationen zur
Umschaltung der Anzeigeformate finden Sie unter "Siehe auch".
Beispiel
Das folgende Beispiel zeigt die Funktionsweise der Anweisung:
SCL
"Tag_RetVal" := BLKMOV(SRCBLK := P#M100.0 BYTE 10,
DSTBLK => P#DB1.DBX0.0 BYTE 10);
Die Anweisung kopiert 10 Bytes ab MB100 und schreibt diese in den DB1. Wenn ein Fehler
während des Kopiervorgangs auftritt, wird dessen Fehlercode in der Variable "Tag_RetVal"
ausgegeben.
Siehe auch
→ Übersicht über die gültigen Datentypen
→ SCL-Anweisungen eingeben
→ SCL-Anweisungen bearbeiten
This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims
all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete
documentation can be found at:
/dokumentation/default.aspx?DocVersionId=74495465995&Language=de-DE&TopicId=67104518027
24.07.2016
STEP 7 Professional V13.1
BLKMOV: Bereich kopieren
→ Fehlerauswertung mit dem Ausgangsparameter RET_VAL
→ Anzeigeformate im Programmstatus umstellen
This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims
all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete
documentation can be found at:
/dokumentation/default.aspx?DocVersionId=74495465995&Language=de-DE&TopicId=67104518027
24.07.2016