Betriebsarten und Prozessdaten
Versionshinweise
Die einkanalige EL60x1 kann auf eine langjährige Modellpflege zurückblicken. Durch Weiterentwicklung der EL6001/EL6021 sind folgende Funktionserweiterungen realisiert worden:
- ab Firmware (FW) 05 / Hardware (HW) 03, (EL6001); Firmware (FW) 04 / Hardware (HW) 03, (EL6021) sind die Objekte zur Statusüberwachung und Parametrierung auch ab Index 0x6000 (Profilspezifische Objekte) verfügbar und in Abhängigkeit der vorliegenden Hardware im TwinCAT System Manager parametrierbar.
- ab Firmware (FW) 06 / Hardware (HW) 03, (EL6021) wird der Kommando-Mode unterstützt
- ab Firmware 08 (EL6001) wird das 16-Bit-Prozessdateninterface zum Senden/Empfangen von > 8 Bit unterstützt
- ab Firmware 11 (EL6001) sind alle ganzzahligen Baudraten 1000…115200 Baud nutzbar.
Eine EL6001/EL6021 in jeweils älterer Ausführung unterstützt diese Funktionalität nicht!
ab FW/HW | ESI | Bereich Control/Status-/ Parametrierobjekte |
---|---|---|
EL6001 01/01 EL6021 01/01 | ab EL6001-0000-0000 | Index 0x300n:01 (Control-Word) Index 0x4073 (Baudrate) |
EL6001 05/03 EL6021 04/03 | ab EL6001-0000-0016 | zusätzlich zu den oben beschriebenen Objekten: Index 0x6000 (COM inputs) Index 0x8000 (COM settings) |
EL6021 06/03 | ab EL6021-0000-0018 | zusätzlich zu den oben beschriebenen Objekten: Index 0xB000 (Command) |
EL6001 08/03 | ab EL6001-0000-0019 | zusätzlich zu den oben beschriebenen Objekten: Objekte für 16-Bit-PDO |
EL6001 11/11 | Ab EL6001-0000-0020 | Alle Baudraten 1000 … 115200 über explicitBaudrate implementiert |
Die EL6002/EL6022 verfügen bereits ab Erst-Release mit Revision -0016 die Objekte im 6000er, 7000er und 8000er Bereich.
Kompatibilität im Servicefall Beispiel: Eine ab Hardware 03 eingesetzte und projektierte EL6001/EL6021 kann nicht durch eine EL6001/EL6021mit älterem Hardwarestand (< 03) ausgetauscht werden! Der umgekehrte Fall ist problemlos realisierbar! |
Überwachung der Prozessdaten
|
StartUp-Einträge (Hardwarestand < 03)
StartUp-Listeneintrag Bei der EL6001/EL6021 mit Hardwarestand < 03 können die StartUp-Einträge nur im Übergang SafeOP -> OP gesetzt werden (S -> O). Die Default Einstellung ist PreOP -> SafeOP (P -> S). Stellen sie bei der Erstellung von StartUp-Einträgen sicher, dass die Checkbox "S -> O" angehakt ist (siehe Abb.)! |
Prozessdaten
Im Auslieferungszustand werden 22 Byte Nutzdaten und 1 Control/Status-Wort übertragen.
Die Prozessdaten werden aus den CoE-Objekten 0x6000 (Inputs) und 0x7000 (Outputs) generiert und sind im Kapitel Objektbeschreibung und Parametrierung im Einzelnen dargestellt.
Vergrößertes Prozessabbild 50x 16-Bit
Für die Kommunikation mit > 8 Datenbits ist ein vergrößertes Prozessdateninterface nötig. Falls die Klemme dies unterstützt (siehe Kommunikationseigenschaften) kann alternativ zum 22-Byte-Interface ein 50-Word-Interface eingestellt werden (PDOs 0x1605 und 0x1A05). Dies kann mit jeder Codierungsvorschrift (7xx, 8xx) benutzt werden, macht aber nur mit einer Vorschrift > 8 bits Sinn, z. B. 9N1. In jedem Fall sind die unteren Bits mit den Datenbits zu belegen, bei 9N1 also die unteren 9 Bits in den Datenwörtern.
Prozessdaten der EL60x2 ab Revision -0016
EL60x2 ab Revision -0016
Sync Manager (SM) - PDO-Zuordnung
SM2, PDO-Zuordnung 0x1C12 | ||||
---|---|---|---|---|
Index | Index ausgeschlossener PDOs | Größe (Byte.Bit) | Name | PDO Inhalt |
0x1600 | - | 24.0 | COM Outputs Channel1 | Index 0x7000:01 - Ctrl__Transmit request |
Index 0x7000:02 - Ctrl__Receive accepted | ||||
Index 0x7000:03 - Ctrl__Init request | ||||
Index 0x7000:04 - Ctrl__Send continous | ||||
Index 0x7000:09 - Ctrl__Output length | ||||
Index 0x7000:11 - Data out 0 | ||||
-- | ||||
Index 0x7000:26 | ||||
0x1601 | - | 24.0 | COM Outputs Channel2 | Index 0x7010:01 |
Index 0x7010:02 | ||||
Index 0x7010:03 | ||||
Index 0x7010:04 | ||||
Index 0x7010:09 | ||||
Index 0x7010:11 | ||||
-- | ||||
Index 0x7010:26 | ||||
0x1604 (default) | - | 24.0 | COM Outputs Channel1 | Index 0x7001:01 - Ctrl |
Index 0x7000:11 - Data out 0 | ||||
-- | ||||
Index 0x7000:26 | ||||
0x1605 (default) | - | 24.0 | COM Outputs Channel2 | Index 0x7011:01 - Ctrl |
Index 0x7010:11 - Data out 0 | ||||
-- | ||||
Index 0x7010:26 |
SM3, PDO-Zuordnung 0x1C13 | ||||
---|---|---|---|---|
Index | Index ausgeschlossener PDOs | Größe (Byte.Bit) | Name | PDO Inhalt |
0x1A00 | - | 24.0 | COM Inputs Channel1 | Index 0x6000:01 - Status__Transmit accepted |
Index 0x6000:02 - Status__Receive request | ||||
Index 0x6000:03 - Status__Init accepted | ||||
Index 0x6000:04 - Status__Buffer full | ||||
Index 0x6000:05 - Status__Input length | ||||
Index 0x6000:06 - Status__Framing error | ||||
Index 0x6000:07 - Status__Overrun error | ||||
Index 0x6000:09 - Status__Input length | ||||
Index 0x6000:11 - Data in 0 | ||||
-- | ||||
Index 0x6000:26 | ||||
0x1A01 | - | 24.0 | COM Inputs Channel2 | Index 0x6010:01 |
Index 0x6010:02 | ||||
Index 0x6010:03 | ||||
Index 0x6010:04 - Status__Buffer full | ||||
Index 0x6010:05 | ||||
Index 0x6010:06 | ||||
Index 0x6010:07 | ||||
Index 0x6010:09 | ||||
Index 0x6010:11 | ||||
-- | ||||
Index 0x6010:26 | ||||
0x1A04 (default) | - | 24.0 | COM Inputs Channel1 | Index 0x6001:01 |
Index 0x6000:11 | ||||
-- | ||||
Index 0x6000:26 | ||||
0x1A05 (default) | - | 24.0 | COM Inputs Channel2 | Index 0x6011:01 |
Index 0x6010:11 | ||||
-- | ||||
Index 0x6010:26 |
Features und Anwendungshinweise
Fallweise vorhandene Features werden im Allgemeinen im CoE-Verzeichnis (CAN over EtherCAT, Index 0x80n0) eingestellt.
Parametrierung über das CoE-Verzeichnis (CAN over EtherCAT) Beachten Sie bei Verwendung/Manipulation der CoE-Parameter die allgemeinen CoE-Hinweise: - StartUp-Liste führen für den Austauschfall - Unterscheidung zwischen Online/Offline Dictionary, Vorhandensein aktueller XML-Beschreibung - "CoE-Reload" zum Zurücksetzen der Veränderungen. Im Besonderen ist bei den EL60xx zu beachten, dass nach Veränderung von Kommunikationseigenschaften (Baudrate, Dataframe, Feature Bits) ein InitRequest über das Control Wort erforderlich ist, um die Änderungen zu übernehmen. |
Folgende CoE-Einstellungen aus dem Objekt 0x8000 sind möglich und hier in den Default-Einstellungen wiedergegeben:
Transferraten
Die Klemme verfügt über ein Prozessabbild von 22 Byte Nutzdaten. Es ist maximal jeden zweiten Zyklus möglich, diese 22 Byte zu versenden oder zu empfangen.
Im ersten Zyklus werden die Daten von der Klemme an die Steuerung übertragen. Im zweiten Zyklus muss die Steuerung quittieren, dass sie die Daten übernommen hat.
Bei einer Zykluszeit von 10 ms lassen sich also pro Sekunde 50 mal 22 Byte übertragen.
Bei einem eingestellten Data frame von 8N1 setzt sich jedes gesendete Byte wie aus einem Startbit, acht Datenbits und einem Stoppbit zusammen. Dies entspricht 10 Bit pro Nutzbyte.
Mit den oben erwähnen Einstellungen lässt sich demnach eine kontinuierliche Datentransferrate von:
• 50[1/s]*22[Byte]*10[Bit] = 11000 bps
erzielen.
Die nächst niedrigere Baudrate ist 9600 Baud. Bei einer Zykluszeit von 10 ms lässt sich demnach eine kontinuierliche Übertragung mit maximal 9600 Baud sicherstellen.
Ab FW11 werden durch CoE 0x8000:1B explicitBaudrate alle Baudraten von 1000…115200 Baud unterstützt. Bei der Wahl der Baudrate ist die Kompatibilität der Gegenstelle zur eingestellten Baudrate zu berücksichtigen.
Sollten nur sporadisch geringe Datenmengen gesendet oder empfangen werden (z. B. Barcodescanner) kann die Baudrate auch größer eingestellt werden, bzw. die Zykluszeit vergrößert werden.
Falls die Steuerung die Daten nicht schnell genug von der Klemme abholen kann, werden dies im internen Puffer der Klemme zwischengespeichert. Der Puffer für Empfangsdaten hat eine Größe von 864 Byte. Sollte dieser erschöpft sein gehen alle weiteren Daten verloren.
Ein weiteres Szenario wäre, dass die Steuerung deutlich mehr Daten zur Klemme überträgt, als diese senden kann. Bei einer eingestellten "Baudrate" von 300 und einem "Data Frame" von 8N1 kann die Klemme nur 30 Byte pro Sekunde senden. Sollten jedoch mehr als diese 30 Byte pro Sekunde eingehen wird auch hier zuerst ein 128 Byte großer Sendepuffer beschrieben. Nachdem dieser gefüllt ist, gehen alle weiteren Daten verloren.
Transferraten Optimierung: Automatische Zusammenfassung von Empfangsdaten
Bei der seriellen Kommunikation wird ein Datensatz in der Regel als zusammenhängender Byte-Strom versendet. Zwischen zwei Datensätzen gibt es eine Pause. Anhand der Pausen kann die Klemme erkennen, wann ein Datensatz anfängt und wann er endet. So kann sie die Bytes eines Datensatzes zusammenfassen und zusammenhängend an die Steuerung weitergeben.
Funktionsweise: Mehrere Bytes, die kurz nacheinander empfangen werden, werden zunächst im Empfangspuffer gesammelt. Wenn nach einem Byte eine Pause erkannt wird (oder der Puffer voll ist), werden die gesammelten Empfangsdaten aus dem Empfangspuffer in das Prozessabbild übertragen. Das Bit „Receive Request“ wird invertiert, um anzuzeigen, dass neue Empfangsdaten vorhanden sind.
Aktivieren / Deaktivieren
Die automatische Zusammenfassung von Empfangsdaten ist in der Werkseinstellung im CoE-Objekt 0x80n0:05 „Enable transfer rate optimization“ aktiviert. Es kann sinnvoll sein, sie zu deaktivieren, wenn die Daten, die ein Endgerät sendet, möglichst schnell in der Steuerung empfangen werden sollen. Oder wenn das Endgerät kontinuierlich ohne Pausen sendet. Wenn die automatische Zusammenfassung von Empfangsdaten deaktiviert ist, wird jedes empfangene Byte sofort in das Prozessabbild übertragen.
Einstellbare Länge der Pause zwischen zwei Datensätzen
Hinweis: Diese Funktion ist verfügbar in
- EL6001 ab Firmware 12
- EL6021, EL6021-0021 ab Firmware 10
Um die Standard-Zeit für die Transferratenoptimierung zu ändern, ist in das CoE-Objekt 0xB000:01 in das Hi-Byte 0x24 und in das Low-Byte die Wartezeit in Bitzeiten 1...254 einzutragen
Beispiel: 0x10 (16dez) für eine Wartezeit von 16 Bit-Zeiten:
Bei 115,2 kBaud entspricht dies dann 139 µs: (1/115200 [Bit/s]) * 16 [Bit]. Nach einer Lücke von dieser Länge werden die Daten automatisch in das Prozessabbild kopiert.
Kontinuierliches Senden von Daten
Normalerweise entscheidet die Klemme EL60xx eigenständig, wann sie die im Puffer befindlichen Datenbytes versendet. Für viele Anwendungen ist ein kontinuierlicher Datenstrom hilfreich. Zu diesem Zweck verfügen die Beckhoff EL60xx Klemmen über die Einstellung "Enable send FIFO data continuous" im Settings-Objekt. Wird dieser Schalter gesetzt
- muss zuerst der interne Sendepuffer (128 Byte) gefüllt werden. Dazu werden die Daten, wie bei einer normalen Übertragung, von der Steuerung an die Klemme gesendet.
- Mit einer steigenden Flanke des Bits "Send continuous" wird begonnen die Daten aus dem Puffer zu senden.
- Sind die Daten übertragen, so wird dies durch das Setzen des Bits "InitAccepted" von der Klemme an die Steuerung quittiert. "Init accepted" wird mit "Send continuous" zurückgenommen.
Durch diese Einstellung ist es möglich, auch bei langsamen EtherCAT-Zykluszeiten und gleichzeitig hoher Baudrate bis zu 128 Byte ohne lange Wartezeiten zu übertragen.
Die Klemme versucht dabei, so wenig Abstand wie möglich zwischen die Telegramme zu lassen und auf ein Stopbit sofort wieder nahtlos das nächste Startbit anzuschließen. Trotzdem kann es gerade bei hohen Baudraten und 2-kanaligem Betrieb zu kurzen Pausen zwischen Telegrammen kommen. Ein 20-Byte-Datenblock kann so beispielsweise in zwei Blöcke zu 5 und 15 oder 7 und 13 Telegramme oder anderer Aufteilung gesendet werden. Kanal 1 ist bei 2-kanaliger Klemme priorisiert.
Priorisierung
Da Empfangsdaten i. d. R. nicht wiederholt werden können, haben diese einer höheren Priorität als zu sendende Daten.
Weiterhin sinkt auch hier die Priorität mit steigender Kanalnummer. Die höchste Priorität hat somit der Empfang von Daten auf Kanal 1.
Kommando-Modus
Die EL6021 unterstützt ab Firmware 06 / Revision -0018 den so genannten Kommando-Modus. Durch eine wahlfreie Kombination bzw. Abfolge von Kommandos können bestimmte Funktionen der Klemme genutzt bzw. gesteuert werden. Aktuell werden dabei folgende Funktionen unterstützt:
- Multi-Data-Frame-Feature: (ab Firmware 06) Wechsel der Kodierung während einer laufenden Datenübertragung beim Senden
Dazu ist der Sende-Buffer der Klemme mit den zu sendenden Bytes zu füllen (die max. Buffergröße ist hierbei zu beachten!). Sobald das Senden über das Control-Word gestartet wird, werden die ersten n Bytes nach Codierung A, die restlichen Bytes im Buffer mit Codierung B versendet. Dann kann der Buffer wieder neu befüllt und ebenso versendet werden. Beispiel: das erste Byte wird mit Mark-Parity gesendet, die übrigen Bytes mit Space-Parity.
Ablauf: - Nach jedem Hochlauf/Neustart des EtherCAT Slaves EL60xx muss diese Parametrierung erneut vorgenommen werden; die Kommandofunktion ist nicht stromausfallsicher gespeichert.
- Aktivierung des Modus SendContinuous durch Schreiben von 0x1 nach 0x8000:04
- Aktivierung des Multi-Data-Frame-Feature durch Schreiben von 0x2001 nach Request 0xB000:01
Kontrolle, dass 0xB000:02 = 0 - Codierung A vorgeben durch Schreiben von 0x2100 + [data frame code] nach 0xB000:01
Beispiel: 8E2 = x12 --> Wert x2112 zu schreiben
Kontrolle, dass 0xB000:02 = 0 - Anzahl Bytes n vorgeben, die in Codierung A zu senden sind durch Schreiben von 0x2200 + [n] nach 0xB000:01
Kontrolle, dass 0xB000:02 = 0 - Codierung B vorgeben durch Schreiben von 0x2300 + [data frame code] nach 0xB000:01
Kontrolle, dass 0xB000:02 = 0 - Start des Sendens durch steigende Flanke von Ctrl SendContinuous
- Klemme meldet beendete Übertragung durch InitAccepted = 1. InitAccepted wird zurückgesetzt mit SendContinuous.
- CmdNameBedeutung0x2000 + ControlByteCmdControlByteBit 0: Enable MultiDataFrame feature Bit 1..7: do not use0x2100 + Valuefirst data frameselect preferred value from data frame table0x2200 + NoOfBytesNo of bytesNo of bytes transfered with first data frame0x2300 + Valuesecond data frameselect prefered value from data frame table
- Hinweis: in diesem Modus wird auch die Kodierung 8M1 und 8S1 unterstützt, gleichwohl diese Kodierung nicht über 0x8000:15 auswählbar ist.
- Implementierung weiterer Features auf Anfrage
Beispiele für die Datenübertragung
Initialisierung
Vor dem ersten Senden/Empfangen wird die Initialisierung durchgeführt. Dabei wird die Klemme mit den Daten des entsprechenden Settings-Objektes parametriert.
Hinweis: x80n0:01 „Enable RTS/CTS“ ist default TRUE, die Firmware erwartet hier Signale. Wenn diese Leitungen nicht belegt sind, ist diese Einstellung für dieses Beispiel auf FALSE zu setzen.
Vorgehensweise:
- "Init request" auf 1 setzen
- Die erfolgreiche Initialisierung wird von der Klemme durch das Setzen von "Init accepted" bestätigt.
- "Init request" zurücksetzen
- Die Klemme setzt "Init accepted" auf 0
Die Klemme ist nun zum Datenaustausch bereit.
Datenübertragung von der Steuerung zur Klemme (2 Zeichen senden)
- "Output length" auf 2 setzen
- "Data Out 0" und "Data Out 1" mit Nutzdaten füllen
- Den Zustand von "Transmit request" umschalten
- Die Klemme quittiert die Entgegennahme mit einer Zustandsänderung des "Transmit accepted" Bits
Datenübertragung von der Klemme zur Steuerung (Zeichen empfangen)
- Die Klemme zeigt durch die Zustandsänderung des "Receive request" Bits an, dass sich neue Daten im Prozessabbild befinden.
- Die Anzahl der empfangenen Bytes wird in "Input length" abgelegt
- Die Steuerung quittiert mit einer Zustandsänderung von "Receive request" die Übernahme der Bytes