Das TwinCAT ADS Interface zum EAP Gerät
Das TwinCAT EAP Gerät stellt für andere Kommunikationspartner (z.B. virtuelle Feldgeräte oder Windows-Programme) ein TwinCAT ADS/AMS Interface zur Verfügung und agiert als ADS/AMS-Server. ADS steht für Automation Device Specification und beschreibt eine geräte- und feldbusunabhängige Schnittstelle. AMS steht für Automation MessageSpecification und ermöglicht es, zentrale und dezentrale Systeme zu adressieren wie PCs aber auch Buscontroller. ADS/AMS ist von Beckhoff spezifiziert worden und wird vom TwinCAT Router unterstützt. Nachrichten, die über die Rechnergrenze hinaus in einem Netzwerk verschickt werden, werden per TCP/IP übertragen.
Über dieses Interface kann auch der CANopen Kommunikationskanal SDO (Service Data Object) genutzt werden. Die SDOs dienen in erster Linie zum Lesen sowie schreiben der Parameter des CANopen Object Dictionary (OD). Die Übertragung von SDOs erfolgt als bestätigter Datentransfer in Form einer Punkt-zu-Punkt-Verbindung zwischen zwei Kommunikationspartnern und ist in ADS eingebettet:
Unter Verwendung der ADS Read oder ADS Write Kommandos auf den Port 0xFFFF und die NetID des EAP Gerätes (Tab „Protocol“) werden die Parameter bzw. die SDO-Beschreibung des CANopen OD gelesen oder geschrieben. Wie in der Tabelle aufgeführt, ist der Kommunikationskanal CANopen SDO folgendermaßen in das ADS Protokoll eingebettet:
CANopen SDO | ADS Command | Index Group | Index Offset | Bedeutung |
---|---|---|---|---|
SDO Upload | Read | 0xF302 | Index und Subindex eines SDO. Beispiel: Wenn der Complete Access = 1 ist, dann hat der Subindex keine Bedeutung | Data Type: UINT8[n] SDO Upload Request: |
SDO Download | Write | 0xF302 | Index und Subindex eines SDO. Beispiel: Wenn der Complete Access = 1 ist, dann hat der Subindex keine Bedeutung | Data Type: UINT8[n] SDO Download Request: |
SDO Information Get Object List | Read | 0xF3FC | Bit 16-31: Listentypen
Beispiele: 0x00000000: Liefert zu jedem Listentyp die Anzahl aller vorhandenen Objekte
0x00010000: Liefert die Indizes aller Objekte für den spezifizierten Listentyp zurück | Liefert die Indizes der Objekte zurück, die zu dem Listentyp gehören, der im Index Offset spezifiziert ist. Mögliche Listentypen sind: |
Data Type: UINT16[6] Wenn Listentyp = 0000: Element > 0 : Anzahl vorhandener Objekte, die zum n-ten Listentypen gehören | ||||
Data Type: UINT16[n] Wenn Listentyp > 0000: Element n>0: Der n‑te Objekteindex, der zu diesem Listentypen gehört | ||||
SDO Information Get Object Description | Read | 0xF3FD | Bit 16-31: Index | Lesen der SDO Beschreibung des vollständigen Objekts mit dem spezifizierten Index. |
SDO Information Get Entry Description | Read | 0xF3FE | Bit 16-31: Index Bit 0-7: Subindex | Lesen der SDO Beschreibung des einzelnen Eintrags mit dem spezifizierten Subindex, der zu dem Objekt mit dem spezifizierten Index gehört. |