Herunterladen Inhalt Inhalt Diese Seite drucken

Bosch Rexroth IndraLogic L40 03VRS Bedienungs- Und Programmieranleitung Seite 87

Inhaltsverzeichnis

Werbung

IndraLogic L40 03VRS
DOK-CONTRL-IC*L40*****-AW02-DE-P
Die Struktur aus Abb. 4-77 wird bei den verschiedenen Systemen
folgendermaßen im Speicher abgelegt:
Byte-
IndraLogic L40
Adresse
0
Element_01
1
Element_02 (Byte 0)
2
Element_02 (Byte 1)
3
Element_02 (Byte 2)
4
Element_02 (Byte 3)
5
Element_03
6
Element_04 (Byte 0)
7
Element_04 (Byte 1)
8
9
10
11
Abb. 4-78: Speicherbelegung
Durch die Angabe des Pragmas {pack} wird eine zur IndraLogic L40
kompatible Ablage von Strukturen im Speicher erreicht. Der Zugriff auf
die einzelnen Strukturelemente kann dadurch genauso wie in der
IndraLogic L40 erfolgen.
VAR
str001: struct001;
len_struct001: INT := 0;
array001: ARRAY [0..15] OF BYTE;
ps001: POINTER TO BYTE;
pa001: POINTER TO BYTE;
i: INT := 0;
END_VAR
----------------------------------------------------------
len_struct001:=SIZEOF(str001);
str001.s001_byte1:=16#01;
str001.s001_DW:=16#05040302;
str001.s001_byte2:=16#06;
str001.s001_Word:=16#0807;
ps001:=ADR (str001);
pa001:=ADR (array001);
FOR i :=0 TO len_struct001 BY 1 DO
pa001^:=ps001^;
pa001:=pa001+1;
ps001:=ps001+1;
END_FOR;
Abb. 4-79: Beispiel zum Packen von Strukturen
Hinweis: Das Packen von Strukturen mit Hilfe der Compileranweisung
{pack} bewirkt eine Verlangsamung der SPS-Programm-
abarbeitung in der IndraLogic L20, da der Zugriff auf Wort-
bzw. Doppelwort-Operanden jeweils byteweise erfolgt.
Projektieren und Programmieren
IndraLogic L20
IndraLogic L20
ohne Pragma {pack}
mit Pragma {pack}
Element_01
Element_01
Füllbyte
Element_02 (Byte 0)
Füllbyte
Element_02 (Byte 1)
Füllbyte
Element_02 (Byte 2)
Element_02 (Byte 0)
Element_02 (Byte 3)
Element_02 (Byte 1)
Element_03
Element_02 (Byte 2)
Element_04 (Byte 0)
Element_02 (Byte 3)
Element_04 (Byte 1)
Element_03
Füllbyte
Element_04 (Byte 0)
Element_04 (Byte 1)
4-63

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis