Step 7 Was bedeutet diese Code?

Taste F1 drücken => da gibt es eine ausführliche Erklärung.

Mit Hilfe des SFC20 können im Anwenderprogramm Daten von einem Bereich in einen anderen kopiert werden.
Die Daten können dabei im Eingangs-, Ausgangs-, Merker-, oder Lokaldatenbereich liegen oder in einem Datenbaustein.

Die Datenbereiche werden im "ANY-Pointer-Format" angegeben. Folgende Information müssen Sie dabei dem Baustein übergeben:
P# Bereichskennung Byte.Bit Datentyp Wiederholfaktor

Beispiele:

AktualparameterBeschreibung
P# M 50.0 BYTE 10Deklariert den Speicherbereich von M50.0 bis M59.7
P# M 100.0 WORD 12Deklariert den Speicherbereich von M100.0 bisM123.7

Wenn Sie im Anwenderprogramm diesen Datentyp dynamisch anlegen wollen, finden Sie in der Online-Hilfe zu STEP 7 unter "Format:BLOCK, Parametertyp ANY" den Aufbau des ANY-Pointers beschrieben. Unter "ANY, Parameter: Beschreibung und Verwendung" finden Sie ein Beispiel, wie Sie den Datenbereich indirekt angeben können.
 
Grund dafür, dass der folgende Code mit P# beginnt?
Der Baustein arbeitet mit dem Dytentyp "ANY-Pointer". Das ist eine Art Zeiger-Datentyp mit möglicher Längenangabe (Anzahl Bytes) und kann einen beliebigen Speicherbereich demarkieren. Die Funktion des SFC20 ist schließlich einen nahezu beliebigen Speicherbereich auf einen anderen Speicherbereich zu kopieren.

In deinem Fall ist es mit P#DB10.DBX2560.0 mit Längenangabe 2 Byte (korrigiert Siehe Kommentar PN/DP unten)
Man könnte aber auch P#DB10.DB2560.0 BYTE 10 schreiben. Dann würden der Zeiger zehn Byte ab Adresse 2560.0 aus DB10 darstellen.
 
Zuletzt bearbeitet:
In deinem Fall ist es mit P#DB10.DBX2560.0 keine Längenangabe dabei weil der Zeiger nur auf einzelnes Bit zeigt.
Nein, die Länge wird in Step7 classic (bei Symbolen) nur nicht direkt angezeigt. Sie erscheint erst, wenn man den Mauszeiger drüberhält. Dann erscheint vermutlich ein Tooltiptext "P#DB10.DBX2506.0 / ... / Zugriffsbreite 2 Byte"
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Baustein arbeitet mit dem Dytentyp "ANY-Pointer". Das ist eine Art Zeiger-Datentyp mit möglicher Längenangabe (Anzahl Bytes) und kann einen beliebigen Speicherbereich demarkieren. Die Funktion des SFC20 ist schließlich einen nahezu beliebigen Speicherbereich auf einen anderen Speicherbereich zu kopieren.

In deinem Fall ist es mit P#DB10.DBX2560.0 mit Längenangabe 2 Byte (korrigiert Siehe Kommentar PN/DP unten)
Man könnte aber auch P#DB10.DB2560.0 BYTE 10 schreiben. Dann würden der Zeiger zehn Byte ab Adresse 2560.0 aus DB10 darstellen.
Danke für deine Antwort.
 
Falls du mehr über den Datentyp ANY-Zeiger wissen möchstest kann ich noch auf das sehr gute FAQ von Volker verweisen.
 
Zurück
Oben