Herunterladen Inhalt Inhalt Diese Seite drucken

Bosch Rexroth IndraMotion MLC 13VRS Funktionsbeschreibung Seite 240

Vorschau ausblenden Andere Handbücher für Rexroth IndraMotion MLC 13VRS:
Inhaltsverzeichnis

Werbung

238/607
Bosch Rexroth AG
SPS-Programmierung
Zulässige Adressierung
Unzulässige Adressierung
Beispiel Compileranweisung
"pack_mode"
Programm:
StructInst.Out03 := 2#11110000; (* Zugriff auf Strukturelement *)
pt := ADR (StructInst); (* Zeiger-Initialisierung *)
pt^.Out02 := 16#FF00;
Programm:
pt2 := ADR (StructInst.Out01); (* Zeiger-Initialisierung *)
pt2 := pt + 3;
(* Offsetberechnung für 3. Stukturelement Out03 *)
pt2^:= 2#11110000; (* Zugriff auf Strukturelement per Zeiger *)
Je nachdem auf welcher Adresse das erste Byte der Struktur liegt (wird beim
Compiliervorgang festgelegt), ergibt sich für die folgenden Elemente der
Struktur eine unterschiedliche Anzahl von Füllbytes. Daher ist eine Adressbe‐
rechnung zur Laufzeit über die Basisadresse der Struktur und einen ent‐
sprechenden Offset nicht zuverlässig möglich.
Byte Alignment (packed):
Die Alignment-Methode "Byte-Aligned" (packed) kann bei der IndraMotion
MLC für ausgewählte Datenbereiche durch eine entsprechende Compiler-An‐
weisung (Pragma "pack_mode") bei der Strukturdeklaration erzwungen wer‐
den.
Programm:
{Attribute 'pack_mode' := '1'}
TYPE mystruct:
STRUCT
Enable
: BOOL;
Counter : INT;
Maxsize : BOOL;
MaxSizeReached : BOOL;
END_STRUCT
END_TYPE
In diesem Fall wird die Struktur im Speicher gepackt, d. h. ohne Füllbytes an‐
gelegt.
Bei einer gepackten Struktur ist die Pointeradressierung mit Adressberech‐
nung zur Laufzeit über die Basisadresse der Struktur und einen entsprechen‐
den Offset möglich.
Das Packen von Strukturen mit Hilfe der Compileranweisung
{pack_mode} bewirkt eine Verlangsamung der SPS-Programma‐
barbeitung in der IndraMotion MLC, da der Zugriff auf Wort- und
Doppelwort-Operanden jeweils byteweise erfolgt.
DOK-MLC***-FUNC****V13-AP06-DE-P
Rexroth IndraMotion MLC 13VRS Funktionsbeschreibung
(* Zugriff auf Strukturelement per Zeiger *)

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis