ADS-Interface

Sämtliche azyklischen Daten werden mit ADS-Read, ADS-Write oder ADS-Write-Control an die bzw. von der FC310x/EL6731 übertragen. Die FC310x/EL6731 hat eine eigene Net-ID und unterstützt die folgenden Ports:

Port

Beschreibung

200

damit wird die FC310x/EL6731 selbst adressiert, d.h. Daten, die lokal auf der FC310x/EL6731 liegen, bei denen in der Regel kein zusätzlicher Buszugriff nötig ist

0x1000 - 0x107E

damit wird ein angeschlossener PROFIBUS-Teilnehmer adressiert, wobei sich Adresse aus Port-0x1000 berechnet, es wird auch immer ein Buszugriff durchgeführt

ADS-Read

Es folgt eine Übersicht der von der FC310x/EL6731 unterstützten IndexGroup/IndexOffset bei ADS-Read.

IndexGroup bei lokaler Adressierung der FC310x/EL6731 (Port 200)

IndexGroup (Lo-Word)

IndexGroup (Hi-Word)

IndexOffset

Beschreibung FC310x

EL6731

0xF100

0x00

BYTE-Offset innerhalb der Daten

Damit werden die Diagnosedaten der FC310x/EL6731 ausgelesen. Wenn der ADS-Read ohne Fehler (Error-Code = 0) beantwortet wird, enthalten die Daten die im Kapitel Master-Diagnose beschriebenen Diagnosedaten der FC310x/EL6731. Die FC310x/EL6731 setzt dabei ihr DiagFlag zurück, das dann wieder gesetzt wird, wenn sich die Diagnosedaten der FC310x/EL6731 erneut ändern.

0xF181

0x00-0x7E

BYTE-Offset innerhalb der Daten

Damit werden die Diagnosedaten eines projektierten DP-Slaves ausgelesen, die Stationsadresse berechnet sich aus dem IndexGroup(Hi-Word). Wenn der ADS-Read ohne Fehler (Error-Code = 0) beantwortet wird, enthalten die Daten die im Kapitel Slave-Diagnose beschriebenen Diagnosedaten eines projektierten DP-Slaves.

0xF830

0x8000-0x807E

immer 0

Damit kann festgestellt werden, welche DP-Slaves am PROFIBUS vorhanden sind, unabhängig davon, ob sie projektiert wurden oder nicht, die Stationsadresse berechnet sich aus IndexGroup(Hi-Word)-0x8000. Wenn der ADS-Read ohne Fehler (Error-Code = 0) beantwortet wird, hat der entsprechende DP-Slave korrekt geantwortet, die Daten enthalten die Ident-Nummer des Slaves (BYTE-Offset 0-1) und die ausgelesenen CfgData (ab BYTE-Offset 2) (s. Kapitel Upload Configuration).

0xF840

0

0

Damit werden Firmware-Version und Stationsadresse der FC310x/EL6731 ausgelesen. Wenn der ADS-Read ohne Fehler (Error-Code = 0) beantwortet wird, enthalten die Daten die Firmware-Version (BYTE-Offset 0-1) und die Stationsadresse der FC310x/EL6731 (BYTE-Offset 2).

Damit wird Stationsadresse der EL6731 ausgelesen. Wenn der ADS-Read ohne Fehler (Error-Code = 0) beantwortet wird, enthalten die Daten eine Konstante (BYTE-Offset 0-1) und die Stationsadresse der EL6731 (BYTE-Offset 2).
Data[0] 0x45
Data[1] 0x23
Data[2] Adresse
Data[3] 0x00

PROFIBUS-Stationsadresse über ADSWRITE verändern (nur EL6731 und EL6731-0010)

Wird die Stationsadresse einmal über diesen Befehl gesetzt, wird sie im Flash der Klemme abgelegt. Eine Stationsadresse über die Init-Commands (Objekt 0x8000) wird dann ignoriert. Erst mit dem Wiederherstellen der Default-Parameter (Objekt 0x1011), wird die Adresse in 0x8000:01 (beim PROFIBUS Master 0xF800:01) wieder akzeptiert.

HINWEIS: Die EtherCAT-Klemme muss nach dem Schreiben der Stationsadresse einmal in INIT und zurück in OP gefahren werden, damit sie die neue Adresse übernimmt.
NetId der EL6731 oder EL6731-0010
Port: 200

IndexGroup (Lo-Word)

IndexGroup (Hi-Word)

IndexOffset

Länge (in Byte)

Beschreibung

0xF480

0x00

0 -2

4

Data[0]      0x45
Data[1]      0x23
Data[2]      PROFIBUS Adresse < 127
Data[3]      0x00

IndexGroup bei Adressierung eines projektierten PROFIBUS-Teilnehmers (Port 0x1000-0x107E)

IndexGroup (Lo-Word)

IndexGroup (Hi-Word)

IndexOffset

Beschreibung

0x00-0xFF

0x00

0x00-0xFF

Damit wird ein DPV1-Read an den entsprechenden, projektierten DPV1-Slave über eine Class 1-Verbindung gesendet, die DPV1-Slot-Nummer entspricht der IndexGroup, der DPV1-Index entspricht dem IndexOffset. Wenn der ADS-Read ohne Fehler (Error-Code = 0) beantwortet wird, enthalten die Daten die ausgelesenen DPV1-Daten (s. Kapitel DPV1)

0x100-0x1FF

0x00

0x00-0xFF

Damit wird ein DPV1-Read an den entsprechenden, projektierten DPV1-Slave über eine Class 2-Verbindung gesendet, die DPV1-Slot-Nummer entspricht der IndexGroup - 0x100, der DPV1-Index entspricht dem IndexOffset. Wenn der ADS-Read ohne Fehler (Error-Code = 0) beantwortet wird, enthalten die Daten die ausgelesenen DPV1-Daten (s. Kapitel DPV1)

0x0000 - 0xFFF

0x10000000 - 0xF0000000

0x00-0xFF

Damit wird ein PKW-Read an den entsprechenden, projektierten PROFIDRIVE-Slave gesendet, die Parameternummer (PNU) steht im Lo-Word der IndexGroup, der Sub-Index bei Zugriff auf ein Array steht im IndexOffset, die angesprochene Achse steht in den Bits 28-31 der IndexGroup (bei einem 1-Achser muss hier eine 1 stehen), in Bit 26,27 kann noch die PKW-Kompatibilität angepasst werden (leider sind nicht alle PROFIDRIVE-Slaves hier kompatibel, s. Kapitel PKW-Interface).

0

0x01000000

0

Damit wird FDL-Read für die Siemens AG-Kopplung an die entsprechende projektierte FDL-Station gesendet (nur FC310x, s. Dokumentation zu FC310x Kapitel S5-FDL). 

ADS-Write

Es folgt eine Übersicht der von der FC310x/EL6731 unterstützten IndexGroup/IndexOffset bei ADS-Write.

IndexGroup bei lokaler Adressierung der FC310x/EL6731 (Port 200)

IndexGroup (Lo-Word)

IndexGroup (Hi-Word)

IndexOffset

Beschreibung

0xF100

0x00

0 -2

Damit werden die Equidistant-Diagnosedaten (IndexOffset = 0), die Repeat-Counter (IndexOffset = 1) oder die NoAnswer-Counter (IndexOffset = 2) der FC310x/EL6731 zurückgesetzt.

IndexGroup bei Adressierung eines projektierten PROFIBUS-Teilnehmers (Port 0x1000-0x107E)

IndexGroup (Lo-Word)

IndexGroup (Hi-Word)

IndexOffset

Beschreibung

0x00-0xFF

0x00

0x00-0xFF

Damit wird ein DPV1-Write an den entsprechenden, projektierten DPV1-Slave über eine Class 1-Verbindung gesendet, die DPV1-Slot-Nummer entspricht der IndexGroup, der DPV1-Index entspricht dem IndexOffset (-> Kapitel DPV1).

0x100-0x1FF

0x00

0x00-0xFF

Damit wird ein DPV1-Write an den entsprechenden, projektierten DPV1-Slave über eine Class 2-Verbindung gesendet, die DPV1-Slot-Nummer entspricht der IndexGroup - 0x100, der DPV1-Index entspricht dem IndexOffset (-> Kapitel DPV1).

0x400

0x00

0x00

Damit wird ein DPV1-Abort an den entsprechenden, projektierten DPV1-Slave über eine Class 2-Verbindung gesendet, die Abort-Parameter befinden sich in den Daten (-> Kapitel DPV1).

0x0000 - 0xFFF

0x10000000 - 0xF0000000

0x00-0xFF

Damit wird ein PKW-Write an den entsprechenden, projektierten PROFIDRIVE-Slave gesendet, die Parameternummer (PNU) steht im Lo-Word der IndexGroup, der Sub-Index bei Zugriff auf ein Array steht im IndexOffset, die angesprochene Achse steht in den Bits 28-31 der IndexGroup (bei einem 1-Achser muss hier eine 1 stehen), in Bit 26,27 kann noch die PKW-Kompatibilität angepasst werden (leider sind nicht alle PROFIDRIVE-Slaves hier kompatibel, -> Kapitel PKW-Interface).

0

0x01000000

0

Damit wird FDL-Write für die Siemens AG-Kopplung an die entsprechende projektierte FDL-Station gesendet (nur FC310x, s. Dokumentation zu FC310x Kapitel S5-FDL). 

0

0x02000000

0

Damit wird ein SetSlaveAddress-Kommando an einen projektierten DP-Slave gesendet, wobei der DP-Slave mit der neuen Stationsadresse projektiert werden muss, die alte Stationsadresse ist dann am BYTE-Offset 0 der ADS-Write-Daten einzutragen. Weiterhin muss unter BYTE-Offset 1 und 2 die Ident-Nummer des Slaves stehen und unter BYTE-Offset 3, ob die Slave später noch einmal geändert werden darf (0) oder nicht (ungleich 0). Insgesamt sind also 4 Bytes ADS-Write-Daten zu übergeben.

ADS-ReadWrite

Es folgt eine Übersicht der von der FC310x/EL6731 unterstützten IndexGroup/IndexOffset bei ADS-ReadWrite.

IndexGroup bei Adressierung eines projektierten PROFIBUS-Teilnehmers (Port 0x1000-0x107E)

IndexGroup (Lo-Word)

IndexGroup (Hi-Word)

IndexOffset

Beschreibung

0x100-0x1FF

0x00

0x00-0xFF

Damit wird ein DPV1-Data_Transport an den entsprechenden, projektierten DPV1-Slave über eine Class 2-Verbindung gesendet, die DPV1-Slot-Nummer entspricht der IndexGroup - 0x100, der DPV1-Index entspricht dem IndexOffset (-> KapitelDPV1).

0x200

0x00

0x00

Damit wird ein DPV1-Initiate an den entsprechenden, projektierten DPV1-Slave über eine Class 2-Verbindung gesendet, die Initiate-Parameter befinden sich in den Daten (-> Kapitel DPV1).

ADS-WriteControl

Es folgt eine Übersicht der von der FC310x/EL6731 unterstützten ADS-Write-Control-Kommandos.

ADS-WriteControl bei lokaler Adressierung der FC310x/EL6731 (Port 200)

AdsState

DeviceState

State der FC310x/EL6731

Beschreibung

STOP (6)

0x00

RUN (5)

Damit wird die FC310x/EL6731 gestoppt, d.h. die Prozessdatenverbindungen zu allen DP-Slaves (Data_Exchange) werden abgebaut (mit SetPrm,Unlock).

RUN (5)

0x00

STOP (6)

Damit wird die FC310x/EL6731 nach einem Stoppen erneut gestartet, d.h. die Prozessdatenverbindungen zu allen DP-Slaves (Data_Exchange) werden wieder aufgebaut (normaler DP-Hochlauf).

ADS-WriteControl bei Adressierung eines projektierten PROFIBUS-Teilnehmer (Port 0x1000-0x107E)

AdsState

DeviceState

State der FC310x/EL6731

Beschreibung

STOP (6)

0x00

RUN (5)

Damit wird der Slave gestoppt, d.h. die Prozessdatenverbindung zu dem entsprechenden DP-Slave (Data_Exchange) wird abgebaut (mit SetPrm, Unlock).

RUN (5)

0x00

STOP (6)

Damit wird der Slave nach einem Stoppen erneut gestartet, d.h. die Prozessdatenverbindung zu dem entsprechenden DP-Slave (Data_Exchange) wird wieder aufgebaut (normaler DP-Hochlauf).

ADS-Fehlercodes

Der 32-Bit-ADS-Fehlercode besteht immer aus einem allgemeinen ADS-Fehlercode (Lo-Word, siehe ADS-Dokumentation) und einem FC310x/EL6731-spezifischen, eindeutigen Fehlercode (Hi-Word, -> Kapitel ADS-Fehlercodes). Die entsprechende Meldung wird auch im Logger des TwinCAT System Managers textuell angezeigt.