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!
Hallo,
ich habe ein VI programmiert, das beim Starten ein paar Eigenschaften eines Drehreglers setzt und danach bei jeder Wertänderung einen DAC-Wert entsprechend setzt. Alles funktioniert soweit. Aber nun möchte ich das Ganze in ein Unterprogramm umwandeln, dass eine Referenz auf ein Drehregler (oder noch besser – auf ein allgemeines numerisches Eingabeelement) übergeben bekommt und dann die jeweiligen Aktionen ausführt.
Unter Elemente |Modern | Referenz finde ich einige Referenzen, aber keine auf ein Drehregler. Ich habe eine "Elementereferenz" probiert, weiss aber nicht wie man den Typ auf "numerisches Eingabeelement" wandelt, um dann den Drehregler ersetzen zu können.
RE: Drehregler ersetzen durch Referenz auf Drehregler
Danke für die schnelle Hilfe!
Leider gibt es noch ein Problem: Nach dem Umbau wird das Case Ereignis auf "Drehknopf Referenz.Drehregler: Wertänderung" geändert aber nie ausgeführt. Gehe ich mit "Ereignis dieses Cases bearbeiten..." in den "Ereignis bearbeiten"-Dialog, ist in der Mitte unter Ereignisquellen nichts angewählt und man kann nur "Drehknopf Referenz" wählen, die benötige, und scheinbar auch benutzte Element "Drehknopf Referenz.Drehregler" (also die dereferenzierte Referenz auf den Drehregler) ist nicht in der Liste. Was muss ich tun damit es wieder funktioniert? Was ist der Unterschied zwischen Drehregler und Drehknopf?
In Anhang mein gesamtes Projekt. Zur Sicherheit die MD5 Prüfsumme der DLL:
91d35a70962fca1349c3739ec3e66d71 *pei2c.dll
RE: Drehregler ersetzen durch Referenz auf Drehregler
Ich bekomme es nicht hin, dabei kann es doch nur noch eine Kleinigkeit sein.
Mir fällt auf, dass nun die Eigenschaftsknoten explizit ein Referenz auf dem Drehregler als Eingang benötigen. Vielleicht ist das bei dem Ereignis auch notwendig. Ich finde aber nicht wie ich das erreichen könnte.
Um es denjenigen, die mir helfen wollen, die Arbeit möglichst leicht zu machen, habe ich die DLL so umgebaut, dass sie keine Hardware mehr benötigt. Stattdessen wird in eine INI-Datei geschrieben, bzw. von dieser gelesen. Die Ini-Datei befindet sich mit im Verzeichnis (pei2c.ini). Einfach das ZIP-Archiv in ein Verzeichnis auspacken. Außer dass ich es nicht hinbekommen habe, LabView zu überreden meine relativen Pfadangaben zur DLL anzunehmen, müsste alles "Out of the box" funktionieren.
Die fehlerhafte VI ist PE_DAC.vi die von DAC16Test.vi aufgerufen wird. In PE_DAC wird das Ereignis "Drehknopf Referenz.Drehregler": Wertänderung nicht ausgelöst.
Da die DLL nicht mehr von einer Hardware abhängig ist, kann sie als Beispiel dienen, wie man eine in Delphi geschriebene DLL in LabView einbinden kann. Ich habe dazu den Delphi Quelltext beigelegt (pei2c.dpr). Vielleich hilft das wiederum jemanden...