Bandbreite im Griff
GigE Vision Kameras übertragen Bilddaten in kleinen Paketen über das Netzwerk, noch bevor ein aufgenommenes Sensorbild komplett ausgelesen ist. Das minimiert die Latenz der Bildübertragung. Wenn jedoch zu viele Daten zeitgleich übertragen werden, kann die maximale Übertragungsbandbreite eines GigE-Netzwerks sehr schnell überschritten werden.
Gerade der Mehrkamerabetrieb ist hiervon betroffen. In der Folge kommt es zu Übertragungsverlusten und erhöhten Übertragungszeiten, wenn Daten nachgefordert werden müssen. Der GigE Vision Standard ermöglicht die gezielte Konfiguration von Übertragungsparametern, um solche Situationen zu vermeiden. Mit den erweiterten Einstellungsmöglichkeiten der IDS GigE Vision Firmware 1.3 verwalten Sie die verfügbare Bandbreite mit Leichtigkeit.
Hintergrund
GigE Vision Kameradaten werden als Sequenz von Paketen übertragen. Neben den reinen Nutzdaten besteht ein Paket auch aus Header und Checksum-Daten. Je nach Einstellung der MTU (Maximum Transmission Unit) kann die Menge der Nutzdaten und damit die Paketgröße (Stichwort: Jumboframes) variieren. Zwischen zwei Paketen gibt es eine variabel einstellbare Verzögerung: Das sogenannte „Inter-Packet Delay“. Wenn Datenpakete nicht korrekt übertragen werden, kann ein Transport Layer (GenTL) durch einen Resend-Mechanismus fehlende Datenpakete erneut anfordern. Die Möglichkeiten zur Datennachforderung sind abhängig vom verwendeten Transport Layer. Zusammengenommen bestimmen diese drei Komponenten die komplette Übertragungszeit eines Kamerabildes.
Zur Entlastung des Netzwerkes im Mehrkamerabetrieb oder zur Entlastung eines verarbeitenden Systems ist es notwendig, die verwendete Netzwerkbandbreite der übertragenden Geräte zu reduzieren. Durch die Paketverzögerung (Inter-Packet Delay) im GigE Vision Standard werden Bandbreitenengpässe durch Übertragungspausen vermieden. Durch die Paketverzögerungen steigt die Gesamtübertragungszeit (Transmission Time) an, da die Bilddaten langsamer als vorher verschickt werden und dadurch der Datendurchsatz sinkt! Ein Anstieg der Übertragungszeit bedeutet zudem auch eine Verminderung der maximalen Framerate (Acquisition Framerate Limit).
Mit dem GigE Vision Inter-Packet-Delay kann der Datendurchsatz jeder Kamera separat eingestellt werden, um durch eine geeignete Verzögerung des Datentransfers das Limit der Übertragungsschnittstelle nicht zu „überfahren“.
Dieser TechTipp geht im weiteren Verlauf lediglich auf die Möglichkeiten des Bandbreitenmanagements der IDS GigE Vision-Firmware ein. Einstellungen und Monitoring des Datenstroms sind abhängig vom verwendeten Transport Layer (GenTL).
Standard-Einstellungen
Die GenICam SFNC (Standard Feature Naming Convention) definiert bereits zwei Standard-Features zur Kontrolle des Datendurchsatzes.
- GevSCPD
- DeviceLinkThroughputLimit
Mit dem Inter-Packet Delay (siehe GevSCPD - Stream Channel Packet Delay) kann eine Verzögerung (in Ticks des GigE Vision Timestamp-Counters) zwischen zwei Paketen auf dem StreamChannel eingestellt werden. Das erhöht die Übertragungszeit der Daten und senkt damit die Bandbreite. Die Bestimmung einer geeigneten Pause zwischen den Paketen ist nicht gerade selbsterklärend und zur Steuerung des Datenaufkommens ist diese Methode nicht gerade einfach zu bedienen.
Das DeviceLinkThroughputLimit begrenzt die maximale Bandbreite der Daten, die von einem Gerät gesendet werden. Der maximale Wert kann in Bytes pro Sekunde angegeben werden. Daraus wird eine entsprechende Verzögerung zwischen den Streamchannel-Paketen berechnet, die dann als
GevSCPD-Wert verwendet wird. Die Einheit in Bytes pro Sekunde erlaubt damit schon eine recht genaue und intuitive Steuerung des Datendurchsatzes.
IDS Erweiterung für mehr Klarheit
IDS implementiert in der GigE Vision Firmware (ab Version 1.3) zwei zusätzliche Merkmale, die noch mehr Übersicht beim Bandbreitenmanagement bringen.
- DeviceLinkCalculatedThroughput
- DeviceLinkAcquisitionFrameRateLimit
Durch die Eingabe einer Durchsatzgrenze (DeviceLinkThroughputLimit) berechnet die Kamerafirmware zum einen die benötigten Paketverzögerungen (GevSCPD) und zum anderen die maximal mögliche Framerate (DeviceLinkAcquisitionFrameRateLimit), die mit der aktuellen Beschränkung erreichbar ist.
Zusätzlich informiert der berechnete Durchsatz (DeviceLinkCalculatedThroughput) über die theoretische Bandbreite des Gerätes, die ohne die Beschränkung genutzt würde. Eigene aufwendige Berechnungen für jede Kamera sind damit nicht mehr notwendig.
Die zusätzlichen Merkmale stehen Ihnen in jeder GigE Vision kompatiblen Kamera-Anwendung zur Verfügung. Im Weiteren wird die Verwendung im IDS Vision Cockpit gezeigt.
Datendurchsatz beschränken
Wenn Sie in Ihrer GigE Vision-Anwendung eine hohe Datenbandbreite über einen Gigabit-Ethernet-Port übertragen wollen, sollten Sie einen Blick auf diese neuen IDS Kamera-Features werfen, da es schon beim Öffnen zweier Kameras mit den Standardeinstellungen zu Engpässen kommen kann.
Starten Sie die angeschlossenen Kameras am besten „ohne sofortigen“ Bildeinzug und nehmen Sie zuerst Ihre Kamera-Einstellungen vor.
Prüfen Sie vor dem Start des Bildeinzugs den berechneten Datendurchsatz, die maximal mögliche Framerate und setzen Sie gegebenenfalls ein Bandbreitenlimit. Für eine sinnvolle Übersicht filtern Sie die „Device-Nodes“ mittels des Begriffs „devicelink“ und mindestens „Expert“-Benutzerlevel. Die folgende gefilterte Device-Nodes-Übersicht zeigt Ihnen die Parameter mit Beispielwerten der Kamera-Datenbandbreite:
Standardmäßig sind die Kameras in ihrem Datendurchsatz unbeschränkt und nutzen das maximal einstellbare Durchsatzlimit (DeviceLinkThroughputLimit) von 120 MBps. Die Kamera in diesem Beispiel würde mit aktuellen Einstellungen bei einer Framerate von 25 fps einen Datendurchsatz (DeviceLinkCalculatedThroughput) von ca. 61 MBps erzeugen. Mit dem maximalen Limit könnte die Kamera bis zu 46 Bilder pro Sekunde (DeviceLinkAcquisitionFrameRateLimit) aufnehmen und übertragen. Variieren Sie die Kameraparameter ändern sich infolge dessen auch der „berechnete Durchsatz“ (DeviceLinkCalculatedThroughput) und die „maximale Framerate“ (DeviceLinkAcquisitionFrameRateLimit).
Limitieren Sie aber unabhängig der Kamera-Einstellungen und der daraus resultierenden Datenrate den Datendurchsatz mittels „DeviceLinkThroughputLimit“, wird die Kamera diesen Wert niemals überschreiten.
Wird in dem Beispiel das Durchsatzlimit auf 50 MBps reduziert, ist bei identischen Einstellungen lediglich eine maximale Framerate von ca. 20 fps möglich.
Da der berechnete Datendurchsatz mit ca. 60 MBps unverändert das Limit überschreitet, kann die Kamera nicht mehr die eingestellte Framerate von 25 fps übertragen. Es kommt zu einem Datenstau im Übertragungspuffer in der Kamera. Können aufgenommene Bilder nicht zwischengepuffert werden, „dropped“ die Kamera die Bilder. Die tatsächliche Übertragungsrate pendelt sich bei etwa der berechneten maximalen Framerate (21 fps) ein.
Je höher der berechnete Datendurchsatz über dem eingestellten Durchsatzlimit liegt, desto mehr Bilder werden von der Kamera intern verworfen und damit nicht übertragen.
In Folge der Bandbreitenreduzierung wird die Bildübertragung der Kamera mit Hilfe der verwendeten Datenpaket-Pausen (GevSCPD) gezielt verzögert!
Vorteile des Bandbreitenlimit
Verteilen Sie die verfügbare Bandbreite eines Gigabit-Ethernet-Ports (120 MBps) durch geeignete Bandbreitenlimits auf die angeschlossenen Kameras. Damit sind Sie sicher vor Übertragungsengpässen, die in Folge zu fehlerhaften und unvollständigen Bildern führen.
Des Weiteren können Sie Kameras unterschiedlich priorisieren, indem Sie den Kameras unterschiedliche Bandbreiten zur Verfügung stellen.
System optimieren
Auch wenn Sie beim Einstellen der Datendurchsätze Ihrer Kameras auf das GigE-Bandbreitenlimit geachtet haben, können hoher Netztraffic oder andere systembasierte Schwankungen kurzzeitig zu Engpässen auf der Gigabit-Leitung führen. Infolgedessen kann es trotzdem noch zu unvollständigen Bildern oder anderen Übertragungsfehlern kommen.
GenTL-Einstellungen
Je nach verwendetem GenTL stehen Ihnen zur Optimierung der Datenübertragung unterschiedliche Möglichkeiten der Einstellung und des Monitoring zur Verfügung. Beispielhaft sind nachfolgend entsprechende Features des IDS GenTL gelistet:
- Der „Stream Monitor“ zeigt über das „Buffer Fill Level“ wie viel Prozent der Übertragungspuffer korrekt übertragen werden. Und der „Resend Request Count“ zeigt die Nutzung der Puffer-Nachforderung.
- Mit dem „Loss Handling“ der Datenstrom-Steuerung können Sie steuern, wieviel Daten nachgefordert werden sollen. Dieses Feature ist standardmäßig ausgeschaltet.
- „Unvollständige“ Bilder werden vom IDS GenTL gezählt aber trotzdem übertragen. Der Anwender kann dann selbst entscheiden, ob er diese Bilddaten verwenden möchte.
Reserve vorsehen
Um bei kurzzeitigen Performance-Schwankungen des Netzwerks nicht direkt Übertragungsfehler zu provozieren, sollten Sie auf jeden Fall Reserven vorsehen. Planen Sie bei der Verteilung der verfügbaren Bandbreite etwa 10 % Reserve ein, die nicht von den Kameras belegt wird.
Hinweise zur Einstellung der verwendeten Netzwerkkarte
- Wir empfehlen, in den Einstellungen der Netzwerkkarte die Empfangspuffer (Receive Descriptors) auf den Maximalwert zu setzen.
- Ebenfalls wird empfohlen, in den Einstellungen der Netzwerkkarte "Jumbo Frames" (auch: Jumbo Packet, Großes Paket, Großrahmen) auf den Maximalwert zu setzen.
Beachten Sie, dass die Verbindung zwischen der Kamera und dem PC durchgehend jumbofähig sein muss, um die Übertragung der Jumbo-Pakete sicherzustellen. Informationen zu diesen Einstellungen finden Sie in der Beschreibung des Netzwerkkarten-Herstellers.
Fazit
Neben den bereits im Standard definierten Funktionen zur Bandbreitenregulierung sind in der IDS GigE Vision Firmware zwei weitere IDS Parameter implementiert, die für noch mehr Übersicht sorgen.
IDS GigE Vision Kameras nutzen das Bandbreitenlimit nicht nur zur selbständigen Beschränken des Daten-Outputs, sondern zeigen auch noch die damit mögliche Framerate und als Vergleich die berechnete Bandbreite bei Nutzung der aktuellen Kameraeinstellungen. Mit diesen zusätzlichen Kameraparametern ist umgekehrt auch eine Optimierung der Kameraeinstellungen möglich, um das Bandbreitenlimit einzuhalten.
Mit diesen Möglichkeiten stellen Sie auch mehrere Kameras (Multikamerasystem) optimal auf den Betrieb am selben Gigabit-Ethernet-Port ein ohne die maximale Bandbreite zu überlasten. Dadurch lassen sich Engpässe effektiv vermeiden, die sonst zu Fehlern in der Bildübertragung führen.