6-6
Führungskommunikation über Feldbus
Hat man den entsprechenden Subindex angefordert, wird ein Block mit
32 Byte zurückgeliefert. Die genaue Position des gewünschten Elements
innerhalb dieses Datenblocks kann wie folgt berechnet werden:
Erstes Byte = ((Element# * Datentyp) MOD 32) - Datentyp
Letztes Byte = ((Element# * Datentyp) MOD 32) - 1
MOD
Restwertbildung (Aus Gründen der Laufzeitoptimierung sollte
sie als Maskierung mit UND 31 (UND 0x0F) realisiert werden.)
Das erste Byte innerhalb des Datenblocks beginnt dabei mit der
Nummer 0.
Ist die Liste kürzer als 32 Byte oder nur teilweise oder gar nicht gefüllt, so
ist die zurückgelieferte Länge entsprechend kleiner bzw. gleich 0. Soll die
gesamte Liste ausgelesen werden, beginnt man bei Subindex 10 und liest
solange jeden nachfolgenden Subindex aus, bis die zurückgelieferte
Länge kleiner 32 Byte ist.
Hinweis: Bei CanOpen gibt es keine Möglichkeit eine Längenangabe
mit Wert 0 zurück zu liefern. In diesem Fall wird ein Fehler
erzeugt.
Schreiben von Listen-Parametern
Das Schreiben von Listen-Parametern unterscheidet sich vom Lesen
darin, dass immer nur auf den Subindex 10 zugegriffen wird. Beim
Versuch, auf größere Subindizes zu schreiben, wird ein Fehler erzeugt.
Wie beim Lesen kann immer nur eine begrenzte Anzahl je azyklischem
Zugriff geschrieben werden. Dabei bestimmt das erste Wort, ab welcher
Position innerhalb der Liste die Daten geschrieben werden sollen. Die
Positionsangabe erfolgt in Elementen, beginnend bei Element 1 (z. B.
würde bei der Angabe "4" bei einem Listen-Parameter vom Datentyp
"Wort" ab dem 4. Wort in die Liste geschrieben werden).
Nachfolgend werden dann die Daten gesendet, die in die Liste
eingetragen werden sollen. Die Anzahl der gesendeten Daten darf dabei
108 Byte nicht überschreiten.
Ist die Liste leer (Istlänge zu klein) oder wird versucht, über die Grenzen
der Listen hinaus zu schreiben, wird ein Fehler generiert. Die Istlänge
einer Liste kann mit Hilfe des Subindex 9 verändert werden.
Hinweis: Die Anzahl der gültigen Nutzdaten für eine azyklische
Übertragung ist aufgrund eines internen Puffers begrenzt auf
eine Maximallänge von 112 Byte pro Telegramm (bei Profibus
verteilt auf mehrere Kommunikationszyklen).
ECODRIVE Cs
DOK-ECODR3-MGP-01VRS**-FK02-DE-P