Hinweise zur Dokumentation

Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der Dokumentation und der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.
Das Fachpersonal ist verpflichtet, für jede Installation und Inbetriebnahme die zu dem Zeitpunkt veröffentlichte Dokumentation zu verwenden.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Wir behalten uns das Recht vor, die Dokumentation jederzeit und ohne Ankündigung zu überarbeiten und zu ändern.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.

Marken

Beckhoff®, TwinCAT®, EtherCAT®, EtherCAT G®, EtherCAT G10®, EtherCAT P®, Safety over EtherCAT®, TwinSAFE®, XFC®, XTS® und XPlanar® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

Patente

Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, EP1456722, EP2137893, DE102015105702
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

EtherCAT® ist eine eingetragene Marke und patentierte Technologie lizenziert durch die Beckhoff Automation GmbH, Deutschland.

Copyright

© Beckhoff Automation GmbH & Co. KG, Deutschland.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.


Übersicht

Das TwinCAT-Nockenschaltwerk kann als virtuelles Feldgerät (Automation Device) beschrieben werden. Es stellt für andere Kommunikationspartner (z.B. andere virtuelle Feldgeräte oder Windows-Programme) eine TwinCAT-ADS (Automation Device Specification) -Schnittstelle zur Verfügung, über die es parametriert oder abgefragt werden kann. Die Verwendung des ADS standardisiert den Zugriff auf das Nockenschaltwerk und reiht es in die Gruppe der verfügbaren virtuellen Feldgeräte ein.

Die READ und WRITE Operationen auf der Nockenschaltwerksschnittstelle erfolgen, wie durch ADS festgelegt, über zwei Indizes: der Index-Group (32bit) und dem Index-Offset (32bit).
Auf den nächsten Seiten wird die ADS-Schnittstelle des Nockenschaltwerks hinsichtlich der Gruppen- und Offsetindizes genauer beschrieben.


ADS Index Groups des Nockenschaltwerks

Die vier globalen Bereiche eines Nockenschaltwerks werden als vier Abschnitte in den Index-Groups wie folgt abgebildet:

Index-Group (0x = hex) | Index Group Beschreibung
0x00000000 0x00000FFF | Reserviert
0x00001000 | Nockenschaltwerk 1
0x00001001 | Encoder von Nockenschaltwerk 1
0x00001101 0x00001180 | Parameter der Nocken 1 - 128 von Nockenschaltwerk 1
0x00002000 0x00004000 | Nockenschaltwerk 2 - 4 (Option)
0x0000F000 0x0000FFFF | Allgemeine TwinCAT ADS-Systemdienste

Über einen zusätzlichen Index-Offset kann eine READ oder WRITE-Operation auf ein Element des angewählten Bereichs zugegriffen werden. Alle Dienste werden über Port 900 adressiert.
Die Beschreibung der einzelnen Bereiche, ihrer Elemente und der entsprechenden Index-Offsets erfolgt in den nächsten Abschnitten.


Index-Tabelle des Encoders

Index-Group | Index Offset | Zugriff | Datentyp | Phys.Einh. | Def.Bereich | Beschreibung
0x00001001 | 0x00000200 | R/W | UINT8[n] | - |  | Lesen bzw. Schreiben des gesamten Encoderdatensatzes
0x00001001 | 0x00000201 | R/W | UINT8[n] | 1/10 Grad |  | Nullpunktkorrektur, Maschinenkonfiguration
0x00001001 | 0x00000202 | R/W | UINT8[n] | 1/10 Grad |  | Dynamischer Positionsoffset (z.B. OT-Verschiebung)
0x00001001 | 0x00000210 | R/W | UINT8[n] | - | 1/2 | Boxadresse des Encoders


Index-Tabelle der Nockenschaltwerksparameter

Index-Group | Index Offset | Zugriff | Datentyp | Phys.Einh. | Def.Bereich | Beschreibung
0x00001000 | 0x00000000 | R/W | UINT8[n] | - |  | Lesen bzw. Schreiben der gesamten Nockenschaltwerksdaten
0x00001000 | 0x00000001 | R | UINT32 | - |  | Anzahl der aktuell parametrierten Nocken
0x00001000 | 0x00000002 | R/W | UINT8 | - | 0/1 | Boolsches Flag zum Aktivieren der Nockenberechnung
0x00001000 | 0x00000010 | R/W | UINT8 | - | 0/1 | Boolsches Flag für Drehrichtungsumkehr aktiv(ieren)
0x00001000 | 0x00000011 | R/W | UINT8 | - | 0/1 | Boolsches Flag für Encoderüberwachung aktiv(ieren)
0x00001000 | 0x00000012 | R/W | UINT8 | - | 0/1 | Boolsches Flag für Wellenbruchüberwachung aktiv(ieren)
0x00001000 | 0x00000013 | R/W | UINT8 | - | 0/1 | Boolsches Flag für Hubzahlüberwachung aktiv(ieren)
0x00001000 | 0x00000014 | R/W | UINT8 | - | 0/1 | Boolsches Flag für Status "Eingekuppelt"
0x00001000 | 0x00000020 | R/W | UINT8 | - | 0/1 | Boolsches Flag für Encoderfehler + Reset
0x00001000 | 0x00000021 | R/W | UINT8 | - | 0/1 | Boolsches Flag für Wellenbruch + Reset
0x00001000 | 0x00000022 | R/W | UINT8 | - | 0/1 | Boolsches Flag für Drehzahlfehler + Reset
0x00001000 | 0x00000031 | R/W | UINT32 | 1/min | 0-2000 | Toleranz für Hubzahlabweichung
0x00001000 | 0x00000032 | R/W | UINT32 | Ms | 0-65,535 s | Toleranzzeitraum für Hubzahlabweichung
0x00001000 | 0x00000033 | R/W | UINT32 | 1/min | 0-2000 | Aktuelle Hubzahl
0x00001000 | 0x00000034 | R/W | UINT32 | 1/min | 0-2000 | Hubzahlsollwert
0x00001000 | 0x00000035 | R/W | UINT32 | Ms | 0-65,535 s | Toleranzzeitraum für Wellenbruchfehler
0x00001000 | 0x00000100 | R/W | UINT32 | - |  | Odermaske zum Forcen der 32 Nockenbits
0x00001000 | 0x00000101 | R/W | UINT32 | - |  | Undmaske zum Forcen der 32 Nockenbits
0x00001000 | 0x00000301 | R/W | UINT32 | - |  | Zählwert von Zähler 1
0x00001000 | 0x00000302 | R/W | UINT32 | - |  | Zählwert von Zähler 2
0x00001000 | 0x00000303 | R/W | UINT32 | - |  | Zählwert von Zähler 3
0x00001000 | 0x00000304 | R/W | UINT32 | - |  | Zählwert von Zähler 4
0x00001000 | 0x00000305 | R/W | UINT32 | - |  | Zählwert von Zähler 5


Index-Tabelle der Nockenparameter

Index-Group | Index Offset | Zugriff | Datentyp | Phys.Einh. | Def.Bereich | Beschreibung
0x00001101 | 0x00000000 | R/W | UINT8[n] | - |  | Lesen bzw. Schreiben des gesamten Nockendatensatzes
0x00001101 | 0x00000001 | R | UINT8 | - | 0-3 | Nockentyp: 0-None, 1-Wegnocke, 2-Zeitnocke, 3-Bremsnocke, 4-Multizyklennocke
0x00001101 | 0x00000002 | R/W | UINT32 | Grad | 0-359 | Anfangswert (Wegnocke)
0x00001101 | 0x00000003 | R/W | UINT32 | Grad | 0-359 | Endwert (Wegnocke)
0x00001101 | 0x00000004 | R/W | UINT32 | - | 0-31 | Nockenspur
0x00001101 | 0x00000005 | R/W | UINT32 | 0,1 ms | 0-6553,5 ms | Vorhaltezeit für Nockendynamik
0x00001101 | 0x00000006 | R/W | UINT32 | 1/min | 1-65535 | Zählwert für Zählfunktion, Nocke ist jeden n-ten Hub aktiv; Bei Multizyklennocke: Anzahl der Zyklen in denen die Nocke den Wert "0" hält.
0x00001101 | 0x00000007 | R/W | UINT32 | Incr | 0-8192 | Encoderinkrementanzahl für Hysteresefunktion
0x00001101 | 0x00000008 | R/W | UINT32 | 0,1 ms | 0,1-6553,5 ms | Dauer (Zeitnocke)
0x00001101 | 0x00000009 | R/W | UINT32 | 0,1 ms | 0,1-6553,5 ms | Endwert (Bremsnocke)
0x00001101 | 0x00000010 | R/W | UINT8 | - | 0/1 | Boolsches Flag für vorwärts aktiv
0x00001101 | 0x00000011 | R/W | UINT8 | - | 0/1 | Boolsches Flag für rückwärts aktiv
0x00001101 | 0x00000012 | R/W | UINT8 | - | 0/1 | Boolsches Flag für Dynamikberechnung
0x00001101 | 0x00000013 | R/W | UINT8 | - | 0/1 | Boolsches Flag zum Laden des Zählers
0x00001101 | 0x00000014 | R/W | UINT8 | - | 0/1 | Boolsches Flag zum Aktivieren der Hysterese
0x00001101 | 0x00000015 | R | UINT8 | - | 0/1 | Status der externen Bremsfreigabe
0x00001101 | 0x00000016 | R/W | UINT8 | - | 0/1 | Forcen des Bremsbits
0x00001101 | 0x00000017 | R/W | UINT32 | - | 2-65535 | Nur bei Multizyklennocke: Anzahl der Zyklen in denen die Nocke den Zustand "1" hält.


Index-Tabellen des Nockenschaltwerks

TwinCAT ADS Device Cam

Index-Tabellen der TwinCAT ADS-Systemdienste

Index-Group | Index Offset | Zugriff | Datentyp | Phys.Einh. | Def.Bereich | Beschreibung
0x0000F003 | 0x00000000 | R&W | W:UINT8[n] R: UINT32 |  |  | GET_SYMHANDLE_BYNAME: Dem in den Write-Daten enthaltenen Namen wird ein Handle (Kennwert) zugewiesen und dem Aufrufer als Ergebnis zurückgereicht.
0x0000F004 | 0x00000000 | R&W W R | UINT8[n] UINT8[n] |  |  | READ_SYMVAL_BYNAME: Der Wert einer namentlich genannten Variablen wird aus dem Gerät gelesen. Bei dem Aufruf dieses Schreib-und-Lese-Dienstes werden die Variablennamen spezifiziert, die Antwort enthält den Variablenwert.
0x0000F005 | 0x00000000- 0xFFFFFFFFFF =symHandle | R/W | UINT8[n] |  |  | READ_/WRITE_SYMVAL_BYHANDLE: Den Wert, der durch 'symHdl' identifizierten Variable, lesen oder der Variablen einen Wert zuweisen. Der 'symHdl' muss vorher durch den GET_SYMHNADLE_BYNAME-Dienst ermittelt worden sein.
0x0000F006 | 0x00000000- 0xFFFFFFFFFF =symHandle | W | UINT32 |  |  | RELEASE_SYMHANDLE: Die in den Write-Daten enthaltene Kennzahl (Handle) für eine abzufragende benannte Variable wird freigegeben.


Prozessabbild des Nockenschaltwerks

Eingangsbereich:

Adress-offset | Datentyp | Phys.Einh. | Def.Bereich | Beschreibung
0x0000 | UINT32 |  |  | Alternativer Encodereingang (Nockenschaltwerk hat keinen privaten Feldbus)
0x0004 | UINT32 |  | 0/1 | Drehrichtung invertiert
0x0008 | UINT32 |  | 0/1 | Zustand: "Eingekuppelt"
0x000C | UINT32 |  |  | Hubzahlsollwert
0x0010 | UINT32 |  |  | Maximal zulässige Hubzahldifferenz zur Fehlerüberwachung
0x0014 | UINT32 |  | 0/1 | I/O-Fehler rücksetzen
0x0018 | UINT32 |  | 0/1 | Encoderfehler rücksetzen
0x001C | UINT32 |  | 0/1 | Wellenbruchfehler rücksetzen
0x0020 | UINT32 |  | 0/1 | Drehzahlfehler rücksetzen
0x0024 | UINT32 |  | 0/1 | Zählerfreigabe
0x0028 | UINT32 |  |  | Setzwert Zähler 1
0x002C | UINT32 |  |  | Setzwert Zähler 2
0x0030 | UINT32 |  |  | Setzwert Zähler 3
0x0034 | UINT32 |  |  | Setzwert Zähler 4
0x0038 | UINT32 |  |  | Setzwert Zähler 5
0x003C+n | UINT32 |  | 0/1 | Externe Bremsfreigabe (1 Bit je Nockenspur), n=(Ausgangsgruppen-1)
0x0040+n | UINT32 |  | 0/1 | "UND"-Maske für Nockenausgänge
0x0044+n | UINT32 |  | 0/1 | "Oder"-Maske für Nockenausgänge

Ausgangsbereich:

Adress-offset | Datentyp | Phys.Einh. | Def.Bereich | Beschreibung
0x0000 | UINT32 |  |  | Encoderwert unverarbeitet
0x0004 | UINT32 |  |  | Encoderwert in 0.1 Grad
0x0008 | UINT32 |  |  | Aktuelle Hubzahl
0x000C | UINT32 |  |  | Anzahl der konfigurierten Nocken
0x0010 | UINT32 |  |  | Anzahl der I/O-Fehler
0x0014 | UINT32 |  | 0/1 | Encoderfehler
0x0018 | UINT32 |  | 0/1 | Wellenbruchfehler
0x001C | UINT32 |  | 0/1 | Drehzahlfehler
0x0020 | UINT32 |  |  | Timeout Fehler 1 am privaten Feldbus
0x0024 | UINT32 |  |  | Timeout Fehler 2 am privaten Feldbus
0x0028 | UINT32 |  |  | Zähler 1
0x002C | UINT32 |  |  | Zähler 2
0x0030 | UINT32 |  |  | Zähler 3
0x0034 | UINT32 |  |  | Zähler 4
0x0038 | UINT32 |  |  | Zähler 5
0x003C+n | UINT32 |  | 0/1 | Eingänge am privaten Feldbus
0x0040+n | UINT32 |  | 0/1 | Nockenausgänge , n=(Ausgangsgruppen-1)