Überblick
Durch den zunehmenden Einsatz dezentraler Steuerungen tritt immer häufiger die Anforderung auf, verschiedene Systeme zeitlich zu synchronisieren. Die Realisierung durch zyklisch versandte Informationen führt bei Systemen ohne identische Zeitbasis zu Schwebungseffekten. Diese äußern sich z.B. bei der Synchronisierung von Antrieben mittels via Netzwerk übertragener Achsinformationen als periodisch auftretende Betriebsstörungen. Die Bibliothek TcRemoteSync.lib bietet Möglichkeiten zur allgemeinen Zeitsynchronisierung von Informationen auf verteilten Systemen, sowie spezielle Methoden zur Synchronisierung von NC-Achsen ("verteilte Achsen").
Das Problem
Trotz nominell gleicher Taskzykluszeiten besteht zwischen unterschiedlichen Systemen ein geringer Gangunterschied (Drift). Diese Drift wird u. a. hervorgerufen durch Produktionsunterschiede, unterschiedlichem Temperaturverhalten und abweichenden Umgebungsbedingungen der verwendeten Oszillatoren. Der Gangunterschied bewirkt eine ständige Veränderung des zeitlichen Zusammenhangs der Taskzyklen der Systeme. In Abbildung 1 ist dies schematisch dargestellt. Das sendende System S und das empfangene System R arbeiten mit geringfügig unterschiedlichen Zykluszeiten T. Für den gezeigten Fall gilt: TS>TR. Durch den Gangunterschied verschieben sich die Taskzyklen der beiden System zueinander. Periodisch wiederkehrend tritt der Fall ein, dass zwei Zyklen des Systems R während eines Zyklus des Systems S stattfinden. Dieser Fall liegt an der in Abbildung 1 durch einen Kreis markierten Stelle vor.
Die Synchronisierung verteilter Systeme geschieht durch zyklisches Senden von Informationen vom Sender (S) zum Empfänger (R). Bis zu der in Abbildung 1 markierten Stelle werden die gesendeten Informationen sequentiell empfangen, dann wird die einmal gesendete Information in zwei aufeinander folgenden Zyklen gelesen, und anschließend erfolgt ein Übergang zurück zum sequentiellen Empfangen. Im Falle des umgekehrten Zykluszeitverhältnisses (d.h. Zykluszeit TR> Zykluszeit TS) würde entsprechend eine gesendete Information auf der Empfängerseite nicht gesehen.
Die Lösung
Besteht nicht die Möglichkeit, die Zykluszeiten der Systeme physikalisch zu synchronisieren, z.B. im Fall zweier mit SERCOS-Karten betriebenen PCs, so können obige Schwebungseffekte durch Korrektur der empfangenen Informationen ausgeglichen werden. Die dazu benötigte Korrekturzeit Δt wird aus der Drift der beiden Systeme so bestimmt, dass die damit korrigierten Daten S' einem zeitlich äquidistanten und sequentiellen Empfang entsprechen. Abbildung 2 zeigt das ursprüngliche Zeitverhalten der Originaldaten S zum Empfänger R, sowie die um die Korrekturzeit Δt korrigierten Daten S'. An der mit einem Kreis markierten Stelle werden die ursprünglich von zwei Empfängerzyklen identisch gelesenen Daten zunächst für den ersten Empfängerzyklus mit der Zeit Δt1 und anschließend für den zweiten Zyklus mit der Zeit Δt2 korrigiert.
Für die Korrektur der Daten ist es notwendig, den zeitlichen Verlauf der Informationen zu kennen. In der typischen Anwendung der Synchronisation verteilter NC-Achsen kann beispielsweise die Korrektur der Sollposition und -geschwindigkeit durch Extrapolation mit der Sollgeschwindigkeit und -beschleunigung durchgeführt werden.
Anwendungsbeispiel
Eine typische Anwendung für die Synchronisierung verteilter Systeme ist der Betrieb von interpolierenden bzw. gekoppelten NC-Achsen (z.B. Master-Slave-Kopplung) an verschiedenen Rechnern ("verteilte Achsen"). Die durch das doppelte Lesen bzw. Verpassen von Informationen auftretenden Sprünge in den Sollwerten der Position und Geschwindigkeit bewirken periodisch wiederkehrende Betriebsstörungen. Abbildung 3 zeigt die Istgeschwindigkeit eines direkt mit der empfangenen Sollposition betriebenen Antriebes (Positionsinterface). Die sichtbaren Störungen sind durch Sprünge in den empfangenen Sollpositionen hervorgerufen.
Die Sollposition kann auf dem Empfängersystem vor der Ansteuerung des Antriebs nach der oben beschriebenen Methode korrigiert werden. Dazu wird die empfangene Sollposition pS mit der Korrekturzeit Δt und der empfangenen Sollgeschwindigkeit vS zur korrigierten Sollposition pS' extrapoliert. Wahlweise kann zusätzlich die Sollbeschleunigung aS zur Extrapolation verwendet werden. Es gilt: pS'=pS+Δt*vS(+0.5*Δt2as). Abbildung 4 zeigt die Istgeschwindigkeit der mit der korrigierten Sollposition pS' angetrieben Achse. Die in Abbildung 3 vorhandenen Störungen treten nun nicht mehr auf.
Funktionsumfang der Bibliothek TcRemoteSync.lib
Die Synchronisierung von verteilten Systemen kann mit der in der Bibliothek TcRemoteSync.lib implementierten Funktionalität durchgeführt werden. Die folgenden Funktionsbausteine kommen dazu auf dem Empfängersystem zum Einsatz:
Der Funktionsbaustein FB_AxisSync dient der Synchronisierung von Achsen über ein Netzwerk. Die Sollposition und gegebenenfalls Sollgeschwindigkeit der gesendeten Achsinformationen werden gemäß den obigen Ausführungen extrapoliert. Zur Demonstration ist ein Beispiel verfügbar. Intern benutzt FB_AxisSync zwei Funktionsbausteine, FB_TimeSync und FB_AxisExtrapolateValues. Der Baustein FB_TimeSync dient der Ermittlung der Schwebungsfrequenz und der Berechnung der Korrekturzeit Δt, FB_AxisExtrapolateValues extrapoliert die empfangenen Sollwerte mit der Korrekturzeit.