![]() |
dll auslesen zum ansteuern eines K8061 Boards - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: dll auslesen zum ansteuern eines K8061 Boards (/Thread-dll-auslesen-zum-ansteuern-eines-K8061-Boards) |
dll auslesen zum ansteuern eines K8061 Boards - JollyJumper - 22.08.2006 00:52 Hallo alle miteinander. Ich denke ich werde euch mit meiner Frage etwas langweilen aber es ist für mich extrem wichtig, stecke mitten in meiner Abschlussarbeit zum Automatisierungs Techniker und steh nun echt auf dem Schlauch. Ich habe mir vor einigen Wochen von Velleman das Board K8061 gekauft und wollte mit dessen Hilfe nun meine Steuerung aufbauen. Nur jetzt häng ich schon ganz am Anfang. Um das Board zum laufen zu bekommen muss ich eine K8061.dll auslesen mit Hilfe eines "Aufruf exterener Bibliotheken". Nur jedes mal wenn ich die .dll im Pfad eingebe erscheint "In einem Knoten der zum Aufruf exterer Bibliotheken aufgerufen wurde, ist ein schwerer Ausnahmefehler aufgetreten.....". Und ich muss ganz ehrlich sagen, ich hab keine Ahnung mehr was ich dagegen tun soll. Kann es evtl. sein das die .dll nicht kompatibel ist. Ich muss zugeben in diesem Punkt habe ich auch nicht wirklich viel Ahnung. Kann mir da irgendwer helfen. Ich weiß auch gar nicht so genau was ich als Parameter oder Typ eingeben muss. Die Funktionsnamen kann ich auswählen wenn ich den Pfad der K8061.dll eingebe. ( SetDigitalChannel,SetAllOutputs etc.) Da ich im ander Thread gelesen hatte das nach dem Funktionsprototyp gefragt wurde hab ich ihn mal mit gepostet. void SetDigitalChannel(long Channel); Falls einer nach der .dll schauen will die findet man unter: K8061.dll sie befindet sich im Archiv unter //K8061 extended USB interface/DIAG8061/k8061.dll Ich wäre euch super super mega dankbar wenn ihr mir helfen könntet, kann kaum noch schlafen das wurmt mich richtig ![]() MfG Simon dll auslesen zum ansteuern eines K8061 Boards - Lucki - 22.08.2006 07:35 ' schrieb:Ich weiß auch gar nicht so genau was ich als Parameter oder Typ eingeben muss. Die Funktionsnamen kann ich auswählen wenn ich den Pfad der K8061.dll eingebe. ( SetDigitalChannel,SetAllOutputs etc.)Hierin liegt genau Dein Problem: Der geringste Fehler bei der Parameterübergabe führt zum Absturz, und wenn Du das nicht genau weißt, ist der Absturz unvermeidlich. Also ohne Funktionsbeschreibung bist Du aufgeschmissen, aber Du hast sie ja vorliegen. Typbeschreibung z.B: Longinteger = vorzeichenbehaftetes 32 bit Integer in LabVIEW Du solltest für jede Funktion, die Du brauchst, ein VI anlegen, welches Du dann als Sub-VI verwendest. Die Sunmme dieser VIs kannst Du dann als "LabVIEW-Treiber für K8061" bezeichnen. Ich habe Dir mal ein solches VI gemacht, die Untersuchung dieses VIs hilft Dir bestimmt weiter. Du mußt es natürlich ändern, der Pfad muß auf die DLL auf Deiner Festplatte zeigen. Zu empfehlen ist evtl. noch ein Fehlerstrang durch jedes VI. dll auslesen zum ansteuern eines K8061 Boards - rosenkranz - 22.08.2006 08:04 hello ![]() ich denke, bei jedem Gerät,das solche dll library zur verfügung stellt, gibt es auch die DLL Anleitung dazu. Da kannst Du sehen was für parameter Du brauchst und wie die Sytanx aussieht. ich habe vor 1 Monat mit dem externen DLL library von USB Oscilloscop angefangen. Allerdings muss ich auch zugeben dass es am Anfang net so einfach zu verstehen ist. Ich hatt auch vorher keine Ahnung wie man das machen muss ![]() Wichtig ist dass Du die Syntax kennst : z.B. bei mir wars : word GetFuncGenMaxAmplitude (double *dAmplitude); beim LV musst du die Call Library Functions node erstellen. Danach double klick auf die node und die wichtige daten eingeben wie z.b. wo die DLL datei ist, was fuer eine funktion (GetFuncGenMaxAmplitude), und die parametername und typ eingeben (double , dAmplitude, Array data pointer) UND GUCK bitte ob die Calling Convention mit C oder stdcall(WINAPI) ist. Dies könnt die Ursache von deinem Fehler ich hoffe, dass das Dir bissel helfen kann ![]() mfg, Marc dll auslesen zum ansteuern eines K8061 Boards - JollyJumper - 22.08.2006 14:32 Hi, erstmal danke für alles. Nur hab da ein Problem hab mir grad mal die VI heruntergeladen die du für mich gemacht hattest, kann sie aber nicht öffnen da sie mit der Version 8.0.2 erstellt wurde. Kannst du die vieleicht nochmal in ein 7.0 Format speichern wenn das geht. Wäre super nett. ![]() dll auslesen zum ansteuern eines K8061 Boards - Lucki - 22.08.2006 15:41 Abspeichern von 8 auf 7 geht nicht, ich mußte es also neu erstellen... dll auslesen zum ansteuern eines K8061 Boards - JollyJumper - 22.08.2006 23:41 SUPER hat alles wunderbar geklappt konnte alle VI´s schreiben, nur hätte es heut dann eher nicht mehr anklemmen sollen, einmal nicht aufgepasst da hab ich + mit Masse vertauscht und hinüber war der IC des Boardes. ![]() Aber egal hab noch einen passenden gefunden. Also nochmal danke für die super Unterstützung, ist echt TOP das Board, nur zu empfehlen !!! ![]() ![]() ![]() ![]() dll auslesen zum ansteuern eines K8061 Boards - Wiggi - 13.09.2006 13:03 <div align="left"> ' schrieb:Wichtig ist dass Du die Syntax kennst : Schönen Dank schonmal für den tip.. Ich habe nun allerdings doch noch eine Frage dazu... In meinem "Handbuch" steht Set Strobe Time (LKIF_SetStrobeTime) -------------------------------------------------------------------------------- BOOL WINAPI LKIF_SetStorobeTime(OUT LKIF_STOROBETIME *StorobeTime); Description Sets the strobe time. Parameter StorobeTime Sets the strobe time. typedef enum { LKIF_STOROBETIME_2MS, // 2ms LKIF_STOROBETIME_5MS, // 5ms LKIF_STOROBETIME_10MS, // 10ms LKIF_STOROBETIME_20MS, // 20ms } LKIF_STOROBETIME; Returned Value TRUE Completes without errors FALSE Completes with errors </div> Mein Problem hierbei .. Wie soll ich den Eingang deklarieren und was soll ich reibschreiben ? Vielen Dank schonmal im vorraus... Bernd dll auslesen zum ansteuern eines K8061 Boards - jg - 13.09.2006 14:02 <div align="left">Hallo, Bernd, eine enum-Variable wird wie in LabVIEW üblicherweise intern als Integerzahl dargestellt. Ich würde es mal mit dem Übergabe-Dateityp Integer (16bit) versuchen, Werte beginnen wahrscheinlich bei 0 aufwärtszählend. MfG, Jens</div> dll auslesen zum ansteuern eines K8061 Boards - Wiggi - 14.09.2006 10:27 ' schrieb:<div align="left">Hallo, Bernd, Vielen Dank für den Tip.. der war schonmal richitg. Eigendlich hatte ich den Ergeiz den rest selber hn zu bekommen.. aber leider weigert sich mein Regler mir Werte auszugeben. Werte auf ihn schreiben geht komplett In der hilfe Datei steht folgendes : Measurement Value Output (LKIF_GetCalcData) -------------------------------------------------------------------------------- BOOL WINAPI LKIF_GetCalcData(OUT LKIF_FLOATVALUE *CalcData1,OUT LKIF_FLOATVALUE *CalcData2); Description Returns the measurement value. Parameter CalcData1 Measurement value for OUT1. Values are specified for the following structures. CalcData2 Measurement value for OUT2. Values are specified for the following structures. typedef enum { LKIF_FLOATRESULT_VALID, // valid data LKIF_FLOATRESULT_RANGEOVER_N, // over range at negative (-) side LKIF_FLOATRESULT_WAITING, // comparator result } LKIF_FLOATRESULT; typedef struct { LKIF_FLOATRESULT FloatResult; // valid or invalid data. float Value; // measurement value during LKIF_FLOATRESULT_VALID. Any other times will return an invalid value. } LKIF_FLOATVALUE; Bisher mache ich einen Externen Biblioteksaufruf mit dem Befehl "LKIF_GetCalcData" mit zwei Ausgangsvariablen (8-Byte double). Die Daten sind aber nicht lesbar. Jemand vielleicht eine Idee was ich falsch mache ? dll auslesen zum ansteuern eines K8061 Boards - Wiggi - 14.09.2006 18:25 Habs rausgefunden.. Der stern ist ein Pointer ... da war mein Fehler.. Einfach nur den ersten Ausgang frei lassen und 2 weitere Ausgänge als Pointer ausgeben.. Dann klappts |