LabVIEWForum.de - BMC Messsysteme Ausgänge "tackern"/ "flattern"

LabVIEWForum.de

Normale Version: BMC Messsysteme Ausgänge "tackern"/ "flattern"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich hoffe ich schreibe ins richtige Unterforum. Bin mir nicht ganz sicher ob das hierhin gehört oder nach "Allgemein".

Nun aber zu meinem Problem:

Ich habe vom oben genannten Hersteller zwei PCI-Karten womit ich Pneumatikventile ansteuer und analoge- sowie digitale EIngänge auslese.
Jetzt habe ich komischerweise das Problem, dass meine Ausgänge ab und zu nach dem ersten Start des Programms "flattern", d.h. es sieht so aus, als ob ich die Ventile im 5ms-Takt ein- und ausschalte.

Hat einer von Euch auch schon die Erfahrung gemacht? Wenn ja, wie kann ich das beheben bzw. was mache ich falsch?

Das angehangene VI ist ein SubVI und in der Version 2011 erstellt....[attachment=39115]

Danke schonmal!

Schöne Grüße

Andreas
Hallo Andreas,

allzuviele werden deine subVIs hier nicht haben...

- Wird der Port bei jedem AUfruf des VI initialisiert? Das wäre falsch...
- Rufst du das VI etwa per RunContinuous auf? Das wäre falsch...
[Bild: oster3.jpg]
Hallo GerdW,

die VIs hänge ich direkt mal an; irgendwie denke ich da erst dran, wenn mich einer drauf stößt.....

Das VI wird nicht über RunContinous aufgerufen und der Port wird vermutlich bei jedem Aufruf initialisert, da er jedes mal abgefragt wird. Ich weiß aber leider nicht wie ich das ändern kann ohne in den VIs des Hersteller zu programmieren. Ich versuch das aber mal.

Schöne Grüße

Andreas

[attachment=39144]
[attachment=39145]
[attachment=39146]
[attachment=39147]
Hallo Andreas,

mal was ganz allgemeines:
Jedwede Öffnen/Initialisierung einer Resource macht man vor einer Programmschleife, jedes Schließen nach der Programmschleife. In der Schleife führt man nur die "echten" Schreib-/Lese-Zugriffe durch - genau dafür hat man sich doch vorher ein "Handle" besorgt!
Dies gilt für jede Resource: Dateien, Referenzen, DAQmx, deine DLL-Benutzung, wasweißich...

Du dagegen rufst sonst wie oft DLL-Open, DLL-Init, DLL-WriteBit, DLL-Close auf. Dies sollte theoretisch sauber laufen, aber man weiß nie, welche Datenstrukturen (-leichen) Windows dabei anlegt, vor allem, wenn man dies sehr oft macht.

Änder das mal, es wird dir auf lange Sicht helfen. Auch der übermäßige Gebrauch von lokalen Variablen ist nicht "LV-Style", es ist schnell ineffizient und fehlerträchtig. Außerdem würde ich diesen Thread hier mit jenem zusammenlegen, da mMn die Probleme miteinander verbunden sind. Außerdem brauchst du dann nicht die ganzen subVIs doppelt anhängen.
(Tipp: Man kann entweder alle nötigen VIs in eine LLB zusammenfassen und nur eine Datei anhängen oder man fasst alle nötigen VIs in einem ZIP zusammen. Beide male muss der geneigte Helfende nur eine Datei downloaden...)
Hallo GerdW,

danke für die Hinweise und die Tipps! Es hat funktioniert.
Ich habe das Öffnen der Ressourcen vor die Schleife gelegt und nachher alles nur mit dem "Handle" gemacht, so wie Du vorgeschlagen hast. Das hat den Fehler behoben.

Auch die lokalen Variablen habe ich teilweise entfernt, indem ich vieles in ein Cluster zusammen gefasst habe und dahinein schreibe oder daraus lese.
Die anderen Sachen werde ich mir auch zu Herzen nehmen. Blush

Schöne Grüße

Andreas
Referenz-URLs