LabVIEWForum.de - USB Relay DLL import

LabVIEWForum.de

Normale Version: USB Relay DLL import
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi

Ich versuche die DLL für ein USB Relais in Labview zu bekommen aber leider scheint mal wieder das Header File nicht kompatibel zum Import Assistent zu sein.
Wie bei einem meiner letzen Versuche eine DLL einzubinden, ist auch hier wieder ein struct enthalten den der Import Assistent nicht auflösen kann, kann mir jemand sagen ob und wie man das Haeder File anpassen muss damit der Import Assistend die DLL korrekt importiert?
(21.02.2017 21:24 )hansi9990 schrieb: [ -> ]Hi

Ich versuche die DLL für ein USB Relais in Labview zu bekommen aber leider scheint mal wieder das Header File nicht kompatibel zum Import Assistent zu sein.
Wie bei einem meiner letzen Versuche eine DLL einzubinden, ist auch hier wieder ein struct enthalten den der Import Assistent nicht auflösen kann, kann mir jemand sagen ob und wie man das Haeder File anpassen muss damit der Import Assistend die DLL korrekt importiert?

Gar nicht!

Die Struktur usb_relay_device_info ist eine LinkedList was grundsätzlich schon mal eine Unmöglichkeit ist in LabVIEW. Es bedeutet das die Struktur jeweils einen Zeiger enthält auf die nächste solche Struktur in einer mehr oder weniger langen Liste von solchen Strukturen. Das kann ein Wizard auch wenn er noch so super intelligent wäre nicht einfach automatisch auflösen.

Die Variante ist um Dich als regelrechter C Compiler zu betätiten und mit allerlei Tricks diese Pointers korrekt mittles LabVIEW Funktion abzulaufen. Machbar aber äusserst peinlich und zudem noch erschwert durch die Tatsache dass man diesen Code für 32 Bit und 64 Bit jeweils seperat implementieren muss, da die Zeiger in der Struktur ein unterschiedliches Layout notwendig machen.

Oder Du beisst in den sauren Apfel und schreibst eine Wrapper DLL die diese LinkedList und möglich andere Komplikationen in diesem API in eine LabVIEW freundlichere Form umsetzt. Ja Du musst dazu lernen wie man einen C Compiler benützt um eine DLL zu schreiben, aber das ist einfacher dann selber C Compiler spielen zu müssen innerhalb eines LabVIEW Diagrams.

Oder Du bezahlst jemanden mit den notwendigen Kenntnissen, um das für Dich zu tun.
Danke für die Info.

Ich habe es jetzt anders gelöst, ich verwende ein FTDI TTL-232R-5V Kabel und habe mir dazu noch ein fertiges Relais mit Treiber aus dem Arduino Angebot besorgt, hier schließe ich die RTS Leitung an den Eingang des Relais an.
Funktioniert prima, für den FTDI gibt es LabView Treiber auf der Homepage, die ich mir allerdings noch etwas angepasst habe.
Sollte es dennoch mal für jemanden von Interesse sein, ich habe für die USB-Relais Typ CP401C, CP402C, CP404C und CP408C die DLL manuell eingebunden und eine Bibliothek erstellt (LV 2019 Format), siehe Anhang.
Eine 100%ige Garantie darauf kann ich natürlich nicht geben aber bei mir funktioniert es.
Damit es funktiuoniert muss man die Seriennummer des Relais herausfinden, hierfür muss das USB Relais angeschlosen werden und das in der Bibliotehk enthaltene Tool "GuiApp_English.exe" gestartet werden, anschließend den Knopf "Find Device" drücken und das Dropdown Feld angeklickt werden, dort findet man dann die Seriennummer des Relais.

Zu diesen Relais gibt es auch eine Projektseite Driver-less USB relays (HID interface).
Erhältlich sind diese Relais ua. bei Ebay, Eckstein, Amazon... und diversen asiatischen Anbietern.
Referenz-URLs