Fehlerreaktionen

Ausfall eines Slaves

Wenn ein Slave nicht oder gestört antwortet, wiederholt der Master das Telegramm entsprechend des Max Retry-Limit mehrere Male (siehe: Registerkarte Bus-Parameter (DP)). Wird ein gestörtes Telegramm empfangen, wiederholt der Master das Telegramm sofort. Wie lange der Master auf die Antwort des Slaves wartet, wird mit der Slot-Time auf derselben Registerkarte eingestellt.

Bei einem Data_Exchange-Telegramm mit 12 MBaud, einer Slot-Time von 1000 tbit und einem Max Retry-Limit von 4 (Standardwerte) verzögert sich das Senden des folgenden Telegramms um den Wert:

TDelay = (4 x ((15 + Anzahl Outputs) x 11 + 1000) - (15 + Anzahl Inputs) x 11)/12 µs

Der DpState des Slaves wird auf einen Wert ungleich 0 gesetzt. Die Auswirkung auf die DP-Verbindung kann eingestellt werden (siehe unten: Reaktion im Master).

Normaler DP-Zyklus (12 MBaud, 5 Slaves, im Schnitt 20 Bytes In, 20 Bytes Out je Slaves)

Fehlerreaktionen 1:

 

Erstmalig gestörter DP-Zyklus (Slave 3 antwortet nicht)

Fehlerreaktionen 2:

 

Folgende DP-Zyklen (Slave 3 nicht mehr in der Poll-Liste)

Fehlerreaktionen 3:

Weiterhin kann es passieren, dass der Slave falsch antwortet, weil z.B. aufgrund eines lokalen Ereignisses auf dem Slave die DP-Verbindung abgebaut wurde. In diesem Fall wird das Telegramm nicht wiederholt, sondern das nachfolgende Telegramm gesendet. Der DpState wird auf einen Wert ungleich 0 gesetzt. Der Slave wird aus der Poll-Liste ausgetragen und im nächsten DP-Zyklus nicht mehr angesprochen, der Sendezeitpunkt des nachfolgenden Telegramms verändert sich, bis die DP-Verbindung wieder erneut aufgebaut wurde.

 

Reaktionen im Master

Die Reaktion im Master kann für jeden Slave eingestellt werden (siehe: Registerkarte Features). Die Reaktion im Master kann mit der Option NoAnswer-Reaction eingestellt werden.

Hier wird festgelegt, ob die DP-Verbindung zum Slave sofort oder erst nach Ablauf der DP-Watchdog-Zeit ohne korrektes Empfangstelegramm (Data_Exchange-Telegramm) abgebaut werden soll.

Wenn die DP-Verbindung sofort abgebaut werden soll (Leave Data-Exch, Registerkarte Features des Slaves), wird der Slave aus der Poll-Liste ausgetragen und im nächsten DP-Zyklus nicht mehr angesprochen, bis die DP-Verbindung wieder erneut aufgebaut wurde. Um die DP-Verbindung zum Slave wieder aufzubauen, werden mindestens 7 Telegramme gesendet. Der Vorgang dauert in der Regel mindestens 10-20 ms.

Wenn die DP-Verbindung erst nach Ablauf der Watchdog-Zeit abgebaut werden soll (Stay in Data-Exch (for WD-Time), Registerkarte Features des Slaves), wird die eingestellte Watchdog-Zeit des Slaves abgewartet und auf eine korrekte Antwort gewartet. Im nächsten Pollzyklus wird der Slave erneut angesprochen. Falls der Slave wieder nicht antwortet, wird keine Wiederholung mehr gesendet.

Es macht dann Sinn die Watchdog-Zeit abzuwarten, wenn der PROFIBUS-Zyklus auch beim Ausfall eines Slaves zeitlich möglichst konstant ablaufen soll und der Ausfall eines Slaves für einen oder mehrere Zyklen toleriert werden kann (z.B. in der Betriebsart DP/MC (Equidistant)). In diesem Fall sollte die DP-Watchdog-Zeit des Slaves entsprechend der noch tolerierbaren Ausfall-Zeit des Slaves eingestellt und das Max Retry-Limit (DX) (Registerkarte Bus-Parameter (DP) des Masters) auf 0 gesetzt werden.

Normaler DP-Zyklus (12 MBaud, 5 Slaves, im Schnitt 20 Bytes In, 20 Bytes Out je Slaves) im Mode "Stay in Data-Exch (for WD-Time)"

Fehlerreaktionen 4:

 

Erster gestörter und folgende DP-Zyklen im Mode "Stay in Data-Exch (for WD-Time)" (Slave 3 antwortet nicht)

Fehlerreaktionen 5:

  • Auswirkung auf die Input-Daten des Slaves (Changes of the Input Data), falls der Slave nicht richtig antwortet
    Hier wird festgelegt, ob die Input-Daten des Slaves auf 0 gesetzt (Inputs will be set to 0, Registerkarte Features des Slaves) oder der alte Wert erhalten bleiben soll (No changes), wenn der Slave ausfällt. In beiden Fällen wird auf jeden Fall der DpState des Slaves auf einen Wert ungleich 0 gesetzt, so dass die Task immer erkennen kann, ob die Daten gültig sind oder nicht. Wenn ein Slave gestört antwortet, werden die Inputdaten, unabhängig von der Einstellung Changes of the Input Data immer auf 0 gesetzt.
  • Einstellung des Wiederanlauf-Verhaltens des Slaves (Restart Behaviour of the Slave), falls die DP-Verbindung zu dem Slave abgebaut wurde
    Hier wird festgelegt, ob die DP-Verbindung zu einem Slave, dessen DP-Verbindung abgebaut wurde, automatisch wieder aufgebaut wird, oder ob dieses manuell durch einen ADS-WriteControl-Aufruf passieren soll.
    Diese Einstellung ist verfügbar, wenn der Slave nicht einen CX-Master angeschlossen ist.
  • Auswirkung auf den Zustand des Masters (Reaction of the Master), falls die DP-Verbindung zu dem Slave abgebaut wurde
    Hier wird festgelegt, ob der Abbau der DP-Verbindung zu einem Slave ohne weitere Auswirkungen bleiben (No Reaction, Defaulteinstellung) oder ob der Master den STOP-Zustand einnehmen und damit die DP-Verbindungen zu allen Slaves abbauen soll.
    Diese Einstellung ist verfügbar, wenn der Slave nicht einen CX-Master angeschlossen ist.

Ausfall des Masters

  • Überwachung in der SPS/IO-Task
    Bei dauerhaften Busstörungen kann sich der DP-Zyklus auch bei 12 MBaud auf bis zu 100 ms verlängern. Um den DP-Master zu überwachen, gibt es eine Status-Variable CycleCounter, die in der SPS verknüpft werden kann. Diese Variable wird vom Master nach jedem DP-Zyklus inkrementiert. Die Variable kann in der SPS überwacht werden, um einen Ausfall des Masters festzustellen.
  • Überwachung im Slave
    Um den Ausfall des Masters bzw. die Übertragung auf dem PROFIBUS zu überwachen, kann beim Slave eine Watchdog-Zeit aktiviert werden (siehe: Registerkarte Profibus). Die Watchdog-Zeit muss mindestens zweimal so groß wie das Maximum aus Estimated DP-Cycle und Cycle Time eingestellt werden (siehe: Registerkarte CCAT PBM).

Ausfall der SPS/IO-Task

Es wird zwischen den Fällen SPS-Stop, Erreichen eines Breakpoints und Task-Stop unterschieden (IO-Task, NC-Task wird nur beim System-Stop gestoppt). Beim SPS-Stop werden die Ausgangsdaten von der SPS noch auf 0 gesetzt, beim Erreichen eines Breakpoints bleiben die Daten zunächst unverändert.

Im Master wird mit einer Task-Watchdog Zeit die Task überwacht (siehe: Registerkarte Start-Up/Fault-Settings). Wenn innerhalb dieser Task-Watchdog Zeit keine neue Datenübergabe erfolgt, geht der Master entsprechend der Einstellung Reaction on Task-Stop in den Zustand Clear (Ausgänge werden auf 0 bzw. in den sicheren Zustand gesetzt Fail_Safe = 1 in der GSD-Datei). Bei der Einstellung “Operate“ behalten die Ausgänge den letzten Wert.

Start-Up Verhalten

Beim Start des TwinCAT Systems werden die DP-Verbindungen zu allen Slaves aufgebaut. Solange die höchstpriore zugehörige Task noch nicht gestartet wurde, sendet der Master auch nach dem Aufbau der DP-Verbindung noch keine Data_Exchange-Telegramme sondern Diagnose-Telegramme. Sobald die höchstpriore zugehörige Task einmal Daten übergeben hat und die DP-Verbindung des entsprechenden DP-Slaves aufgebaut ist, sendet der Master zyklisch (mit der höchstprioren zugeordneten Task) je ein Data_Exchange-Telegramm zu den entsprechenden Slaves.