INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

CPC



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.)
Beitrag #1

joe1234 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 136
Registriert seit: Sep 2007

2010
2007
kA


Deutschland
CPC
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.

Hier noch der Anhang mit .dll und .h Dateien.


Angehängte Datei(en)
Sonstige .zip  Diskette.zip (Größe: 1,59 MB / Downloads: 282)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2008, 10:35
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
CPC
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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2008, 10:56
Beitrag #3

joe1234 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 136
Registriert seit: Sep 2007

2010
2007
kA


Deutschland
CPC
' 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!!!

Gruß Joe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2008, 12:21
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
CPC
Deine Frage lautet (momentan) also im Klartext:

Wer kann mir bei der Einbindung der CPC-CAN-DLL in LV behilflich sein?

Dann frag das halt auch, anstatt das noch mit HEX->DEZ Konversionen (wofür es übrigens ein VI in der String-Palette gibt) zu vermischen.

MfG, Jens

P.S.: Ach ja, meine Antwort lautet nein, habe bei einer solchen DLL mit Structures hoch 5 keine Lust, mich einzuarbeiten.

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2008, 12:52 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2008 12:55 von jg.)
Beitrag #5

StefanHH Offline
LVF-User
*


Beiträge: 35
Registriert seit: Aug 2006

7.0, 8.21, 8.5, 2013
2006
DE_EN

21220
Deutschland
CPC
Hallo Joe,

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-
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.03.2008, 12:56
Beitrag #6

joe1234 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 136
Registriert seit: Sep 2007

2010
2007
kA


Deutschland
CPC
' 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.

Gruß Joe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.03.2008, 15:10
Beitrag #7

joe1234 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 136
Registriert seit: Sep 2007

2010
2007
kA


Deutschland
CPC
' schrieb:Hallo Joe,

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!!! ;-)

Gruß Joe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.03.2008, 10:05
Beitrag #8

joe1234 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 136
Registriert seit: Sep 2007

2010
2007
kA


Deutschland
CPC
' schrieb:Hallo Joe,

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.

Gruß Joe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.03.2008, 10:58
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
CPC
Aha, sind wir also doch hier:

' schrieb:Deine Frage lautet (momentan) also im Klartext:

Wer kann mir bei der Einbindung der CPC-CAN-DLL in LV behilflich sein?

Dann frag das halt auch, anstatt das noch mit HEX->DEZ Konversionen (wofür es übrigens ein VI in der String-Palette gibt) zu vermischen.

MfG, Jens

P.S.: Ach ja, meine Antwort lautet nein, habe bei einer solchen DLL mit Structures hoch 5 keine Lust, mich einzuarbeiten.

Schon das LVF-Tutorial gelesen?

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.03.2008, 11:36 (Dieser Beitrag wurde zuletzt bearbeitet: 26.03.2008 11:42 von joe1234.)
Beitrag #10

joe1234 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 136
Registriert seit: Sep 2007

2010
2007
kA


Deutschland
CPC
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.


Angehängte Datei(en)
Sonstige .zip  Diskette.zip (Größe: 109,62 KB / Downloads: 246)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: