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). |
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 |
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.