LabVIEWForum.de
Messen der tatsächlichen Linienrate einer CCD-Line-Cam - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW Vision (/Forum-LabVIEW-Vision)
+---- Thema: Messen der tatsächlichen Linienrate einer CCD-Line-Cam (/Thread-Messen-der-tatsaechlichen-Linienrate-einer-CCD-Line-Cam)



Messen der tatsächlichen Linienrate einer CCD-Line-Cam - RiSo1985 - 02.03.2010 10:02

Hallo Liebe LV-Spezies,

ich arbeite zur Zeit an meinem Bachelorprojekt zur Erfassung von Images mittels einer CCD-Line-Cam von einem Fourier-Domain OCT-System. Dazu brauche ich eine getriggerte IMAQ und diese hab ich mit Erfolg programmiert. In der Anlage findet Ihr das dazu erstellte VI namens "Camera tiggered by DAQmx".

Nun zu meiner Frage: In dem ungetriggerten Modus der Camera (Free Run) stellt man die Integrationszeit ein und er startet die Acquisition. Wie kann ich die dabei erzielte Linienrate messen oder erfassen mit LabVIEW? Da muss es doch irgendeinen Befehl geben, der mir wiedergibt mit welcher Geschwindigkeit die Linien erfasst werden???

Ich brauche die Zeit dieser Linienerfassung für die genaue Berechnung der Linienrate mittels der Integrationszeit für den getriggerten Modus der Camera (siehe Programm).

Optionale Frage: Ist der Wert für die Frames per Sec die mir in der Schleife erzeugt werden, der tatsächliche Wert für die Anzahl der erfassten Frames (also Images mit X Lines) pro sec???

Für Anregungen zur Lösung dieses Problems wäre ich sehr glücklich und mir hilft jede noch so kleine Idee!!!

Auch Verbesserungsvorschläge für das Programm sind mehr als willkommen.


MFG

RiSo


Messen der tatsächlichen Linienrate einer CCD-Line-Cam - SeBa - 02.03.2010 23:37

Hab heute schon mehrfach überlegt/angefangen hier zu antworten.

Zuerst mal kannst du die Linerate ja einfach ermitteln, wenn du die Lines pro Sekunde zählst.
Eventuell kennt deine Kamera auch Befehle und antwortet auf Einen mit der Linerate... k.A. welche Kamera du hast.


Wozu brauchst du die Linerate des FreeRuns um die Belichtungszeit für den getriggerten Modus zu berechnen?
(Vielleicht verstehe ich den Satz bezüglich deiner Berechnung auch nicht richtig...)

Ich meine, die Linerate ist abhängig von der Relativgeschwindigkeit zw. Kamera und Fokusebene als auch von der Auflösung die du dabei realisieren willst/musst.
(-> Vorausgesetzt, du willst das Seitenverhältnis des Abbildes nicht verzerren... aber davon gehe ich mal aus)

Die Belichtungszeit im getriggerten Modus darf halt nicht größer sein, als der Abstand zwischen zwei Linescans. Also kannst du für die gegebene Auflösung und Relativgeschwindigkeit eine Linerate ausrechnen. Da muss deine Belichtungszeit reinpassen. Dann lässt du dir noch ein bischen Luft nach oben, da die Kamera natürlich auch Zeit braucht, um das CCD-Array auszulesen.

Ansonsten kann ich auch nur theoretisch helfen, da ich gar kein Vision hab.


Gruß SeBa


Messen der tatsächlichen Linienrate einer CCD-Line-Cam - RiSo1985 - 03.03.2010 13:32

Erstmal Danke für die schnelle Antwort!

Also im Free Run Modus will die Kamera als Eingabe die Integrationszeit haben und erfasst die Lines meiner Meinung nach so schnell wie es geht! Das Problem ist ja gerade, dass ich die Kamera so schnell wie nur möglich betreiben möchte, d.h. für den Triggermodus soll der Anwender die Integrationszeit eingeben und die Kamera will aber als zweite Eingabe die Linerate -> die möchte ich aber aus der Integegrationszeit berechnen. Dazu benötige ich die Zeit zwischen den Lines. Wie du schon richtig angemerkt hast brauch die Cam zwischen den Lines nicht nur die Zeit der Integration, sondern hat noch eine gewisse Verzögerung und die möchte ich wissen!!!

In der Anlage findest du ein JPG namens "Cam-Timing" mit den Zeitdiagrammen der beiden Synchro-Modi, die ich verwenden möchte - die Zeiten, die da als Verzögerungen angegeben sind, sind allerdings nur als Richtwerte zu sehen! Unten Links in der JPG findest du auch den Typ der Camera (Firma "Atmel").

Befehle für die Kamera, die die Linerate zählen sind mir leider nicht bekannt. Eine Idee, die ich schon umgesetzt habe, die mir aber zu ungenau ist:

- Integrationszeit eingestellt
- die Linerate Stück für Stück geändert bis die maximale Framerate heraus kam (siehe LV Programm am Anfang)
- ist aber zu ungenau -> da kam heraus das die Verzögerung bei 2-4 µs liegt bei einer Output Frequenz von 60 MHz
- außerdem weiß ich nicht wie genau das mit der Framerate gelöst ist, da ich das nicht selber geschriben habe
- nur sind beim Erfassen von ca. 10000 Lines die zu ungenau Angaben der Verzögerungen der Grund für Zeitverlust! (ca. 100 Lines KÖNNTE ich schneller sein ... )


Da ich das Triggersignal der Kamera auf die Linerate abstimmen will, weil ich das Triggersignal noch zur Steuerung eines Abtastscanners benötige, bräuchte ich einen Befahl der mir wiedergibt wie lang es dauert den Puffer für ein Image (z.B. 1000 Lines) zu füllen o.ä.?!

Vielleicht kann man auch das LVAL-Signal (siehe Anhang JPG "Readout-Timing") auslesen via LV und daraus Schlüsse ziehen über den exakten zeitlichen Verlauf? -> aber wie?Wink

MFG
RiSo


Messen der tatsächlichen Linienrate einer CCD-Line-Cam - SeBa - 03.03.2010 21:18

' schrieb:Also im Free Run Modus will die Kamera als Eingabe die Integrationszeit haben und erfasst die Lines meiner Meinung nach so schnell wie es geht!
-> Würde ich jetzt erstmal auch so interpretieren.

Das Problem ist ja gerade, dass ich die Kamera so schnell wie nur möglich betreiben möchte,
-> Was nimmst du jetzt eigentlich auf? Du hast Imags geschrieben, da dachte ich eigentlich dass du eine korrekte Aspektratio für deine Images haben willst?
Also ein Kreis bleibt ein Kreis und wird nicht gestaucht oder gestreckt...


d.h. für den Triggermodus soll der Anwender die Integrationszeit eingeben und die Kamera will aber als zweite Eingabe die Linerate -> die möchte ich aber aus der Integegrationszeit berechnen. Dazu benötige ich die Zeit zwischen den Lines. Wie du schon richtig angemerkt hast brauch die Cam zwischen den Lines nicht nur die Zeit der Integration, sondern hat noch eine gewisse Verzögerung und die möchte ich wissen!!!

Befehle für die Kamera, die die Linerate zählen sind mir leider nicht bekannt.
->Manual Page 5: Camera Command and Control
evtl. wird mit "Camera configuration readout" oder "Current camera configuration record" die Linerate mitgeliefert... musst du mal schauenBig Grin


Eine Idee, die ich schon umgesetzt habe, die mir aber zu ungenau ist:
- Integrationszeit eingestellt
- die Linerate Stück für Stück geändert bis die maximale Framerate heraus kam (siehe LV Programm am Anfang)
-> hab ich immer noch nicht angeschautTongue

- ist aber zu ungenau -> da kam heraus das die Verzögerung bei 2-4 µs liegt bei einer Output Frequenz von 60 MHz
-> Welches CCD Array hast du? 4k? Dann hast du eine max. Linerate von 14kHz...
Keine der Cams im Manual schafft 60MHz Linerate... das ist die Bus-Geschwindigkeit vom CameraLink-Interface.

Bei einer Linerate von 14kHz ist der Abstand zwischen den Scans ca. 71µs. Wenn du Otto Normalverbraucher fragst, dann bedeutet es, dass alle 71µs eine Zeile ausgelesen werden kann. Wie lange das Readout ect. jetzt dauert, interessiert doch keinen (zumindest den O.N. nicht).

Ich würde pragmatisch an die Sache rangehen und die max. Linerate als gegeben betrachten. Ende aus. Wie der Chip es im Detail regelt... lass sich Andere den Kopf darüber zerbrechen.

Wenn du vom User eine Belichtungszeit bekommst, musst/kannst du ja nicht genauso schnell Scannen. Das soll heißen, der User kann 5µs Belichtungszeit vorgeben, du kannst (am Bsp. von 14kHz Linerate) aber schnellstens alle 1/Linerate Sekunden (~71µs) eine Zeile auslesen. Natürlich kannst du dir auch mehr Zeit dabei lassen.

Gruß SeBa


Messen der tatsächlichen Linienrate einer CCD-Line-Cam - RiSo1985 - 04.03.2010 09:27

Die Cam hat 2048 Pixel also 28 kHz. Die Messung der Framerate ergab jedoch, dass eben nicht bei 28 kHz das Optimum liegt!!

"Befehle für die Kamera, die die Linerate zählen sind mir leider nicht bekannt.
->Manual Page 5: Camera Command and Control
evtl. wird mit "Camera configuration readout" oder "Current camera configuration record" die Linerate mitgeliefert... musst du mal schauen "

Jo das ist doch mal was ... aber wo geb ich diese Befehle ein und wie realisiere ich das mit LabVIEW??? Wie mitgeliefert, wo hole ich das Mitgelieferte ab? Schreib ich dort die Befehle rein - siehe Anhang (JPG). Aber ich habe keine Ahnung, wie man sowas programmiert und selbst wenn diese Befehle reingeschrieben sind, wo erhalte ich dann die benötigten Informationen - im LV oder im MAX? Need Help!!! O


Messen der tatsächlichen Linienrate einer CCD-Line-Cam - SeBa - 04.03.2010 11:56

Da ich heute sowieso den ganzen Tag vor der Kamera hänge, hab ich es für dich mal ausprobiert...

Wenn ich meine Cam nach den Parametern frage, antwortet die mit einer Liste.

In dieser Liste steht irgendwo auch:

' schrieb:SYNC Frequency: external (249.993) Hz
Exposure Time: external

Das heißt wenn man die ganze Liste einliest, kann man im String nach SYNC Frequenzy suchen und den entsprchenden Teil ausfiltern.

Wie diese Kommunikation mit der Cam jetzt von LV aus gestaltet werden kann... k.A.
Da musst du dich mal in das entsprechende Protokoll einlesen oder mal googeln ob das jemand schon mal gemacht hat.


Gruß SeBa


Messen der tatsächlichen Linienrate einer CCD-Line-Cam - RiSo1985 - 04.03.2010 19:56

Darf ich fragen, wie du das gemacht hast? Wie sprichst du die Cam ohne LV an? Wie wird die Liste dargestellt? Hab im Internet nix gefunden?!


Messen der tatsächlichen Linienrate einer CCD-Line-Cam - SeBa - 04.03.2010 20:17

Die Cam ist Bestandteil von einem 3rd Party Inspektionssystem. Die Hersteller wissen auch nicht, dass ich mich mit der Cam unterhalte, waren aber so freundlich die Schnittstelle zu implementieren.

Ich öffne im Menü des Systems den Cameralink wähle eine Cam aus und sende ein Kommando. Der Antwortstring wird einfach in einer Textbox dargestellt.


In deinem Fall ist auf Seite 10 des Manuals das Protokoll beschrieben.
Frag doch mal deim Hersteller/Lieferanten nach, ob es für die Kommunikation ein Beispielprogramm/Treiber ect. gibt.


EDIT:
Hier mal die CameraLink Spezi.

Und evtl. kannst du hiermit mit der Cam kommunizieren CameraLink Miniterminal (habs aber nicht getestet)


Gruß SeBa


Messen der tatsächlichen Linienrate einer CCD-Line-Cam - RiSo1985 - 06.03.2010 11:26

Vielen vielen Dank - das wird mich erstmal weiter bringen!!!