Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
18.03.2008, 09:35 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2008 09:45 von joe1234.)
Hallo liebe Forengemeinde,
ich habe folgendes Gerät CPC USB und möchte es gerne mit LabVIEW nutzen. Leider bin ich nicht so fit im Programmieren. Da ich das Gerät in LV nicht über eine Schnittstelle auswählen kann, muss ich irgendwie die .dll einbinden. Jedoch habe ich genau hier Probleme und wollte um Rat bitten!!!
Hintergrund:
Das Gerät liefert mir Hexadezimalwerte und ich möchte diese Werte direkt in Dezimalwerte um wandeln, so dass ich die Änderung der Werte live verfolgen kann.
Deine Frage verwirrt etwas. Worum geht es konkret?
Geht es um die komplette Einbindung der dll in LV, wie hier suggeriert?
' schrieb:Da ich das Gerät in LV nicht über eine Schnittstelle auswählen kann, muss ich irgendwie die .dll einbinden. Jedoch habe ich genau hier Probleme und wollte um Rat bitten!!!
Dann viel Spass, bei den ganzen Strukturen, die da in den Header-Dateien definiert werden...
Oder geht es "nur" darum, HEX-Werte in Dezimalwerte zu wandeln?
' schrieb:Das Gerät liefert mir Hexadezimalwerte und ich möchte diese Werte direkt in Dezimalwerte um wandeln, so dass ich die Änderung der Werte live verfolgen kann.
Dann such mal im Forum, hatten wir schon öfters.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
' schrieb:Deine Frage verwirrt etwas. Worum geht es konkret?
Geht es um die komplette Einbindung der dll in LV, wie hier suggeriert?
Dann viel Spass, bei den ganzen Strukturen, die da in den Header-Dateien definiert werden...
Oder geht es "nur" darum, HEX-Werte in Dezimalwerte zu wandeln?
Dann such mal im Forum, hatten wir schon öfters.
MfG, Jens
Meine Aufgabe besteht eigentlich darin, das bzw. die Ergebnisse von Hexadezimal in Dezimal umzuwandeln. Was eigentlich nicht so schwer wäre, wenn ich das Gerät mit LV auslesen könnte. Und genau da liegt der Wurm, ich habe keine Ahnung wie ich es auslesen soll!!!
selbiges habe ich vor einiger Zeit auch machen dürfen, allerdings mit anderer HW... Mit Hilfe des NI Wizards "Import shared library" unter LV 8.5 (Menuleiste: Tools/Import/SharedLibrary(.dll)), geht das. Dort gibst du den Pfad zur DLL und Headerfile an und LV erkennt automatisch welche Funktionen zu importieren sind. Für die Strukturen bist du gezwungen eigene Cluster anzulegen, die die structs aus dem header abbilden. Wichtig, wenn du auf selbst definierten Clustern arbeitest, musst du dem CallLibraryFunctionNode, die struktur als Übergabeparameter zur Verfügung stellen (also: am Eingang und Ausgang anschließen.) Ich empfehle die Structs bzw. Cluster als TypeDef anzulegen und alles in einer Bibliothek zu bündeln. Zudem bietet LV tolle Möglichkeiten, die API gleich mit in die VI Dokumentation mit einzubinden.
Diese Aufgabe ist tatsächlich mit etwas Aufwand verbunden und würde zulange dauern, um sich "by the way" damit zu beschäftigen. Aber, falls spezielle Fragen auftreten, helfe ich gerne.
Auf der NI Homepage sind Beispiele dazu zu finden. (Ein hilfreiches war: http://zone.ni.com/devzone/cda/tut/p/id/2818) und wie Jens geschrieben hatte, sind im Forum schon einige Fragen dazu gefallen.
Schönen Gruß,
Stefan
Unter Intuition versteht man die Fähigkeit gewisser Leute,
eine Lage in Sekundenschnelle falsch zu beurteilen.
-Friedrich Dürrenmatt-
' schrieb:Wer kann mir bei der Einbindung der CPC-CAN-DLL in LV behilflich sein?
Die Frage ist so nicht ganz richtig. Ich will das Gerät nur "abhören". Wenn ich eine Schnittstelle zum Auswählen hätte, würde ich dananch nur noch "read"-Befehl einbauen, aber genau diese Schnittstelle habe ich nicht!
Das "simple" Konvertieren in Dezimal schaffe ich auch selber.
selbiges habe ich vor einiger Zeit auch machen dürfen, allerdings mit anderer HW... Mit Hilfe des NI Wizards "Import shared library" unter LV 8.5 (Menuleiste: Tools/Import/SharedLibrary(.dll)), geht das. Dort gibst du den Pfad zur DLL und Headerfile an und LV erkennt automatisch welche Funktionen zu importieren sind. Für die Strukturen bist du gezwungen eigene Cluster anzulegen, die die structs aus dem header abbilden. Wichtig, wenn du auf selbst definierten Clustern arbeitest, musst du dem CallLibraryFunctionNode, die struktur als Übergabeparameter zur Verfügung stellen (also: am Eingang und Ausgang anschließen.) Ich empfehle die Structs bzw. Cluster als TypeDef anzulegen und alles in einer Bibliothek zu bündeln. Zudem bietet LV tolle Möglichkeiten, die API gleich mit in die VI Dokumentation mit einzubinden.
Diese Aufgabe ist tatsächlich mit etwas Aufwand verbunden und würde zulange dauern, um sich "by the way" damit zu beschäftigen. Aber, falls spezielle Fragen auftreten, helfe ich gerne.
Auf der NI Homepage sind Beispiele dazu zu finden. (Ein hilfreiches war: http://zone.ni.com/devzone/cda/tut/p/id/2818) und wie Jens geschrieben hatte, sind im Forum schon einige Fragen dazu gefallen.
Schönen Gruß,
Stefan
Danke Stefan, das ist schon um einiges hilfreicher. Ich mache mich gerade damit vertraut und werde mich sicher bald wieder melden.
Ansonsten wünsche ich allen Frohe Ostern und viel Spass beim Eiersuchen!!! ;-)
selbiges habe ich vor einiger Zeit auch machen dürfen, allerdings mit anderer HW... Mit Hilfe des NI Wizards "Import shared library" unter LV 8.5 (Menuleiste: Tools/Import/SharedLibrary(.dll)), geht das. Dort gibst du den Pfad zur DLL und Headerfile an und LV erkennt automatisch welche Funktionen zu importieren sind. Für die Strukturen bist du gezwungen eigene Cluster anzulegen, die die structs aus dem header abbilden. Wichtig, wenn du auf selbst definierten Clustern arbeitest, musst du dem CallLibraryFunctionNode, die struktur als Übergabeparameter zur Verfügung stellen (also: am Eingang und Ausgang anschließen.) Ich empfehle die Structs bzw. Cluster als TypeDef anzulegen und alles in einer Bibliothek zu bündeln. Zudem bietet LV tolle Möglichkeiten, die API gleich mit in die VI Dokumentation mit einzubinden.
Diese Aufgabe ist tatsächlich mit etwas Aufwand verbunden und würde zulange dauern, um sich "by the way" damit zu beschäftigen. Aber, falls spezielle Fragen auftreten, helfe ich gerne.
Auf der NI Homepage sind Beispiele dazu zu finden. (Ein hilfreiches war: http://zone.ni.com/devzone/cda/tut/p/id/2818) und wie Jens geschrieben hatte, sind im Forum schon einige Fragen dazu gefallen.
Schönen Gruß,
Stefan
Hallo,
ich habe nun die cpcwin.dll mit dem Headerfile cpclib.h angegeben. Dabei hatte ich mehrere VIs erhalten. Jedoch ist mir aufgefallen, dass LV nicht alle Funktionen übernommen hat. Dies liegt wohl daran, dass manche Funktionen einen nicht-Standard Übergabeparameter haben (also kein int, char...). Kann das irgendwie umgehen? Also ich würde gerne alle Funktionen übernehmen.
Das Tutorial habe als aller erstes gelesen!!!
Noch bevor ich den Thread hier eröffnet habe.
Trotzdem nochmal zu meiner Frage:
Wenn Funktionen nicht erkannt oder falsch erkannt werden, wie kann ich die Funktionen trotzdem als VI darstellen???
Mir ist aufgefallen, dass es Funktionen sind, die einen eigenen Typ (also kein Standardtyp wie Integer, String, Char...) als Übergabeparameter oder als Rückgabewert haben.
Gruß Joe
Hier habe ich mal die 2 Dateien (.h Datei + .dll Datei) noch herauskopiert, um die es hier eigentlich geht.