Profibus synchronisieren

Im TwinCAT Run Mode ist der Profibus-Master immer mit der höchstprioren Task synchronisiert, mit der Variablen verknüpft sind. Die Zykluszeit der entsprechenden Task wird in der Cycle-Time auf dem Karteireiter CCAT PBM des Masters angezeigt, sobald einmal das Mapping erzeugt wurde. Bei der Task kann eingestellt werden, ob das I/O am Taskanfang aktualisiert werden soll oder nicht.

Voraussetzungen für diesen Arbeitsschritt:

  • Eine Task erstellt in TwinCAT, mit der Variablen aus dem SPS-Projekt verknüpft sind.

Sie können die Option I/O at task begin wie folgt aktivieren:

1. Klicken Sie links in der Strukturansicht auf die entsprechende Task.
2. Klicken Sie auf die Registerkarte Task und klicken Sie auf die Option I/O at task begin.
Profibus synchronisieren 1:
  • Sie haben die Option I/O am Taskanfang erfolgreich aktiviert. Im Folgenden wird erklärt, welche Auswirkung diese Einstellung auf die Taskzeit und den DP-Zyklus hat.

 

I/O am Taskanfang

Wenn bei der Task die Einstellung I/O at task begin aktiviert ist (Standardeinstellung bei NC-Task), wird vor dem Start der Task geprüft, ob der vorangegangene DP-Zyklus beendet wurde, dann die Inputs und Outputs (die Outputs sind dann vom letzten Task-Zyklus) kopiert und der DP-Zyklus gestartet.

Beispiel: Task-Zykluszeit 2 ms, Echtzeit-Resourcen 80%.

Profibus synchronisieren 2:

Wenn in dem vorliegenden Fall das Kopieren der Inputs und Outputs sowie die Task-Rechenzeit 0,8 ms überschreiten, würde die Ausführung der Task unterbrochen werden, da die 80% Echtzeit-Ressourcen erreicht sind:

Profibus synchronisieren 3:

Dieser Fall wäre auch noch unproblematisch, da der DP-Zyklus rechtzeitig fertig ist.

Wenn die Einstellung IO at task begin nicht aktiviert ist, ist der Ablauf etwas kritischer. Das nächste Beispiel zeigt die Auswirkungen.

I/O nicht am Taskanfang

Wenn bei der Task die Einstellung I/O at task begin nicht angewählt ist (Standardeinstellung bei SPS-Task), wird vor dem Start der Task geprüft, ob der vorangegangene DP-Zyklus beendet wurde und die Inputs werden kopiert. Danach erfolgt die Taskbearbeitung. Am Ende der Task werden die Outputs kopiert und der DP-Zyklus gestartet.

Beispiel: Task-Zykluszeit 2 ms, Echtzeit-Resourcen 80%.

Profibus synchronisieren 4:

Da sich in diesem Fall die Task und der PROFIBUS die Bandbreite teilen müssen, wirkt sich eine Überschreitung der Echtzeit-Ressourcen wesentlich stärker aus als beim Fall "I/O am Taskanfang":

Profibus synchronisieren 5:

Der DP-Zyklus fängt später an und ist nicht mehr rechtzeitig vor dem nächsten Zyklus fertig. Es wird erkannt, dass der letzte DP-Zyklus nicht beendet werden konnte. Vor dem Start der nächsten Task, werden keine Inputs (die Task rechnet mit den alten Inputs) und nach der abgearbeiteten Task keine Outputs kopiert. Ebenso wird der PD-Zyklus nicht neu gestartet und somit ein DP-Zyklus ausgelassen.

Mit der Variable CycleCounter wird ein ausgefallener DP-Zyklus angezeigt (siehe: Diagnose Master).

Gegenüberstellung I/O am Taskanfang und I/O nicht am Taskanfang

Der Vorteil bei der Einstellung I/O at task begin liegt darin, dass die Task und der PD-Zyklus sich die zur Verfügung stehende Bandbreite nicht teilen müssen. Der DP-Zyklus startet sehr konstant (Jitter entspricht dem TwinCAT-Jitter). Ist die Einstellung I/O at task begin nicht aktiviert, kann es leicht passieren, dass ein DP-Zyklus ausgelassen wird und die zeitliche Konstanz des DP-Zyklus zusätzlich vom Jitter der Taskabarbeitung abhängt.

Der Nachteil der Einstellung I/O at task begin liegt darin, dass die Totzeit also die System-Reaktionszeit größer wird.

Sync/Freeze-Funktionalität

Mit Sync will man bei mehreren Slaves gleichzeitig Ausgänge ausgeben, mit Freeze will man bei mehreren Slaves gleichzeitig Eingänge einlesen.

Der Ablauf in TwinCAT ist der folgende:

  • Am Anfang (I/O am Taskanfang) bzw. Ende (I/O nicht am Taskanfang) des Task-Zyklus werden die Ausgänge geschrieben
  • Dadurch wird der PROFIBUS-Zyklus gestartet
  • Am Anfang des PROFIBUS-Zyklus wird ein Sync/Freeze-Telegramm gesendet
  • Dadurch starten die Buskoppler einen K-Bus-Zyklus mit den Ausgängen aus dem letzten Task-Zyklus und übergeben die Eingänge aus dem letzten K-Bus-Zyklus
  • Dann sendet der Master zu jedem Slave die aktuellen Ausgänge und holt die übergebenen Eingänge
  • Am Anfang des nächsten Task-Zyklus werden die Eingänge gelesen
  • usw.

Ausgänge und Eingänge sind also immer einen Zyklus alt.

Profibus synchronisieren 6:


Für einen Master der im Sync/Freeze-Modus betrieben werden soll, muss auf der Registerkarte CCAT PBM unter Operation Mode die Option DP/MC (Equidistant) eingestellt werden (siehe: CCAT PBM).

Für einen Slave der im Sync/Freeze-Modus betrieben werden soll, muss auf der Registerkarte Profibus die Option Sync/Freeze enable angeklickt werden (siehe: Profibus). Der Master verwendet für die Synchronisierung per Sync/Freeze immer die Gruppe 1.