Synchronisierung von Zeitstempel ohne IEEE1588 mit BVS CA Industriekameras
1. Einleitung
Kamerazeitstempel (Timestamps) sind ein wichtiges GigE Vision/GenICam/SFNC Feature, mit welchem in Bildern spezifiziert werden kann, wann es aufgenommen wurde (um genauer zu sein, wann die Bildbelichtung gestartet wurde). Ohne zusätzliche Synchronisierung ist es lediglich ein kameraspezifischer Timer mit einer herstellerspezifischen Schrittweite und einer Genauigkeit, die von der Implementierung abhängig ist. Jede Kamera startet ihren eigenen Zeitstempel bei null und es gibt keine Möglichkeit diesen anzupassen oder mit anderen Kameras oder Host-PCs zu synchronisieren. Es gibt Anstrengungen, präzise Zeitstempel nach IEEE1588 in GigE Vision fest zu etablieren. Dies erfordert Kameras, welche in der Lage sind, zum einen die notwendige Synchronisation auszuführen, zum anderen die passende Netzwerkhardware und Treibersoftware sowie Prozeduren bereitzustellen, welche die Synchronisation aufrechterhalten können. Es gibt viele Anwendungen, die nicht von der IEEE1588 profitieren können, jedoch Synchronisation in einer bestimmen Form benötigen. Der folgendes Dokument beschreibt Lösungen für diese Szenarien.
2. Zeitstempel verwenden und zurücksetzen
Der Standard selbst bietet keine Möglichkeit, den Zeitstempel einer Kamera zurückzusetzen, außer durch An- und Ausschalten der Kamera. Aus diesem Grund hat Balluff einen eigenen Mechanismus entwickelt, mit welchem per Hardwareeingabe der Zeitstempel zurückgesetzt werden kann: mvTimestampReset
Abbildung 1: ImpactControlCenter - mvTimestampReset
Dieser Mechanismus kann natürlich verwendet werden, um Kameras zu synchronisieren, indem die Eingänge der Kameras miteinander verbunden werden und ein vordefiniertes Eingangssignal den Zeitstempel aller Kameras zurücksetzt. Ab diesem Zeitpunkt starten alle Kameras bei null und zählen den Zeitstempel hoch. Eine elementare Genauigkeit kann hierbei erreicht werden, die jedoch auf das Driften der Taktfrequenz der internen Uhr (z.B. ein 1-MHz-Oszillator im FPGA) beschränkt ist. Um das Driften auszugleichen, kann das Zurücksetzen des Zeitstempels jede Sekunde oder Minute durchgeführt werden und der Reset-Impuls selbst in jeder Kamera gezählt werden.
Wenn man nun annimmt, dass der Reset-Impuls von der Master-Kamera über einen Timer erzeugt wurde und das Reset-Signal an alle Kameras sendet, können nun die Reset-Impulse aller Kameras gezählt werden und zusammen mit dem Reset-Zeitstempel als Chunk-Daten im Bild übertragen werden. So wird ein synchronisierter Zeitstempel mit der Präzision der Master-Kamera zwischen allen angeschlossenen Kameras erreicht.
Hierfür verwendete Einstellungen sehen in ImpactControlCenter von Balluff wie folgt aus:

Abbildung 2: Ein Timer1 erzeugt das AcquisitionStart-Signal
Falls das (unbekannte) Driften des Reset-Impulses der Master-Kamera entfernt werden soll, kann ein Präzises 1 PPS (Pulse per Second) Signal verwendet werden, welches durch den Host-PC, falls dieser mit NTP (Network Time Protocol) Software oder mit einem GPS-Gerät ausgestattet ist, zur Verfügung gestellt wird.
Damit ist die Synchronisation sehr genau; d.h. sie liegt im Bereich von mehreren Dutzend µs aufgrund der Hardwareverzögerung der Eingangsleitung des Reset-Signals und der Genauigkeit des lokalen quartzbasierten Zeitstempeloszillators (~100ppm). Nun zählt der Zähler innerhalb der Kamera Sekunden und der Zeitstempel fügt genaue Mikrosekunden hinzu, was zu einem verlässlichen Zeitstempel führt. Ein Beispiel, wie Chunk-Daten aussehen können, zeigt das folgende Bild. Der Zeitstempel wird in µs angegeben und der Counter1 zählt die Reset-Impulse, welche in der Kamera selbst über den Timer1 erzeugt werden.

Abbildung 3: Ausgabe der Chunk-Daten
Die Aufgabe, den Counter zu Beginn der Aufnahme zurückzusetzen, kann durch das Setzen des Reset-Parameters entsprechend erledigt werden. Natürlich hängt es davon ab, ob die Kamera kontinuierlich Bilder aufnimmt, oder getriggert.
-> Weitere Möglichkeiten zur Synchronisation mehrerer Kameras
Disclaimer
Die hier unentgeltlich bereitgestellte technische Information zu Ihrer Anfrage basiert auf dem von BALLUFF vorliegenden Kenntnisstand um Sie bestmöglich bei Ihrer technischen Fragestellung bzw. Anwendung zu unterstützen und Lösungsansätze aufzuzeigen.
Nachdem die technische Information unentgeltlich zur Verfügung gestellt wird, ist die Sach- und Rechtsmängelhaftung von BALLUFF ausgeschlossen, es sei denn, es liegt eine vorsätzliche oder grob fahrlässige Pflichtverletzung von BALLUFF oder Arglist auf Seiten von BALLUFF vor. Diesbezüglich haftet BALLUFF auf Schadenersatz wegen Mängeln der technischen Information oder wegen der Verletzung sonstiger vertraglicher oder außervertraglicher Pflichten nur bei Vorsatz oder grober Fahrlässigkeit. Die vorstehende Haftungsbeschränkung gilt nicht bei Arglist, bei Verletzungen des Lebens, des Körpers oder der Gesundheit, bei der Übernahme einer Garantie sowie bei der Haftung nach dem Produkthaftungsgesetz. Eine weitergehende Haftung von BALLUFF ist ausgeschlossen.
Prüfen Sie vor dem Einsatz in Anlagen und Maschinen, ob die hier bereitgestellte, unentgeltliche Information für Ihre Anwendung geeignet ist. Mit der Nutzung der hier unentgeltlich vorgelegten Informationen erkennen Sie diese Haftungsregelung an.