Verwaltung, IndexGroup/-Offset Adresse

Um zu ermitteln, welche Instanzen einer Klasse vorhanden sind, kann über einen READ&WRITE Zugriff die Objektadresse des ersten Elements (IndexOffset = 0x0) abgefragt werden.

Zurückgegeben wird der IndexGroup und der IndexOffset. Wird als Adresse (0, 0) zurückgegeben, so existiert keine Instanz dieser Klasse.

Ist eine Instanz vorhanden, so können durch Inkrementieren des IndexOffsets alle weiteren vorhandenen Elemente der Instanz ermittelt werden.

Beispiel

example

Abfrage von Objekten

Abfrage der Objektadresse des 1.Kanals

IndexGroup =0x123900 zusammengesetzt aus

<CNC-Basis>

+ <Class = HLD>

+ <Attribut=Adresse>

0x20300

+ 0x3000

+ 0x600

Input : Channel = 1, Axis = 0

Output :IndexGroup = 0x123301, IndexOffset = 0x0

Abfrage der Objektadresse des 2.Kanals

<CNC-Basis>

+ <Class = HLD>

+ <Attribut=Adresse>

0x20300

+ 0x3000

+ 0x600

Input : Channel = 2, Axis = 0

Output :IndexGroup = 0x123302, IndexOffset = 0x0

Abfrage der 1.Achse der Plattform

<CNC-Basis>

+ <Class = HLD>

+ <Attribut=Adresse>

0x120300

+ 0x3000

+ 0x600

Input : Channel = 0, Axis = 1

Output :IndexGroup = 0x123300, IndexOffset = 0x1000

Abfrage der 2. Decoderachse im 1. Kanal

<CNC-Basis>

+ <Class = HLD>

+ <Attribut=Adresse>

0x120300

+ 0x2000

+ 0x600

Input : Channel = 1, Axis = 2

Output :IndexGroup = 0x122301, IndexOffset = 0x20000

Anzahl der Elemente einer Klasse

Die Anzahl der vorhandenen Elementtypen einer Instanz kann über den Werteinhalt des ersten Elements (IndexOffset = 0) abgefragt werden.

Zusätzlich beschreibt der Name dieses Elements die Instanz selbst.

Lageregler

Der Lageregler ist nicht kanalspezifisch, d.h. es gilt immer Kanal = 0. Die Achsen gehen von 1 bis zur Anzahl der konfigurierten Achsen.

Interpolator, Decoder, Bahnvorbereitung

Die Kanalnummer ist im Bereich [ 1; Anzahl konfigurierter Kanäle ] anzugeben.

Die Achsen sind kanalspezifisch und müssen im Bereich [0; <BAHN_BAVO_AXMAX>] liegen.

Channel, HLI-Treiber

Die Kanalnummer ist im Bereich [ 1; <Anzahl konfigurierter Kanäle> ] anzugeben.

Werden Achsen referenziert, so müssen diese im Bereich [ 1; <Anzahl der konfigurierten Achsen>] liegen.

Spindel

Für Spindeln wird als „Channel“-Eintrag der Spindelindex angegeben. Der Spindelindex geht von 0 bis zur Anzahl der konfigurierten Spindelachsen - 1.

Abfrage der Attribute der Elemente

Am Beispiel des Elements feedhold.enable im 1. Kanal wird die Abfrage veranschaulicht. Der IndexOffset des Elements ist 0x01. Es wird die Zusammensetzung der IndexGroup gezeigt; der IndexOffset des Elements ist unverändert.

Attribut Dateninhalt:

<CNC-Basis>

+ <Class = HLD>

+ <Attribut=Adresse>

<Kanal>

0x120300

+ 0x3000

+ 0x0

+ 1

Input : IndexGroup = 0x123301, IndexOffset = 0x01

Output : 0/1 (abhängig vom Datentyp des Elements)

Attribut Name:

<CNC-Basis>

+ <Class = HLD>

+ <Attribut=Adresse>

<Kanal>

0x120300

+ 0x3000

+ 0x100

+ 1

Input : IndexGroup = 0x123401, IndexOffset = 0x01

Output : feedhold.enable

Attribut Typ:

<CNC-Basis>

+ <Class = HLD>

+ <Attribut=Adresse>

<Kanal>

0x20300

+ 0x3000

+ 0x200

+ 1

Input : IndexGroup = 0x123501, IndexOffset = 0x01

Output : BOOLEAN

Attribut Länge in Byte:

<CNC-Basis>

+ <Class = HLD>

+ <Attribut=Adresse>

<Kanal>

0x120300

+ 0x3000

+ 0x300

+ 1

Input : IndexGroup = 0x123601, IndexOffset = 0x01

Output : 1

Attribut Einheit:

<CNC-Basis>

+ <Class = HLD>

+ <Attribut=Adresse>

<Kanal>

0x120300

+ 0x3000

+ 0x400

+ 1

Input : IndexGroup = 0x123701, IndexOffset = 0x01

Output : -

Attribut Schreibschutz:

<CNC-Basis>

+ <Class = HLD>

+ <Attribut=Adresse>

<Kanal>

0x120300

+ 0x3000

+ 0x500

+ 1

Input : IndexGroup = 0x123801, IndexOffset = 0x01

Output : 0