Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
USB-Relais Karte über VEE steuern
15.01.2008, 09:31
Beitrag: #1
USB-Relais Karte über VEE steuern
Hallo zusammen!

Hoffe ihr habt den Rutsch alle gut überstanden, is auch schon wieder 2 Wochen her Wink

Habe eine Frage bezüglich eines USB-Relais, das ich gerne über VEE steuern will.
Beim Kauf dieses Relais habe ich eigentlich gedacht, das ich auch ein Testprogramm (geschrieben mit VEE) bekomme. Aber ich fand auf der Treiber-CD leider nur alle möglichen Programmiersprachen ( Labview, C, Delphi, VB...) nur nicht VEE. Eigentlich ist das ja ganz einfach, ich muss nur die Relais aktivieren und deaktivieren können. Befehle stehen jedoch in der Anleitung, aber ich glaube das sind C und VB befehle.
Eine Library musste ich auf jedenfall schon installieren.

Hier noch ein Link zu diesem USB-Relais
http://www.quancom.de/qprod01/deu/pb/usb_relais.htm">http://www.quancom.de/qprod01/deu/pb/usb_relais.htm

Leider antwortet mir der Support dieser Firma nicht wirklich, hoffe das mir in diesem Forum weitergeholfen werden kann.

Danke schonmal!

Gruß Florian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.01.2008, 17:27
Beitrag: #2
 
Steht doch alles drinne ;-) Nur kein VEE Beispiel. Aber das ist easy:
Ruf die Lib in VEE auf mit der dll und der .h , und dann kannst du loslegen...
Die lib wird ja VEE konform sein, wie es da beschrieben ist.
Wenn du dir das Manual und die Webseite durchliest, hast du doch alle Infos soweit.
Wuerd dir ja gerne ein fertiges Programm stricken, aber ich moechte nicht diese lib auf meinem Rechner installieren...

Mit dem Aufruf der lib (.dll) und der (.h) kommst du klar ?

Ansonsten schau mal in examples/contrib/win32api da wird das mit den Windows libs gemacht...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.01.2008, 19:57
Beitrag: #3
 
Hi,

ich habe gerade zu einem anderen Problem ein Beispiel gepostet.
Wenn du die .h Datei anpassts, dann sollte es auch bei dir klappen.

Hier habe ich ein Beispiel für dich ->
http://www.veeforum.de/forum/downloads.p...l&df_id=13">http://www.veeforum.de/forum/downloads. ... l&df_id=13
Die Definitionsdatei .h (USB Contents) ist in der UserFunktion Load_PCAN_USB das ist das einzig Interessante für dich.

Du mußt aus der .h im Beispiel C++ das Gleiche Format erstellen wie im CAN-Beispiel. VEE unterstützt nicht alle C++ Typen, du mußt auch nicht ALLES übersetzen/anpassen.
Wenn du nur ein Relais ein/ausschalten willst, dann genügen bestimmt ein paar API Befehle.

Hier ist ein wenig Fleiß angesagt.

Im Basic-Beispiel steht ( siehe USBREL8_vb_digital_out Download -> Form1.frm) was man braucht !

zum Relais setzen:
handle = QAPIExtOpenCard(USBREL8, nDevice)
Call QAPIExtWriteDO32(handle, i%, lines, 0)
Call QAPIExtCloseCard(handle)

zum Port lesen:
QAPIExtGetCardInfoEx(card, lpcd)

was in C++ dem entspricht:

ULONG QAPICALLER QAPIExtOpenCard (ULONG cardnum,ULONG devnum);
void QAPICALLER QAPIExtWriteDO32 (ULONG cdl,ULONG channel,ULONG value,ULONG mode);
void QAPICALLER QAPIExtCloseCard (ULONG cdl);

ULONG QAPICALLER QAPIGetCardInfoEx (ULONG cardnum,LPCARDDATAS lpcd);

Was meinst wie es für die 4 Aufrufe in VEE sein könnte ? benutze das CAN-Beispiel :roll:
Denn probieren und noch besser, verstehen solltest du das schon mal.

Ich freue mich auf deinen Vorschlag. Big Grin

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.01.2008, 08:24
Beitrag: #4
 
Danke erstmal für eure schnellen Antworten!

Sowie ich das nun sehe, muss ich diese lib (.dll) und die header datei (.h) erst in VEE einbinden (da schau ich in detlef´s example mal nach).
Damit aber diese .h Datei in VEE funktioniert, muss ich diese C++ Befehle erst auf VEE "konvertieren", richtig?

Werde mir nun mal das Programm anschauen, damit ich mir diese Befehle umschreiben kann!
Danke nochmal, ich meld mich später wieder...obs geklappt hat Wink

Gruß Florian!

----------------
Update:

Ok bin nun (glaub ich) etwas schlauer.
Hab mir dieses Beispiel examples/contrib/win32api/user32.vee mal zurecht gebogen.
In diesem Programm wird ja einer Header-Datei (.h) geladen, die ich vorher erstellen muss. Das hab ich mit Hilfe von Bratbaecker mal gemacht:

ulong __stdcall QAPIExtOpenCard (ULONG cardnum,ULONG devnum);
void __stdcall QAPIExtWriteDO32 (ULONG cdl,ULONG channel,ULONG value,ULONG mode);
void __stdcall QAPIExtCloseCard (ULONG cdl);

ulong __stdcall QAPIGetCardInfoEx (ULONG cardnum,LPCARDDATAS lpcd);

Bei deinem Beispiel fand ich nur einen Funktionstyp und zwar "long".
Aber ich brauche ja in diesem Fall ulong und void, funktioniert das?

Das auf meine Anforderungen angepasste Beispiel hänge ich mal an diesen Post bei.
Habs auch schon versucht, nur bekomm ich ne Fehlermeldung, das ulong nicht als Datentyp erkannt wird (hab auch long getestet).

Also nochmal zum Verständnis...dieses Programm lädt mir ja meine qlib32.dll und meine qlib32.h. Die dll gibts ja schon und diese Headerdatei musste ich ja noch (richtig?!) erstellen.
Danach kann mit dieser Call-Funktion, meine einzelnen Funktionen (die in der Header-Datei drinstehen) aufrufen und je nach Typ Rückgabewerte bekommen.

Hoffe ihr könnt mir nochmals weiterhelfen!

Gruß Florian
-------------
Update 2:

Ok ein Fehler behoben, dieser Funktionsaufruf "QAPIExtOpenCard" hat nicht 2 Rückgabewerte sondern zwei Eingabewerte. Hab das soweit Überarbeitet aber in dem alten Bild unten ist es noch Falsch (Ein und Ausänge vertauscht; 2 Eingänge, 1 Ausgang)
Jedoch bekomm ich immer noch eine Fehlermeldung mit den Dateitypen (ULONG und LONG)


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.01.2008, 11:57
Beitrag: #5
 
So nochmal Ich Wink

Macht euch keine Mühe mehr den oberen Post durchzulesen, habs hinbekommen. Danke nochmal !!

Gruß Florian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.01.2008, 12:18
Beitrag: #6
 
Wohl weil die .h Datei doch schon mitgeloiefert wurde und "VEE-kompatibel " ist, oder ?

Wenn die .h Datei stimmt, braucht man nur noch die entsprechende Funktion aus der Library aufrufen.

Einfach, wenn man es mal verstanden hat , oder ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.01.2008, 12:37
Beitrag: #7
 
Richtig, das habe ich aber erst gesehn, nachdem ich meine eigene Header Datei geschrieben habe. Die Befehle standen ja unter anderem in der Hilfe-Datei. Hat beides funktioniert Smile

Naja und nun wie du sagst ist es auch wirklich einfach.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.01.2008, 16:24
Beitrag: #8
 
Hi Florian,

Bravo und Glückwunsch für deinen Erfolg.
Freud mich, das du es sofort geschaft hast. Big Grin

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2008, 10:50
Beitrag: #9
 
Dann poste doch mal dein Programm hier...
oder schick es an diese Firma fuer deren Downloadbereich ...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:




Partnerforen: LabVIEWForum.de| DIAdem-Forum.de| Machine-Vision-Forum.de| goMatlab.de| VEEforum.de