Industrie-Kamera - Home

Programmier-Schnittstelle

Der Begriff "Programmier-Schnittstelle" wird im Folgenden sehr grosszügig ausgelegt. Er beschreibt lediglich einige typische Möglichkeiten für Programmierer, die auf Industriekameras zugreifen möchten.

Wir gehen dabei davon aus, dass die jeweilige industrielle USB-Kamera, FireWire-Kamera oder GigE-Kamera an einen Rechner angeschlossen ist und auf diesem eine Anwendungs-Software entwickelt werden soll. Die Anwendungs-Software schreibt Parameter (wie z.B. die Belichtungszeit) in die Industriekamera und holt deren Bilder ab. Dieser Vorgang wird als Bild-Akquisition oder Capturing bezeichnet.

IIDC/DCAM

IIDC steht für "Instrumentation & Industrial Digital Camera". Dieses ist eine Arbeitsgruppe im Rahmen der Standardisierung der FireWire-Schnittstelle (IEEE 1394). Die Arbeitsgruppe hat unter dem Kürzel DCAM ein Protokoll für industrielle FireWire-Kameras spezifiziert. IIDC/DCAM beschreibt auf einfach Weise

  • wie die FireWire-Kamera mitteilt, welche Parameter sie zur Verfügung stellt (z.B. ob die Belichtungszeit manuell eingestellt werden kann und wenn Ja in welchem Bereich),
  • wie die verfügbaren Parameter eingestellt werden und
  • wie die Daten übertragen werden.

IIDC/DCAM ist ideal für all diejenigen, die eine hardwarenahe Programmierung bevorzugen und die Betriebssysteme einsetzen, die diese Art der Programmierung zulassen. FireWire-Kameras sind daher besonders interessant, wenn Windows nicht eingesetzt werden soll/kann. Selbstverständlich gibt es aber auch sehr effiziente Möglichkeiten, mit FireWire-Kameras unter Windows zu arbeiten.

IIDC/DCAM ist ein offener Standard. Es fallen keine Lizenzgebühren an. Nicht zuletzt deswegen gibt es verschiedenste Open Source Software die FireWire-Kameras unterstützt.

GigE Vision®

Das, was IIDC/DCAM für FireWire-Kameras ist, ist GigE Vision® für industrielle GigE-Kameras. GigE Vision® ist ein geschlossener Standard und ein eingetragenes Warenzeichen der Automated Imaging Association (AIA). Es gibt daher keine Open Source Software für GigE-Kameras.

GenICam™

Während IIDC/DCAM und GigE Vision® jeweils nur einen Typ Industrie-Kamera unterstützen, ist das Ziel von GenICam™, ein Protokoll für verschiedenste Industrie-Kameras zur Verfügung zu stellen. GenICam™ ist ein Warenzeichen der European Machine Vision Association (EMVA). Eine Referenz-Implementation ist für Mitglieder der GigE Vision®-Gruppe frei nutzbar.

DirectX®/DirectShow®

Die drei ersten Programmier-Schnittstellen sind mehr oder weniger hardware-nahe. Eine zeitgemässe Entwicklung von Anwendungs-Software basiert dagegen auf Programmier-Schnittstellen des jeweiligen Betriebssystems (API - Application Programming Interface). Nur auf diese Weise ist es möglich hardware-unabhängig Software zu entwickeln. Tut man das nicht, kann bereits eine kleine Änderung der Hardware bis in die Anwender-Software "durchschlagen".

Unter Windows ist die für Industrie-Kameras zuständige Programmier-Schnittstelle DirectX/DirectShow. Um zu DirectX/DirectShow kompatibel zu sein, muss ein Hersteller von Industrie-Kameras für diese einen WDM Stream Class Treiber zur Verfügung stellen.

Einer der Pioniere der Verwendung von DirectX/DirectShow in der industriellen Bildverarbeitung ist The Imaging Source. Zur Vereinfachung der Arbeit mit DirectX/DirectShow stellt The Imaging Source das bekannte SDK IC Imaging Control zur Verfügung.

DirectX/DirectShow ist eine offene Schnittstelle. Es fallen keine Lizenzgebühren an.

Unicap

Mit DirectX/DirectShow gibt es unter Windows eine Programmier-Schnittstellen (API) für Multimedia-Geräte im Allgemeinen und Industrie-Kameras im Besonderen. Unter Linux fehlt eine solche Programmier-Schnittstelle. Das Ziel des Projektes Unicap ist es, eine solche zu schaffen.

Unicap ist ein privates Projekt und steht unter der GNU General Public License (GPL). Software, die mit Hilfe von Unicap erstellt wurde, muss also ebenfalls unter GPL gestellt werden. Unicap wird daher so gut wie nie in kommerziellen Projekten eingesetzt.