Datenerfassung (USB) über eine dll - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenkommunikation (/Forum-Datenkommunikation) +---- Thema: Datenerfassung (USB) über eine dll (/Thread-Datenerfassung-USB-ueber-eine-dll) |
Datenerfassung (USB) über eine dll - Oliver22 - 17.04.2015 09:25 Hi allerseits ich bin ganz neu beim Thema LabView gelandet (habe mehr Erfahrung mit Programmiersprachen wie Java, Delphi usw.). Im Moment bastele ich an 2 Projekten rum, beide sind von der Struktur her ähnlich. Es handelt sich um USB Geräte, die über eine dll angesteuert werden sollen. Also habe ich mit USB selber nichts zu tun, nur mit der dll-Ansteuerung. Projekt 1: es handelt sich um die Geräte A und B (ich anonymisiere das jetzt mal), das funktioniert auch erstmal Projekt 2: es handelt sich um ein Gerät C, da habe ich derzeit Probleme, Daten zu erfassen Konkret sieht das so aus: zunächst muss die Messung an C gestartet werden (kann z.B. 10 sec dauern). Danach warte ich mit einem While-Loop, bis C mir ein ready liefert. Dann versuche ich den Messwert abzuholen. Allerdings friert nun bei mir immer das ganze LabView ein (also nicht nur die VI), ich kann nicht mal mehr den roten Stopbutton klicken (nur noch Taskmanager hilft). Ok, also nun die konkreten Fragen: wie kann ich einen "wait" Block einbauen, der nur eine bestimmte Zeit wartet? Ich habe in der Doku gesehen, es gibt so einen, der hat aber nur blaue Verbindungslinien, ich brauche aber eine andere Verbindungslinie von einem Block zum anderen. Wie kann ich einen "while" Loop einbauen mit einer bestimmten Zeit?! viele Grüße Olli RE: Datenerfassung (USB) über eine dll - GerdW - 17.04.2015 10:35 Hallo Oliver, Zitat:wie kann ich einen "wait" Block einbauen, der nur eine bestimmte Zeit wartet?Mit der Funktion "Wait (ms)"… Zitat:ich brauche aber eine andere Verbindungslinie von einem Block zum anderenWozu brauchst du eine "Verbindungslinie" von einem Block zum anderen, wenn du nur einen Block zum Warten benötigst? Zitat:Wie kann ich einen "while" Loop einbauen mit einer bestimmten Zeit?!Wozu eine Schleife, um eine bestimmte Zeit zu warten? Ansonsten: Code: FOR i = 0 TO N-1 ; N Sekunden Warten Zitat:Dann versuche ich den Messwert abzuholen. Allerdings friert nun bei mir immer das ganze LabView einIch glaube kaum, dass dies ein Problem mit der Wartezeit-Funktion ist. Vielmehr deutet das auf einen Absturz aufgrund Fehlern in der DLL oder beim Aufruf derselben hin… Und solange du meinst, hier dein "Gerät C" anonymisieren zu müssen, werden wir da nicht weiterhelfen können! Tipp: Wenn du neu bei LabVIEW bist, solltest du dir die Einsteigertutorials antun (siehe Links in meiner Signatur). Dann könntest du auch das richtige LabVIEW-Vokabular verwenden, "Verbindungslinien" sind z.B. Drähte. Und "blaue Linien" bezeichnen einen (bzw. verschiedene) Datentyp(en) - leider nennst du uns nicht den aktuell verwendeten… RE: Datenerfassung (USB) über eine dll - Oliver22 - 17.04.2015 14:25 Hi Gerd danke für die Antwort. Ich habe inzwischen einen Warteblock gefunden. Der funktioniert nun auch. Also das "Einfrieren" ist nun nicht mehr vorhanden, und der Messwert kommt auch korrekt an nach der Wartezeit. Ok, also der Draht, den ich brauchte, war einer, der zu einem Block namens "Knoten zum Aufruf externer Bibliotheken" führt. Das Gerät an sich funktioniert schon, wir haben ein (C++) Programm, das auch den Wert abrufen kann, allerdings brauchen wir dasselbe nun in LabView. vielen Dank nochmals, das LabView Vokabular muss ich noch lernen Olli |