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:

ADS Interface 1:

Die NetId kann auch aus der Variablen InfoData.AmsNetId ausgelesen werden:

ADS Interface 2:

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
0x0002: Pre-Operational Status
0x0003: Bootstrap Status
0x0004: Safe-Operational Status
0x0008: Operational 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
0x0002: Pre-Operational Status
0x0003: Bootstrap Status
0x0004: Safe-Operational Status
0x0008: Operational Status

Zusätzlich können folgende Bits gesetzt werden:
0x0010: Fehlerstatus
0x0020: Ungültige VPRS( VendorId, Product Code, RevisionsNo oder SerialNo)
0x0040: Fehler beim Initialisierungskommando

BYTE

Link-Status eines EtherCAT-Slaves. Der Link-Status kann aus einer ODER-Verknüpfung der folgenden Bits bestehen:

 

0x0000: Link ok.
0x0001: Link nicht vorhanden
0x0002: Keine Kommunikation
0x0004: Link fehlt
0x0008: Zusätzlicher Link
0x0010: Port A
0x0020: Port B
0x0040: Port C
0x0080: Port D

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
0x0002: Pre-Operational Status
0x0003: Bootstrap Status
0x0004: Safe-Operational Status
0x0008: Operational Status

Zusätzlich können folgende Bits gesetzt werden:
0x0010: Fehlerstatus
0x0020: Ungültige VPRS( VendorId, Product Code, RevisionsNo oder SerialNo)
0x0040: Fehler beim Initialisierungskommando

BYTE

Link-Status eines EtherCAT-Slaves. Der Link-Status kann aus einer ODER-Verknüpfung der folgenden Bits bestehen:

 

0x0000: Link ok.
0x0001: Link nicht vorhanden
0x0002: Keine Kommunikation
0x0004: Link fehlt
0x0008: Zusätzlicher Link
0x0010: Port A
0x0020: Port B
0x0040: Port C
0x0080: Port D

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 +
Fehlerzähler von Port C +
Fehlerzähler von Port D +

}[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
subindex = 1

 

HIBYTE of LOWORD (0x0000yy00):

R/W

UINT8[n]

SDO Upload/Download Request. Das Objekt wird mit dem Index-Offset ausgewählt.

0x01

Complete
Access

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
(0x000000yy)

valueInfo = HIBYTE of LOWORD
(0x0000yy00)

R

 

SDO-Info-Entry-Beschreibung erhalten

Servo Drive over EtherCAT

 

 

 

 

0x0000F420

IDN = LOWORD(0x0000yyyy)

element = LOBYTE of HIWORD
(0x00yy0000) :

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
(0xy0000000)

Command Flag = Bit 8 of HIBYTE of HIWORD
(0xy0000000)