LabVIEWForum.de - DLL Methoden richtig aufrufen

LabVIEWForum.de

Normale Version: DLL Methoden richtig aufrufen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7
Hi Jens,

Zitat:Erst Connect ausführen, die Referenz am Ausgang der Methode weiterführen und damit "IsOpen" abfragen.

Verstehe ich nicht so ganz was du da meinst.
Hallo Natalie,

du musst die korrekte Reihenfolge der Aufrufe sicherstellen! Am einfachsten geht das über eine korrekte Verdrahtung - THINK DATAFLOW!

Du hast die Links in meiner Signatur bemerkt?
(14.06.2019 10:45 )Natalie1984 schrieb: [ -> ]Hi Jens,

Zitat:Erst Connect ausführen, die Referenz am Ausgang der Methode weiterführen und damit "IsOpen" abfragen.

Verstehe ich nicht so ganz was du da meinst.

Das hier:
[attachment=60062]

Gruß, Jens
Hallo Zusammen,

jetzt habe ich das mal so gemacht, wie ihr mir das beschrieben habt.

Und habe dabei festgestellt, das die Verbindung nach dem Verbinden sofort getrennt wird.
Also bleibt die Verbindung doch nicht stabil.

Woran kann das liegen?

Das habe ich festgestellt, als ich gleich nach dem Verbindungsaufbau die Daten gesendet habe, denn dann schalten sie auch.
Siehe Bild 07

PS: Habe noch mal mit dem Hersteller telefoniert, der sagte, die DLL hat auch einen Keep Alive Funktion, was ich aber nicht vom Außen beeinflussen kann.
Das bedeutet, die Verbindung sollte stabil bleiben und ich mache höchstwahrscheinlich etwas falsch.
Hallo Natalie,

Zitat:Und habe dabei festgestellt, das die Verbindung nach dem Verbinden sofort getrennt wird.
Wie genau hast du das festgestellt?

Zitat:Also bleibt die Verbindung doch nicht stabil. Woran kann das liegen?
Steht das nicht im Manual zu diesem Gerät und dessen Treiber?

Zitat:Das habe ich festgestellt, als ich gleich nach dem Verbindungsaufbau die Daten gesendet habe, denn dann schalten sie auch. Siehe Bild 07
Weil du hier so wie in diesem VisualC-Code verdrahtet hast.
Bei Bild5&6: War der Button "Schalten" überhaupt TRUE? Konnte überhaupt etwas ausgegeben werden?
(14.06.2019 11:29 )Natalie1984 schrieb: [ -> ]Das bedeutet, die Verbindung sollte stabil bleiben und ich mache höchstwahrscheinlich etwas falsch.
Rufts du ständig den Konstruktor auf? Der sollte doch bestimmt nur ein einziges Mal aufgerufen werden. Gearbeitet wird dann mit der Referenz, die der Konstruktor liefert. Außerdem gehört jede Referenz, zu gegebener Zeit, geschlossen.
Ich vermute mal stark, dass nach Beenden deines VIs die .NET-Assembly wieder entladen wird und somit auch die Verbindung zu deinem Ethernet-Koppler.

Was passiert denn, wenn du den "Send" Aufruf in eine Schleife hängst?

Gruß, Jens
(14.06.2019 11:53 )GerdW schrieb: [ -> ]Hallo Natalie,

Zitat:Wie genau hast du das festgestellt?
Weil ich beim Verbindungsaufbau auch gleich hinterher die Daten zum Schalten gesendet habe. Und dann hat es geschaltet.
So wie ich das im letzten Bild gemacht habe.
Natürlich ist das nicht der richtige Weg um das Modul anzusprechen.


[quote]Steht das nicht im Manual zu diesem Gerät und dessen Treiber?
Nein dazu steht im Manual nichts, denn mit VS funktioniert es ja einwandfrei, da clicke ich auf Verbinden und die Verbindung steht solange bis ich sie wieder trenne.

Zitat:Weil du hier so wie in diesem VisualC-Code verdrahtet hast.
Bei Bild5&6: War der Button "Schalten" überhaupt TRUE? Konnte überhaupt etwas ausgegeben werden?

Ein Button ist nur dann True, wenn ich drauf klicke, ja es kommt einmal zum True


(14.06.2019 12:10 )IchSelbst schrieb: [ -> ]Rufts du ständig den Konstruktor auf? Der sollte doch bestimmt nur ein einziges Mal aufgerufen werden. Gearbeitet wird dann mit der Referenz, die der Konstruktor liefert. Außerdem gehört jede Referenz, zu gegebener Zeit, geschlossen.

Den Konstruktorknoten rufe ich himmmmmm mehrmals auf ja... sehe ich gerade. Dadurch das ich das in Loop Starte, wird es ständig aufgerufen oder?
Ist das falsch so?
Ja, das hört sich verkehrt an.

Konstruktor 1x aufrufen, nur 1x Verbindung öffnen, und dann in einer Schleife Werte setzen und lesen. Am Ende Verbindung schließen und Konstruktor-Referenz per "Referenz schließen" beenden.

Gruß, Jens
(14.06.2019 13:12 )Natalie1984 schrieb: [ -> ]Ist das falsch so?
So global kann man das nicht sagen. Man kann ihn auch kontinuierlich aufrufen, sollte dann wohl aber auch jedes Mal den Destructor verwenden …

Was heißt denn "Loop Starte"? Du meinst den automatischen Restart in der IDE? Verwende ich nicht.

Ich mach meine Programme immer so: Programm starten - Referenzen generieren (z.B. mittels Konstruktor) - In Loop mit den Referenzen arbeiten - Referenzen schließen (z.B. Destructor) - Programm ordnungsgemäß beenden.
Seiten: 1 2 3 4 5 6 7
Referenz-URLs