Call Libary Function Node - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: DLL & externer Code (/Forum-DLL-externer-Code) +---- Thema: Call Libary Function Node (/Thread-Call-Libary-Function-Node) |
Call Libary Function Node - pannchen - 04.04.2009 19:28 Hallo, Ich steuer ein Faulhaber Motor über die RS232 mit Hilfe von der Mocom3.dll und der Dffrsprot.dll über den Call libary function node an. Ich habe ein Problem mit der Übergabe von Befehlen in Form eines Strings. Wenn ich einen Parameter übergebe sendet wird der String gesendet und ausgelesen. Nun möchte ich aber mehrer Strings(Befehle) übergeben. Wenn ich in der Libary mehrere Parameter als string setze und ich sie sende liest er trotzdem nur den ersten aus. Meine Idee war es die Strings zu einem Cluster zusammen zu fassen. Ich weiss nur nicht wie ich sie wieder entbündeln kann. Der String tem steht zum Beispiel für die Innere Temperatut des Motors welcher als Zahl ausgegeben wird Wäre für eure Hilfe sehr dankbar. Ich habe das vi hinterlegt Call Libary Function Node - jg - 04.04.2009 20:05 Cross-Post! http://www.LabVIEWportal.eu/viewtopic.php?f=14&t=952 Bitte LVF-Regeln lesen und beachten, in deinem Fall Punkt 10. Cross-Post bitte nur unter Verlinkung auf das Cross-Posting. Gruß, Jens Call Libary Function Node - rolfk - 05.04.2009 19:36 ' schrieb:Hallo, Also irgendwie verstehe ich nur Wahrscheinlich hat das aber wiederum damit zu tun dass Du über etwas schreibst von dem Du scheinbar auch nur Bahnhof verstehst. Du kannst nicht einfach so die Call Library Node anpassen um Parameter zu übergeben wie es Dir beliebt, sondern musst die Call Library Node exact so konfigurieren wie es die DLL Funktion vorgibt. Das heisst Du musst die Information haben wie die DLL Funktion genau aussieht und dann auch noch verstehen können was das in C bedeutet um es dann nach LabVIEW übertragen zu können. Was Du hier zu machen versuchts ist ungefähr dasselbe als in ein rundes Loch von 15mm Durchmesser ein vierkantiges Profil von 30 mm Kantenlänge reinpressen zu wollen. Die Funktion mmSendCommand nimmt ziemlich sicher einen einzelenen String (und eventuel davor noch ein Handle oder anderer Identifier für die Resource wie Motordriver, Achse oder was auch immer an). Eventuel checkt die Funktion es wenn Du mehrere Kommandos im selben String mitschickst wie zu Beispiel durch ; getrennt. Wenn nicht bleibt Dir nichts anderes übrig als diese Funktion halt für jedes Kommando erneut aufzurufen. Die Parameterliste in der Call Library Node eigenhändig zu veränderen kann im besten Fall einfach nichts tun, wird aber in den meisten Fällen ganz einfach mit einem Crash enden. Die Call Library Node ist nicht als Spielzeug gedacht sondern zum Aufrufen von DLL Funktionen die normalerweise von einem C Programm aufgerufen werden. Und diese C Programme werden von Leuten geschrieben die in den meisten Fällen einige Kenntnisse in der C Programmierung haben. Einige grundsätzliche C Programmierkenntnisse sind dann auch beinahe unverzichtbar um die Call Library Node erfolgreich anzuwenden. Rolf Kalbermatter Call Libary Function Node - pannchen - 06.04.2009 08:11 Hey, Ich habe das Problem gelöst. Habe einfach mit einem Schieberegister (For-Schleife,Case Struktur) gearbeitet. Mfg Christian |