Herunterladen Inhalt Inhalt Diese Seite drucken

Alignment Bei E/A-Adressen - Bosch Rexroth IndraLogic L40 04VRS Bedienungs- Und Programmieranleitung

Inhaltsverzeichnis

Werbung

Bedien- und Programmieranleitung | Rexroth IndraLogic L40
04VRS
Beispiel zum Packen von Struktu‐
4.11.4

Alignment bei E/A-Adressen

Byte-Ad‐
IndraLogic V,
resse
IndraLogic VEP,
IndraLogic VPP,
IndraLogic L40
10
11
Abb.4-77:
Speicherbelegung
Durch die Angabe des Pragmas {pack} wird eine zur IndraLogic L40 kompatible
Ablage von Strukturen im Speicher erreicht. Der Zugriff auf die einzelnen Struk‐
turelemente kann dadurch genauso wie in der IndraLogic L40 erfolgen.
Programm:
ren
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;
Das Packen von Strukturen mit Hilfe der Compileranweisung {pack}
bewirkt eine Verlangsamung der SPS-Programmabarbeitung in der
IndraLogic L10/20, da der Zugriff auf Wort- und Doppelwort-Ope‐
randen jeweils byteweise erfolgt.
Der Prozessor der IndraLogic L10/L20 unterstützt hardwareseitig ein so ge‐
nanntes "Natural Alignment". Das heißt, die Speicherzugriffe sind dahingehend
optimiert, dass die Variablen auf Adressen abgelegt werden, die der Daten‐
breite des Datentyps entsprechen.
Die folgende Tabelle zeigt den Faktor für die optimale Startadresse, für den
jeweiligen Datentyp:
Datentyp
BYTE
WORD
DWORD
Abb.4-78:
Faktor für Startadressen
Bei der Deklaration von Variablen ohne Zuweisung einer E/A-Adresse gewähr‐
leistet der IndraLogic-Compiler ein optimales Alignment entsprechende der
dargestellten Tabelle.
Electric Drives
| Bosch Rexroth AG
and Controls
Projektieren und Programmieren
IndraLogic L10/L20 oh‐
IndraLogic L10/L20 mit
ne Pragma {pack}
Pragma {pack}
Element_04 (Byte 0)
Element_04 (Byte 1)
Faktor = Datenbreite (Byte)
1
2
4
81/213

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis