ADS Interface
Azyklische Daten können über ADS-Read- oder ADS-Write-Kommandos zum oder vom EtherCAT-Gerät übertragen werden. Es ist möglich, mit den Mailboxen von EtherCAT-Slave-Geräten über ADS zu kommunizieren. Jedes EtherCAT-Gerät hat seine eigene Net-ID. Der Port hängt vom jeweiligen Ads-Dienst ab:
Port | Beschreibung |
---|---|
65535 (0xFFFF) | Allgemeine Ads-Dienste, die direkt vom Master gehandhabt werden. |
0x1 - 0xFFFE (feste Adresse eines Slave-Gerätes) | Dies ist ein Ads-Dienst, der sich an ein einzelnes Slave-Gerät richtet. Die Portnummer ist die gleiche wie die EtherCAT-Adresse |
Die NetId finden Sie im Eingabefeld "NetId" auf der Registerkarte EtherCAT des EtherCAT-Master-Geräts:
Die NetId kann auch aus der Variablen InfoData.AmsNetId ausgelesen werden:
Master Ads Port (0xFFFF)
In der folgenden Tabelle sind die vom EtherCAT-Master-Port (0xFFFF) unterstützten Ads-Kommandos aufgeführt:
Index Group | Index Offset | Zugriff | Datentyp | Beschreibung |
---|---|---|---|---|
0x00000003 | 0x00000100 | R | UINT16 | Gibt den aktuellen Status des Masters zurück. Die folgenden Werte werden von diesem Dienst zurückgegeben:
0x0000: Init Status |
0x00000003 | angeforderter Status | W |
| Status von Master anfordern. |
0x00000006 | 0x00000000 | R | UINT16 | Gibt die Anzahl der projektierten Slaves zurück. |
0x00000007 | 0x00000000 | R | UINT16[nSlaves] | Gibt die festen Adressen aller Slaves zurück. |
0x00000009 | 0x00000000 | R | { | Gibt den EtherCAT-Status und den Link-Status aller Slaves zurück: |
BYTE | EtherCAT-Status eines Slaves. Der Status kann einen der folgenden Werte annehmen:
0x0000: Init Status Zusätzlich können folgende Bits gesetzt werden: | |||
BYTE | Link-Status eines EtherCAT-Slaves. Der Link-Status kann aus einer ODER-Verknüpfung der folgenden Bits bestehen:
0x0000: Link ok. Beispiel: 0x0024 = Fehlender Link an Port B. | |||
}[nSlaves] |
| |||
0x00000009 | 0x00000001-0x0000FFFF (EtherCAT-Slave-Adresse) | R | { | Gibt den EtherCAT-Status des im Index-Offset angegebenen EtherCAT-Slaves zurück. |
BYTE | EtherCAT-Status eines Slaves. Der Status kann einen der folgenden Werte annehmen:
0x0000: Init Status Zusätzlich können folgende Bits gesetzt werden: | |||
BYTE | Link-Status eines EtherCAT-Slaves. Der Link-Status kann aus einer ODER-Verknüpfung der folgenden Bits bestehen:
0x0000: Link ok. Beispiel: 0x0024 = Fehlender Link an Port B. | |||
} |
| |||
0x00000009 | 0x00000001- 0x0000FFFF (EtherCAT-Slave-Adresse) | W | UINT16 | Abfrage eines neuen Zustands vom ausgewählten EtherCAT-Slave. |
0x00000011 | 0x00000001- 0x0000FFFF (EtherCAT-Slave-Adresse) | R | { | Gibt das CANopen Identity Objekt eines EtherCAT-Slave-Geräts zurück. |
UINT32 | Vendor Id | |||
UINT32 | Product Code | |||
UINT32 | Revisionsnummer | |||
UINT32 | Seriennummer | |||
} |
| |||
0x00000012 | 0x00000000 | R | { | Gibt die Crc-Fehlerzähler aller Slaves zurück. |
UINT32 | Crc Fehlerzähler von Port A + Fehlerzähler von Port B + | |||
}[nSlaves] |
| |||
0x00000012 | 0x00000001- 0x0000FFFF (EtherCAT-Slave-Adresse) | R | { | Gibt die Crc-Fehlerzähler des im Index-Offset angegebenen EtherCAT-Slaves zurück. |
UINT32 | Crc Fehlerzähler von Port A. | |||
UINT32 | Crc Fehlerzähler von Port B. | |||
UINT32 | Crc Fehlerzähler von Port C. | |||
UINT32 | Crc Fehlerzähler von Port D. | |||
} |
| |||
0x0000000C | 0 | R | { | Liefert Frame-Zähler und Zähler der "Lost Frames" |
UINT32 | Systemzeit | |||
UINT32 | Anzahl der vom Master gesendeten zyklischen Frames | |||
UINT32 | Anzahl der verlorenen zyklischen Frames | |||
UINT32 | Anzahl der vom Master gesendeten azyklischen Frames | |||
UINT32 | Anzahl der verlorenen azyklischen Frames | |||
} |
| |||
0x0000000C | 0 | W |
| Setzt die Frame-Zähler und die Zähler der "Lost Frames" zurück |
Slave Ads Port (0x1 - 0xFFFE)
In der folgenden Tabelle sind die Ads-Kommandos aufgeführt, die an ein EtherCAT-Slave-Gerät gesendet werden können. Die Portnummer ist identisch mit der festen Adresse des Slave-Geräts:
Index Group | Index Offset | Zugriff | Datentyp | Beschreibung | ||
---|---|---|---|---|---|---|
CANopen over EtherCAT |
|
|
|
| ||
0x0000F302 | Index und Subindex eines SDOs.
HIWORD(0xyyyy0000)= index LOBYTE(0x000000yy)= subindex Beispiel: 0x1c120001: index = 0x1c12
HIBYTE of LOWORD (0x0000yy00): | R/W | UINT8[n] | SDO Upload/Download Request. Das Objekt wird mit dem Index-Offset ausgewählt. | ||
0x01 | Complete | |||||
0x0000F3FC | Listentyp = HIWORD(0xyyyy0000)
Beispiel 0x00000000: Rückgabe der Länge der einzelnen Listentypen 0x00010000: Rückgabe der Indizes aller Objekte | R | { | Gibt die Indizes des im Index-Offset angegebenen Listentyps zurück. Wenn 0 als Index-Offset übergeben wird, wird die Länge jedes Listentyps zurückgegeben. | ||
UINT16 | Listentyp = 0 :Anzahl der Listentypen Listentyp > 0 :Listentyp | |||||
UINT16[n] | Listentyp = 0: Länge des Listentyps n+1 Listentyp > 0: Länge der ausgewählten Liste | |||||
} |
| |||||
0x0000F3FD | index = HIWORD(0xyyyy0000) | R |
| SDO-Info-Beschreibung erhalten | ||
0x0000F3FE | index = HIWORD(0xyyyy0000) subindex = LOBYTE of LOWORD valueInfo = HIBYTE of LOWORD | R |
| SDO-Info-Entry-Beschreibung erhalten | ||
Servo Drive over EtherCAT |
|
|
|
| ||
0x0000F420 | IDN = LOWORD(0x0000yyyy) element = LOBYTE of HIWORD | R/W | UINT8[n] | Upload/Download IDN | ||
0x01 | Daten-Status | |||||
0x02 | Name (read only) | |||||
0x04 | Attribut | |||||
0x08 | Einheit | |||||
0x10 | Minimum | |||||
0x20 | Maximum | |||||
0x40 | Wert | |||||
0x80 | Default | |||||
Drive Number = Bits 1-3 of HIBYTE of HIWORD Command Flag = Bit 8 of HIBYTE of HIWORD
|