Subscriber

Beim Subscriber gibt es die Diagnosevariablen Quality, CycleIndex und VarState.

  • Quality:
    Die Quality ist ein Indikator für das Alter der empfangenen Daten.
  • CycleIndex:
    Mit Hilfe des CycleIndex können Übertragungsausfälle detektiert werden.
  • VarState:
    Mittels der Variable VarState wird angezeigt, ob Diskrepanzen zwischen dem konfigurierten RxData und den ankommenden ProcessData vorliegen, die das Empfangen der Daten verhindern.

Quality

Die Quality Variable enthält die Zeit in [100 µs], um die dieses ProcessData zu spät beim Empfänger angekommen ist. Sie wird in jedem Zyklus um die Zykluszeit inkrementiert, unmittelbar bevor das Eingangsprozessabbild des TwinCAT EAP Gerätes aktualisiert wird. Die Aktualisierung des Eingangsprozessabbildes erfolgt bei der Verarbeitung der empfangenen EAP Telegramme. Während dieser Verarbeitung werden einige Werte eines jeden Telegramms den entsprechend zugehörigen Variablen des Eingangsprozessabbildes zugewiesen.

Subscriber 1:

Wie in der oberen Abbildung dargestellt, wird dabei z.B. der empfangene Quality Wert aus dem Telegramm der entsprechenden Quality Variablen des Eingangsprozessabbildes zugewiesen.
Wenn in einem EAP Telegramm die Quality den Wert 0 hat, wird die Quality des Eingangsprozessabbildes also wieder auf den Wert 0 zurückgesetzt, sobald das Telegramm empfangen wurde.

 

Subscriber 2:

Die vorhergehende Abbildung veranschaulicht, wie ein verspätet ankommendes EAP Telegramm den Quality Wert beeinflusst: Zu Beginn wird das EAP Telegramm rechtzeitig vor dem Start des 1. Zyklus empfangen. Ebenso im 2. darauffolgenden Zyklus. Danach erreicht das Telegramm den Empfänger erst nachdem der 3. Zyklus bereits begonnen hat. Dies hat zur Folge, dass das Telegramm erst im 4. Zyklus verarbeitet werden kann. Entsprechend wird der Wert der Quality Variablen während des 3. Zyklus um die Cycle time inkrementiert aber nicht wieder auf den Wert 0 zurückgesetzt. Erst im 4. Zyklus wird die Quality Variable wieder auf den Wert 0 zurückgesetzt, indem der Quality Wert des verspäteten Telegramms zugewiesen wird.

Diagnosevariable Quality
Angenommen der Taskzyklus des Subscribers ist zehn Mal so schnell wie der des Publishers, dann wird nur jeden zehnten Zyklus ein EAP Telegramm empfangen. Folglich kommt neun Zyklen lang kein Telegramm beim Subscriber an, so dass auch die Quality Variable des Eingangsprozessabbildes neun Zyklen lang nicht zurückgesetzt werden kann. Die Quality Variable wird also neun Zyklen lang um die Zykluszeit inkrementiert. Sie steigt also bis auf das Neunfache der Taskzykluszeit.

Fazit: Ein "langsamer" Sender (z.B. 100ms Sendetakt beim Publisher) führt bei einem "schnellen" Empfänger (z.B. 10ms Empfangstakt beim Subscriber) zu einem entsprechend ansteigenden Wert bei der Diagnosevariable Quality.

Wichtig ist also eine Berücksichtigung unterschiedlicher Zykluszeiten beim Senden und Empfangen von EAP Telegrammen. In diesem Zusammenhang ist besonders auf die Trigger Bedingungen (siehe Der EAP Sendemechanismus) zu achten, die beim Sender konfiguriert werden.

EL6601/EL6614

Bei Verwendung der EL66xx ist der Ankunftszeitpunkt eines ProcessData genau dann, wenn die Daten im Eingangsprozessabbild des EAP Gerätes vorliegen, nicht wenn sie bei der EL66xx oder im Eingangsabbild des EtherCAT Gerätes ankommen.

CycleIndex
Der CycleIndex (Größe 16 Bit) ist ein Zähler, der vom Publisher mit dem ProcessData mit gesendet wird. Üblicherweise wird er senderseitig mit jedem neuen Zyklus inkrementiert bevor das EAP Telegramm versendet wird und lässt so einen Rückschluss auf Übertragungsunterbrechungen zu. Er ist auf der Empfängerseite (beim Subscriber) als CycleIndex auslesbar (Vergleiche oberste Abbildung dieses Kapitels).

VarState
Der VarState (Größe 16 Bit) gibt Auskunft über den aktuellen Status des RxData.
Folgende Werte sind für den VarState möglich:

Kurzbeschreibung

Bit

Beschreibung

Invalid Hash/Version

VS.0

Das Bit wird auf 1 gesetzt, wenn ein ProcessData nicht empfangen werden konnte, weil die Version des empfangenen ProcessData nicht mit der konfigurierten Version dieses RxProcessData übereinstimmt. Andernfalls ist das Bit auf 0 gesetzt.

Invalid Variable Length Received

VS.1

Das Bit wird auf 1 gesetzt, wenn ein ProcessData nicht empfangen werden konnte, weil die Datenlänge der empfangenen Variable nicht mit der konfigurierten RxVariable übereinstimmt. Andernfalls ist das Bit auf 0 gesetzt.

 

EL6601/EL6614

Der VarState wird nicht bei der Verwendung der EL-Klemmen EL66xx angelegt.