Synchronisationsmodi eines EtherCAT-Slaves
Informationen für fortgeschrittene Anwender Die nachfolgenden Informationen sind für den üblichen Anwendungsfall nicht notwendig! Erweitertes Grundwissen über CoE (CAN over EtherCAT) und tieferes Verständnis des EtherCAT-Protokoll sind nötig, um die nachfolgenden Informationen verwerten zu können. |
Hinweis | |
Achtung! Manipulation der Parameter kann ungewünschte Effekte bewirken! Die unbedachte Manipulation der im Folgenden beschriebenen Parameter kann den EtherCAT-Slave in seiner Funktionalität behindern! |
Ein EtherCAT-Slave ist ein elektronisches Gerät, das in einem bestimmten Zeitabstand (Takt) immer gleichlaufende Abfolgen von Berechnungen und/oder Datenkopieraktionen durchführt. Dieser Arbeitstakt im EtherCAT-Slave (z. B. im Bereich von wenigen µs bis einigen ms) kann aus verschiedenen Quellen abgeleitet werden. Insbesondere ist es möglich, mehrere EtherCAT-Slaves und/oder den EtherCAT-Master synchron zu betreiben, z. B. über das Verfahren der Distributed Clocks. Entsprechende Beispiele wurden bereits auf der Einführungsseite zu den Distributed Clocks genannt.
Mit der Synchronisierung oder Abstimmung ist deshalb nicht eine physikalische Kopplung z. B. des Prozessortaktes elektronischer Geräte im MHz oder GHz-Bereich gemeint, sondern auf einer übergeordneten logischen Ebene werden Arbeitseinheiten nach den unten beschriebenen Parametern gestartet. Solche Arbeitseinheiten können sein: Ausgänge setzen, Eingänge lesen, Speicher kopieren, Berechnungen starten u.a.
Die folgenden Synchronisationsmodi werden in diesem Dokument beschrieben:
- Free Run - der EtherCAT-Slave ist nicht mit EtherCAT synchronisiert. Der Slave arbeitet autonom nach seinem eigenen Takt und insbesondere nicht synchron mit dem EtherCAT-Zyklus.
- Synchron mit SM Event - der EtherCAT-Slave ist mit dem SyncManager 2 (SM2) Event synchronisiert (wenn die zyklischen Ausgänge übertragen werden) oder mit dem SM3 Event (wenn nur die zyklischen Eingänge übertragen werden). Das SM2/SM3 Event wird vom SyncManager bei Bearbeitung eines durchlaufenden Frames ausgelöst.
- Synchron mit SYNC Event (Distributed Clocks) - der EtherCAT-Slave ist mit SYNC0 oder SYNC1 Event des Distributed-Clocks-System synchronisiert. Dieser Anwendungsfall wurde auf den voranstehenden Seiten ausführlich beschrieben.
Alle nachstehenden Parameter sind Objekte im CoE-Verzeichnis des EtherCAT-Slaves. Diese können online vom Slave ausgelesen werden oder offline über den Slave beschreibende XML-Datei ermittelt werden.
Präsenz der CoE-Objekte Auch wenn ein EtherCAT-Slave die nachstehend beschriebenen Verfahren unterstützt, muss er deshalb nicht unbedingt die beschriebenen Parameter für den Anwender oder den Master über ein CoE-Verzeichnis zugänglich gemacht haben! Nur EtherCAT-Slaves mit ausreichend "Intelligenz" verfügen über die Fähigkeit, ein CoE-Verzeichnis zu verwalten. |
Bestimmung des Synchronisationsmodus
Die unterschiedlichen Synchronisationsmodi können anhand der verschiedenen Kombinationen der Subindizes 0x1C32 und 0x1C33 bestimmt werden.
"--" innerhalb der Tabelle zeigt an, dass der Subindex entweder nicht benutzt wird, "0" sein kann oder nicht existiert.
| Sync Mode | Synchronization Type | Synchronization Type | Output Shift Time | Input Shift Time | Calc and Copy Time | Calc and Copy Time | Delay Time | Delay Time | Fixed SYNC0 Cycle Time |
---|---|---|---|---|---|---|---|---|---|---|
| 1 Free Run Mode | |||||||||
1 | Free Run | 0x00 | 0x00 | -- | -- | -- | -- | -- | -- | -- |
| 2 SM Event Mode | |||||||||
2 | SM2 * | 0x01 | 0x22 | -- | -- | -- | -- | -- | -- | -- |
2 | SM3 * | -- | 0x01 | -- | -- | -- | -- | -- | -- | -- |
3 | SM2, Shift Input Latch * | 0x01 | 0x22 | -- | !=0 ** | -- | !=0 | -- | -- | -- |
3 | SM3, Shift Input Latch * | -- | 0x01 | -- | !=0 ** | -- | !=0 | -- | -- | -- |
| 3 DC Mode | |||||||||
4 | DC | 0x02 | 0x02 | -- | -- | !=0 | !=0 | !=0 | -- | -- |
5 | DC, Shift Outputs Valid and Input Latch with Shift | 0x02 | 0x02 | !=0 ** | !=0 ** | !=0 | !=0 | !=0 | !=0 | -- |
5 | DC, Shift of Outputs Valid with SYNC1 | 0x03 | 0x02 | !=0 *** | !=0 ** | !=0 | !=0 | !=0 | !=0 | -- |
5 | DC, Shift of Input Latch with SYNC1 | 0x02 | 0x03 | !=0 ** | !=0 *** | !=0 | !=0 | !=0 | !=0 | -- |
| 4 Subordinated Application Controller Cycles | |||||||||
4 | DC, Shift Outputs Valid/ Input Latch | 0x03 | 0x02 or 0x03 | !=0 ** | !=0 ** | !=0 | !=0 | !=0 | !=0 | !=0 |
Tabelle 1: Bestimmung des Synchronisationsmodus
* Falls Ausgänge verfügbar sind, wird der Slave grundsätzlich mit dem SM2 Event synchronisiert. Falls keine Ausgänge verfügbar sind, wird der Slave mit dem SM3 Event synchronisiert.
** Veränderbar, wenn die Klemme mit variablen Shiftzeiten arbeiten kann
*** Shiftzeit kann überschrieben werden mit (SYNC1 Cycle Time + Delay Time)
Terminologie
Copy and Prepare Outputs
Mit einem Trigger Event (Local Timer Event, SM2/3 Event oder SYNC0/1 Event) werden Ausgangsdaten aus dem SyncManager Ausgangsdatenbereich gelesen und ggf. mathematische Berechnungen mit diesen Ausgangswerten durchgeführt. Danach wird das physikalische Ausgangssignal generiert und mit der "Outputs Valid" Kennzeichnung für den Prozess zur Verfügung gestellt.
"Copy and Prepare Outputs" beschreibt die Summe der Zeit für das Kopieren von Prozessdaten vom SyncManager in den lokalen Speicher, ggf. die Durchführung von weiteren mathematischen Berechnungen und Hardware-Verzögerungen (abhängig von der Implementierung einschließlich Software Verarbeitungszeit). Die einzelnen Zeiten werden nicht weiter bestimmt. Sie entsprechen den Werten die im SyncManager Objekt 0x1C32 beschrieben sind:
Beschriebene Zeit | SyncManager Objekt 0x1C32 |
---|---|
Kopieren von Prozessdaten aus dem SyncManager und mathematische Berechnungen | Calc and Copy Time (0x1C32:06) |
Hardware Verzögerungszeit | Delay Time (0x1C32:09) |
"Get and Copy Inputs"
"Get and Copy Inputs" summiert die Summe der Zeiten für Hardware-Verzögerungen beim Lesen des Eingangssignals, ggf. für die Ausführung von mathematischen Berechnungen und für den Kopiervorgang der Eingangsprozessdaten in den Eingangsdatenbereich des SyncManger 3. Die einzelnen Zeiten werden nicht weiter bestimmt. Sie entsprechen den Werten die im SyncManager Objekt 0x1C33 beschrieben sind:
Beschriebene Zeit | SyncManager Objekt 0x1C32 |
---|---|
Mathematische Berechnungen und Kopieren von Prozessdaten vom lokalen Speicher zum SyncManager | Calc and Copy Time (0x1C33:06) |
Hardware-Verzögerung bis zum "Input Latch" | Delay Time (0x1C33:09) |
Die Eingangswerte sind im Eingangsdatenbereich des SyncManger 3 nach der Min Cycle Time (0x1C32:05) verfügbar.
Outputs Valid
Mit dem "Outputs Valid"-Zeitpunkt sind die Ausgänge (z. B. als elektrisches Signal) für den Prozess verfügbar.
Start Driving Outputs
Beim "Start Driving Outputs"-Zeitpunkt hat der µC seine Ausgänge gesetzt. Die Hardware "Delay Time" (0x1C32:09) ist die Verzögerung zwischen "Start Driving Outputs" und "Outputs Valid"-Zeitpunkt.
Start Latch
Der "Start Latch"-Zeitpunkt kennzeichnet den Start des "Input Latch"-Prozesses. Zwischen "Start Latch"- und "Input Latch"-Zeitpunkt wird eine Verzögerung durch die Hardware, durch Abhängigkeiten bei der Slave-Implementierung, sowie durch Softwareverarbeitungszeit beschrieben und in der "Delay Time" 0x1C33:09 abgebildet.
Input Latch
Beim "Input Latch"-Zeitpunkt ist das Erfassen der Eingangsdaten abgeschlossen. Zu diesem Zeitpunkt sind evt. mathematische Berechnungen noch nicht durchgeführt und die Daten noch nicht in den Datenbereich des SyncManagers kopiert.
User Shift Time
Die "User Shift Time" beschreibt den Jitter des Masters.
SYNC1 Cycle Time
Die "SYNC1 Cycle Time" kann zur Verschiebung des "Start Input Latch" oder "Start Driving Outputs" verwendet werden. Die "SYNC1 Cycle Time" ist im Register 0x0984:0x0987 dargestellt. Sie beschreibt die die Verschiebung zwischen dem SYNC0 and SYNC1 Signal (SYNC0 ist immer das Referenzsignal)
Shift Time
Die "Shift Time" beschreibt die Zeit zwischen den Sync Events (SM2 Event, SM3 Event, SYN0, SYNC1) und dem Zeitpunkten "Outputs Valid" oder "Input Latch". Beschreibbarer Wert, falls der Slave die Verschiebung von "Outputs Valid" oder "Input Latch" unterstützt.
Betriebsart 1 - Free Run
Im "Free Run"- Modus wird der lokale Zyklus durch einen lokalen Timer-Interrupt des Application-Controllers ausgelöst. Die Zykluszeit kann vom Master geändert werden (optional) um den Timer-Interrupt zu ändern. Im "Free Run" -Modus arbeitet der lokale Zyklus unabhängig vom Kommunikationszyklus und /oder vom Master-Zyklus.
Optionale Features
Der Slave kann eine variable "Cycle Time" (0x1C32:02 veränderbar). In diesem Fall ist auch "Minimum Cycle Time" (0x1C32:05) variabel.
Die Tabellen "0x1C32 Free Run" and "0x1C33 Free Run" erläutern die Anwendung dieser Objekte im "Free Run"- Modus.
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r oder rw | erforderlich | 0x00: Free Run |
2 | Cycle Time | r oder rw | optional | Lokale Zyklus Zeit vom Application Controller |
3 | Shift Time | -- | -- |
|
4 | Synchronization Types supported | r | erforderlich | Bit 0: Free Run unterstützt |
5 | Minimum Cycle Time | r | bedingt | erforderlich falls 0x1C32:02 variabel |
6 | Calc and Copy Time | -- | -- |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | -- | -- |
|
9 | Delay Time | -- | -- |
|
10 | SYNC0 Cycle Time | -- | -- |
|
11 | Cycle Time Too Small | -- | -- |
|
12 | SM-Event missed | -- | -- |
|
13 | Shift Time Too Short | -- | -- |
|
14 | RxPDO Toggle Failed | -- | -- |
|
31:15 | -- | -- | -- |
|
32 | Sync Error | -- | -- |
|
Tabelle 2: 0x1C32 Free Run
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r or rw | erforderlich | 0x00: Free Run |
2 | Cycle Time | r or rw | optional | Gleicher Wert wie 0x1C32:02 |
3 | Shift Time | -- | -- |
|
4 | Synchronization Types supported | r | erforderlich | Gleicher Wert wie 0x1C32:04 |
5 | Minimum Cycle Time | r | bedingt | Gleicher Wert wie 0x1C32:05 |
6 | Calc and Copy Time | -- | -- |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | -- | -- |
|
9 | Delay Time | -- | -- |
|
10 | SYNC0 Cycle Time | -- | -- |
|
11 | Cycle Time Too Small | -- | -- |
|
12 | SM-Event missed | -- | -- |
|
13 | Shift Time Too Short | -- | -- |
|
14 | RxPDO Toggle Failed | -- | -- |
|
31:15 | -- | -- | -- |
|
32 | Sync Error | -- | -- |
|
Tabelle 3: 0x1C33 Free Run
Betriebsart 2 - Synchron mit SM Event
Der lokale Zyklus wird gestartet, wenn der SM2 Event [mit zyklischen Ausgängen] bzw. der SM3 Event [ohne zyklische Ausgänge] empfangen wird.
Wenn die Ausgänge zur Verfügung stehen, wird der Slave grundsätzlich auf den SM2 Event synchronisiert. Stehen keine Ausgänge zur Verfügung, wird der Slave auf den SM3 Event z. B. für zyklische Eingänge synchronisiert.
In dieser Betriebsart sind möglich
Synchron mit SM2/3 Event
Der lokale Zyklus wird gestartet, wenn der SM2/3 Event empfangen wird.
Die Tabellen "0x1C32 Synchron mit SM 2/3 Event" und "0x1C33 Synchron mit SM 2/3 Event" erläutern die Anwendung dieser Objekte im Modus "Synchron mit SM 2/3 Event".
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r oder rw | erforderlich | 0x01: Synchron – synchronisiert mit SM 2 Event |
2 | Cycle Time | r oder rw | optional | Kommunikationszykluszeit |
3 | Shift Time | -- | -- |
|
4 | Synchronization Types supported | r | erforderlich | Bit 1: Synchron SM unterstützt |
5 | Minimum Cycle Time | r | erforderlich |
|
6 | Calc and Copy Time | -- | -- |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | rw | bedingt**** |
|
9 | Delay Time | -- | -- |
|
10 | SYNC0 Cycle Time | -- | -- |
|
11 | Cycle Time Too Small | r | erforderlich |
|
12 | SM-Event Missed | r | optional |
|
13 | Shift Time Too Short | -- | -- |
|
14 | RxPDO Toggle Failed | r | optional |
|
31:15 | -- | -- | -- |
|
32 | Sync Error | r | bedingt | wird unterstützt, wenn "SM-Event Missed" Counter verwendet wird |
**** wird im Synchron Modus oder in DC Mode mit variabler Zykluszeit verwendet
Tabelle 4: 0x1C32 Synchron mit SM 2/3 Event
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r oder rw | erforderlich | 0x01: Synchron - synchronisiert mit SM 3 Event (wenn Übertragung der Eingänge in SAFE-OP und OP Status) 0x22: Synchron mit SM2 Event (wenn Übertragung der Ausgänge in SAFE-OP und OP Status) |
2 | Cycle Time | r or rw | optional | Gleicher Wert wie 0x1C32:02 |
3 | Shift Time | -- | -- |
|
4 | Synchronization Types supported | r | erforderlich | Gleicher Wert wie 0x1C32:04 |
5 | Minimum Cycle Time | r | erforderlich | Gleicher Wert wie 0x1C32:05 |
6 | Calc and Copy Time | -- | -- |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | rw | bedingt**** | Gleicher Wert wie 0x1C32:08 |
9 | Delay Time | -- | -- |
|
10 | SYNC0 Cycle Time | -- | -- |
|
11 | Cycle Time Too Small | r | erforderlich | Gleicher Wert wie 0x1C32:0B |
12 | SM-Event missed | r | optional | Gleicher Wert wie 0x1C32:0C |
13 | Shift Time Too Short | -- | -- |
|
14 | RxPDO Toggle Failed | r | optional | Gleicher Wert wie 0x1C32:0E |
31:15 | -- | -- | -- |
|
32 | Sync Error | r | bedingt | Gleicher Wert wie 0x1C32:20 |
**** wird im Synchron Modus oder in DC Modus mit variabler Zykluszeit verwendet
Tabelle 5: 0x1C33 Synchron mit SM 2/3 Event
Synchron mit SM2/3 Event, Verschiebung des "Input Latch"-Zeitpunktes
Die Eingangsdaten sollten so zeitnah wie möglich zum nächsten SM2/3 Event erfasst werden, um die aktuellsten Eingangsdaten dem Kontrollsystem (Master) zur Verfügung zu stellen. Dies kann mit der Verschiebung des "Input Latch"-Zeitpunktes näher an den SM2/3 Event durch Veränderung der "Shift Time" (0x1C33:03) erreicht werden.
Die Tabellen "0x1C32 Synchron mit SM 2/3 Event, Verschiebung Input Latch" und "0x1C33 Synchron mit SM 2/3 Event, Verschiebung Input Latch" erläutern die Anwendung dieser Objekte im Modus "Synchron mit SM 2/3 Event bei Verschiebung des "Input Latch".
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r or rw | erforderlich | 0x01: Synchron - synchronisiert mit SM 2/3 Event |
2 | Cycle Time | r or rw | optional | Kommunikationszykluszeit |
3 | Shift Time | -- | -- |
|
4 | Synchronization Types supported | r | erforderlich | Bit 1: Synchron SM unterstützt |
5 | Minimum Cycle Time | r | erforderlich |
|
6 | Calc and Copy Time | -- | -- |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | rw | bedingt**** |
|
9 | Delay Time | -- | -- |
|
10 | SYNC0 Cycle Time | -- | -- |
|
11 | Cycle Time Too Small | r | erforderlich |
|
12 | SM-Event missed | r | optional |
|
13 | Shift Time Too Short | -- | -- |
|
14 | RxPDO Toggle Failed | r | optional |
|
31:15 | -- | -- | -- |
|
32 | Sync Error | r | bedingt | wird unterstützt, wenn SM-Event Missed Counter verwendet wird |
**** wird im Synchron Modus oder in DC Modus mit variabler Zykluszeit verwendet
Tabelle 6: 0x1C32 Synchron mit SM 2/3 Event, Verschiebung "Input Latch"
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r or rw | erforderlich | 0x01: Synchron - synchronisiert mit SM 3 Event (wenn nur Eingänge verfügbar) 0x22: Synchron mit SM2 Event (wenn Ausgänge verfügbar) |
2 | Cycle Time | r or rw | optional | Gleicher Wert wie 0x1C32:02 |
3 | Shift Time | rw | erforderlich |
|
4 | Synchronization Types supported | r | erforderlich | Gleicher Wert wie 0x1C32:04 |
5 | Minimum Cycle Time | r | erforderlich | Gleicher Wert wie 0x1C32:05 |
6 | Calc and Copy Time | r | erforderlich |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | rw | bedingt**** | Gleicher Wert wie 0x1C32:08 |
9 | Delay Time | -- | -- |
|
10 | SYNC0 Cycle Time | -- | -- |
|
11 | Cycle Time Too Small | r | erforderlich | Gleicher Wert wie 0x1C32:0B |
12 | SM-Event missed | r | optional | Gleicher Wert wie 0x1C32:0C |
13 | Shift Time Too Short | -- | -- |
|
14 | RxPDO Toggle Failed | r | optional | Gleicher Wert wie 0x1C32:0E |
31:15 | -- | -- | -- |
|
32 | Sync Error | r | bedingt | Gleicher Wert wie 0x1C32:20 |
**** wird im Synchron Modus oder in DC Modus mit variabler Zykluszeit verwendet
Tabelle 7: 0x1C33 Synchron mit SM 2/3 Event, Verschiebung "Input Latch"
Betriebsart 3 - DC Modus (Distributed Clock Modus)
Die Synchronisierung mehrerer EtherCAT-Slaves untereinander und mit dem EtherCAT-Master wurde auf den vorangehenden Seiten bereits praxisnah beschrieben. Hier folgen nun Angaben über die internen Parameter in den Betriebsarten
DC Modus (Synchron mit SYNC0 Event )
Der lokale Zyklus wird gestartet wenn der SYNC0 Event empfangen wird. Der Prozessdatenrahmen muss im Slave komplett verarbeitet werden bevor der nächste SYNC0 Event empfangen wird.
Die Tabellen "0x1C32 DC Modus" und "0x1C33 DC Modus" erläutern die Anwendung dieser Objekte im DC Modus.
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r or rw | erforderlich | 0x02: DC SYNC0 – synchronisiert mit SYNC0 Event |
2 | Cycle Time | r | optional | SYNC0 Zykluszeit (Register 0x09A3:0x09A0) Zeit zwischen zwei SYNC0 Events |
3 | Shift Time | -- | -- |
|
4 | Synchronization Types supported | r | erforderlich | Bit 3:2 : DC unterstützt: |
5 | Minimum Cycle Time | r | erforderlich |
|
6 | Calc and Copy Time | r | erforderlich |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | rw | bedingt**** |
|
9 | Delay Time | r | erforderlich |
|
10 | SYNC0 Cycle Time | -- | -- |
|
11 | Cycle Time Too Small | r | erforderlich |
|
12 | SM-Event missed | r | optional |
|
13 | Shift Time Too Short | -- | -- |
|
14 | RxPDO Toggle Failed | r | optional |
|
31:15 | -- | -- | -- |
|
32 | Sync Error | r | bedingt | wird unterstützt, wenn SM-Event Missed Counter verwendet wird |
**** wird im Synchron Modus oder in DC Modus mit variabler Zykluszeit verwendet
Tabelle 8: 0x1C32 DC Modus
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r | erforderlich | 0x02: DC SYNC0 – synchronisiert mit SYNC0 Event |
2 | Cycle Time | r | optional | Gleicher Wert wie 0x1C32:02 |
3 | Shift Time | -- | -- |
|
4 | Synchronization Types supported | r | erforderlich | Gleicher Wert wie 0x1C32:04 |
5 | Minimum Cycle Time | r | erforderlich | Gleicher Wert wie 0x1C32:05 |
6 | Calc and Copy Time | r | erforderlich |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | rw | bedingt**** | Gleicher Wert wie 0x1C32:08 |
9 | Delay Time | -- | -- |
|
10 | SYNC0 Cycle Time | -- | -- |
|
11 | Cycle Time Too Small | r | erforderlich | Gleicher Wert wie 0x1C32:0B |
12 | SM-Event missed | r | optional | Gleicher Wert wie 0x1C32:0C |
13 | Shift Time Too Short | -- | -- |
|
14 | RxPDO Toggle Failed | r | optional | Gleicher Wert wie 0x1C32:0E |
31:15 | -- | -- | -- |
|
32 | Sync Error | r | bedingt | Gleicher Wert wie 0x1C32:20 |
**** wird im Synchron Modus oder in DC Modus mit variabler Zykluszeit verwendet
Tabelle 9: 0x1C33 DC Modus
DC Modus, Verschiebung von "Outputs Valid" und /oder "Input Latch"
Der "Outputs Valid"-Zeitpunkt kann entweder durch die "Shift Time" (0x1C32:03 = 0x02) oder den SYNC1 Event (0x1C32:01 = 0x03) verzögert werden. Die "Shift Time" beschreibt die Zeit zwischen dem SYNC0 Event und "Outputs Valid"-Zeitpunkt während die SYNC1 Zykluszeit die Zeit bis zum "Start Driving Outputs"-Zeitpunkt beschreibt.
Der "Input Latch"-Zeitpunkt kann entweder durch die "Shift Time" (0x1C33:03 = 0x02) oder den SYNC1 Event (0x1C33:01 = 0x03) verzögert werden. In diesem Fall beschreibt die "Shift Time" die Zeit zwischen dem SYNC0 Event und "Input Latch"-Zeitpunkt während die SYNC1 Zykluszeit die Zeit bis zum "Start Latch"-Zeitpunkt beschreibt.
Das SYNC1 Signal kann entweder zur Verschiebung des "Outputs Valid"- oder "Input Latch"-Zeitpunkt verwendet werden.
Die Tabellen "0x1C32 DC Modus, Verschiebung der Eingänge/Ausgänge" und "0x1C33 DC Modus, Verschiebung der Eingänge/Ausgänge" erläutern die Anwendung dieser Objekte im DC Modus bei Verschiebung der Eingänge/Ausgänge.
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r or rw | erforderlich | Wenn "Shift Time" zur Verzögerung des "Outputs Valid"-Zeitpunktes verwendet wird: Wenn "SYNC1" Signal zur Verzögerung des "Outputs Valid"-Zeitpunktes verwendet wird: |
2 | Cycle Time | r | erforderlich | SYNC0 Zykluszeit (Register 0x09A3:0x09A0) Zeit zwischen zwei SYNC0 Events |
3 | Shift Time | r or rw | erforderlich | Eintrag beschreibbar, wenn "Shift Time" zur Verschiebung des "Outputs Valid"-Zeitpunktes verwendet wird Wenn SYNC1 zur Verschiebung des "Outputs Valid"-Zeitpunktes verwendet wird, kann die SYNC1 Zykluszeit + Verzögerungszeit [Delay Time (0x1C32:09)] von der Slave Anwendung in diesen Eintrag kopiert werden. |
4 | Synchronization Types supported | r | erforderlich | Bit 3:2 : DC unterstützt:
Wenn "Shift Time" zur Verschiebung des "Outputs Valid"-Zeitpunktes verwendet wird: Wenn "SYNC1" Signal zur Verschiebung des "Outputs Valid"-Zeitpunktes verwendet wird: |
5 | Minimum Cycle Time | r | erforderlich |
|
6 | Calc and Copy Time | r | erforderlich |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | rw | bedingt**** |
|
9 | Delay Time | r | erforderlich |
|
10 | SYNC0 Cycle Time | -- | -- |
|
11 | Cycle Time Too Small | r | erforderlich |
|
12 | SM-Event missed | r | optional |
|
13 | Shift Time Too Short | r | optional |
|
14 | RxPDO Toggle Failed | r | optional |
|
31:15 | -- | -- | -- |
|
32 | Sync Error | r | bedingt | wird unterstützt, wenn "SM-Event Missed" oder "Shift Time Too Short " Counter verwendet wird |
**** wird im Synchron Modus oder in DC Modus mit variabler Zykluszeit verwendet
Tabelle 10: 0x1C32 DC Modus, Verschiebung der Eingänge/Ausgänge
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r or rw | erforderlich | Wenn "Shift Time" zur Verzögerung des "Input Latch"-Zeitpunktes verwendet wird: Wenn "SYNC1" Signal zur Verzögerung des "Input Latch"-Zeitpunktes verwendet wird: |
2 | Cycle Time | r | erforderlich | Gleicher Wert wie 0x1C32:02 |
3 | Shift Time | r or rw | erforderlich | Eintrag beschreibbar, wenn "Shift Time" zur Verschiebung des "Input Latch"-Zeitpunktes verwendet wird Wenn SYNC1 zur Verschiebung des "Input Latch"-Zeitpunktes verwendet wird, kann die SYNC1 Zykluszeit + Verzögerungszeit [Delay Time (0x1C33:09)] von der Slave Anwendung in diesen Eintrag kopiert werden. |
4 | Synchronization Types supported | r | erforderlich | Bit 3:2 : DC unterstützt:
Wenn "Shift Time" zur Verschiebung des "Input Latch"-Zeitpunktes verwendet wird: Wenn "SYNC1" Signal zur Verschiebung des "Outputs Valid"-Zeitpunktes verwendet wird: |
5 | Minimum Cycle Time | r | erforderlich | Gleicher Wert wie 0x1C32:05 |
6 | Calc and Copy Time | r | erforderlich |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | rw | bedingt**** | Gleicher Wert wie 0x1C32:08 |
9 | Delay Time | r | bedingt | Wird verwendet, wenn "SYNC1" Signal zur Verschiebung des "Input Latch"-Zeitpunktes verwendet wird |
10 | SYNC0 Cycle Time | -- | -- |
|
11 | Cycle Time Too Small | r | erforderlich | Gleicher Wert wie 0x1C32:0B |
12 | SM-Event missed | r | optional | Gleicher Wert wie 0x1C32:0C |
13 | Shift Time Too Short | r | optional | Gleicher Wert wie 0x1C32:0D |
14 | RxPDO Toggle Failed | r | optional | Gleicher Wert wie 0x1C32:0E |
31:15 | -- | -- | -- |
|
32 | Sync Error | r | bedingt | Gleicher Wert wie 0x1C32:20 |
**** wird im Synchron Modus oder in DC Modus mit variabler Zykluszeit verwendet
Tabelle 11: 0x1C33 DC Modus, Verschiebung der Eingänge/Ausgänge
Distributed Clocks - Applikation mit untergeordnetem Controller Zyklus
Bei Slaves mit schnellen lokalen Zykluszeiten (z. B. Control Loops) kann die Zykluszeit des Applikationscontrollers deutlich schneller sein als die Kommunikationszykluszeit und/oder die SYNC0 Zykluszeit. Ein Anwendungsfall sind die Beckhoff XFC-Oversampling-Klemmen.
In diesem Fall werden zwei Synchronisationsfeatures angewendet:
- Verschiebung des "Outputs Valid"-Zeitpunktes
- Verschiebung des "input Latch"-Zeitpunktes
DC, untergeordneter µC Zyklus, Verschiebung von "Outputs Valid" und/oder "Input Latch"
Das "SYNC0" Signal wird als Trigger des lokalen µC Zyklus verwendet. Der "Outputs Valid"- und "Input Latch"-Zeitpunkt wird vom SYNC1 Event getriggert und kann nur von der "Output Shift Time" oder "Input Shift Time" verschoben werden.
Die Tabellen "0x1C32 DC Modus, untergeordnete µC Zyklen, Verschiebung der Eingänge/Ausgänge" und "0x1C33 DC Modus, untergeordnete µC Zyklen, Verschiebung der Eingänge/Ausgänge" erläutern die Anwendung dieser Objekte im DC Modus bei untergeordneten µC Zyklen und Verschiebung des "Outputs Valid"/"Input Latch"-Zeitpunktes.
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r or rw | erforderlich | 0x03: DC SYNC1 – synchronisiert mit SYNC1 Event |
2 | Cycle Time | r or rw | erforderlich | SYNC1 Zykluszeit (Register 0x09A7:0x09A4) Zeit zwischen zwei SYNC1 Events SYNC1 Zykluszeit kann von der Slave Anwendung in diesen Eintrag kopiert werden. |
3 | Shift Time | rw | optional |
|
4 | Synchronization Types supported | r | erforderlich | Bit 3:2 : DC unterstützt:
Bit 5:4: Shift Einstellungen 00 = Keine Ausgangszeitverschiebung |
5 | Minimum Cycle Time | r | erforderlich |
|
6 | Calc and Copy Time | r | erforderlich |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | rw | bedingt**** |
|
9 | Delay Time | r | erforderlich |
|
10 | SYNC0 Cycle Time | r | erforderlich |
|
11 | Cycle Time Too Small | r | erforderlich |
|
12 | SM-Event missed | r | optional |
|
13 | Shift Time Too Short | r | optional |
|
14 | RxPDO Toggle Failed | r | optional |
|
31:15 | -- | -- | -- |
|
32 | Sync Error | r | bedingt | wird unterstützt, wenn "SM-Event Missed" oder "Shift Time Too Short " Counter verwendet wird |
**** wird im Synchron Modus oder in DC Modus mit variabler Zykluszeit verwendet
Tabelle 12: 0x1C32 DC Modus, untergeordnete µC Zyklen, Verschiebung der Eingänge/Ausgänge
Subindex | Beschreibung | Flag | Verwendung | Beschreibung/ Default Wert |
---|---|---|---|---|
1 | Synchronization Type | r or rw | erforderlich | 0x01: DC SYNC1 – synchronisiert mit SYNC1 Event |
2 | Cycle Time | r | erforderlich | Gleicher Wert wie 0x1C32:02 |
3 | Shift Time | r | optional |
|
4 | Synchronization Types supported | r | erforderlich | Bit 3:2 : DC unterstützt:
Bit 5:4: Shift Einstellungen 00 = Keine Eingangszeitverschiebung |
5 | Minimum Cycle Time | r | erforderlich | Gleicher Wert wie 0x1C32:05 |
6 | Calc and Copy Time | r | erforderlich |
|
7 | -- | -- | -- |
|
8 | Get Cycle Time | rw | bedingt**** | Gleicher Wert wie 0x1C32:08 |
9 | Delay Time | r | erforderlich |
|
10 | SYNC0 Cycle Time | r | erforderlich | Gleicher Wert wie 0x1C32:0A |
11 | Cycle Time Too Small | r | erforderlich | Gleicher Wert wie 0x1C32:0B |
12 | SM-Event missed | r | optional | Gleicher Wert wie 0x1C32:0C |
13 | Shift Time Too Short | r | optional | Gleicher Wert wie 0x1C32:0D |
14 | RxPDO Toggle Failed | r | optional | Gleicher Wert wie 0x1C32:0E |
31:15 | -- | -- | -- |
|
32 | Sync Error | r | bedingt | Gleicher Wert wie 0x1C32:20 |
**** wird im Synchron Modus oder in DC Modus mit variabler Zykluszeit verwendet
Tabelle 13: 0x1C33 DC Modus, untergeordnete µC Zyklen, Verschiebung der Eingänge/Ausgänge