<div align="left">Hallo Lucki,
vielen Dank erstmal für die Antwort und das Lob
' schrieb:a) Der Focus kann auf die Anzeigen nur gerichtet werden, wenn sie nicht als Anzeigen, sondern als Bedienelemete konfiguriert sind. Das könnte möglich sein und man sieht das den Anzeigen nicht an. Es funktioniert auch alles, die interne Wertzuweisung würde dann über lokale Variablen erfolgen. Also checken und gegebenenfalls ändern.
Die Anzeigen sind alle wirklich nur Anzeigen (Indicator, weil englische Installation) und die Zuweisung erfolgt eigentlich direkt über das entsprechende Terminal (also nicht über lokale Variablen).
Zitat:B) Der Focus kann auch über Eigenschaftsknoten zugewiesen werden. Hast Du solche Eigenschafstknoten im Programm, vielleicht unwissentlich, verwendet? (Es gibt die beiden den Focus betreffenden Eigenschaften "Bei Tab überspringen" und "Focus")
Ich benutze mehrere "Property nodes", allerdings nie für die von dir genannten Eigenschaften "Bei Tab überspringen" oder "Focus".
Zitat:c) Bearbeiten/Tabulatorreihenfolge im Hauptmenü anwählen: Hier siehst Du mit einem Blick, auf welche Bedienelemente überhaupt focussiert werden kann. Über Eigenschaften/Tastatursteuerung kann man den Focus auch abwählen (Gilt für Tastatursteuerung, nicht für die Maus)
Ok, hab ich mir angesehen. Die von mir verdächtigten Anzeigen bekommen alle keinen Fokus, allerdings ist mir aufgefallen, dass einige Controls, die eigentlich unsichtbar sind eine Nr. besitzen. Sollte ja eigentlich kein Problem sein (denke mal nicht, dass es sich hierbei um einen Bug handelt, sondern es so gewollt ist) kommt mir aber ein wenig unlogisch vor ...
Tab-Reihenfolge
Zitat:d) Es kommt vereinzelt zu Irregularitäten bei der Bedienung, wenn in den Warteschleifen kein Timer enthalten ist. Test mit Windows Taskmanager/Systemleistung. Wenn LabVIEW im Leerlauf 100% Systemleistung braucht, dann fehlen solche Timer.
Bei der Ausführung des VI's fällt mir kein besonderes hoher Ressourcen-Verbrauch auf (weder was CPU-, noch was Speicher-Auslastung betrifft).
Habe übrigens eine neue Vermutung, was an meinem Problem Schuld sein könnte:
Meine Hauptschleife (10-ms-timed-loop) besteht aus einer Sequenz mit insgesamt 8 Frames, wobei in den 1. 7 Frames die einzelnen FieldPoint-Module (bzw. Kanäle) nacheinander ausgelesen werden (*1). Das 8. Frame besteht wiederum aus einer Sequenz mit 3 Frames (1. mögliche Fehlerbehandlung, 2. speichert aktuelle Werte in Datei, 3. überprüft Verbindungs-Status (nur bei Verbindungs-Aufbau)).
Im 2. Frame wird wie erwähnt die aktuellen Werte in eine Protokoll-Datei geschrieben, was ich folgendermaßen gelöst habe:
Das schreiben übernimmt ein von mir geschriebenes Sub-VI, welches ich allerdings aus unterschiedlichen Programmteilen heraus aufrufen muss (also nicht nur aus der oben beschriebenen Hauptschleife), deshalb hab ich ein unsichtbares Boolsches Steuerelement ("Write Status") erstellt, von dem ich das Value-Changed-Ereigniss in einer eigenen Schleife abfange und darin die Sub-VI aufrufe (*2):
Der Aufruf dieses Events sieht zB. in meiner Hauptschleife (8. und letztes Frame) folgendermaßen aus:
Das Description-Property setzte ich aus folgendem Grund:
Der Sub-VI-Aufruf verlangt eine bestimmte Status-Nr, anhand welcher es zB. entscheidet, ob in der Protokoll-Datei alle Werte oder nur der übergebenen Status-Text gespeichert werden soll (es gibt noch mehrere Details, die diese Status-Nr. ausssagt, welche aber hier irrelevant sind).
Kann es nun sein, dass dieser Aufruf der beinahe alle 10 ms stattfindet, schuld dafür ist, dass meinem Eingabeelement ständig der Focus "geraubt" wird und wie könnte ich das umgehen ohne die ganze Programmstruktur über den Haufen werfen zu müssen?
danke, mfg mike
ps.: Ich hab hier noch ein paar prinzipielle Fragen zur Programmstruktur gestellt, auf welche ich allerdings nicht unbedingt eine Antwort erwarte, mich aber trotzdem darüber freuen würde (kann ja nicht verlangen, dass ich hier in Grundlegende Dinge der LabVIEW-Programmierung eingeführt werde
pps.: Kann leider Momentan nicht testen, da mir meine FieldPoint-Module "etnwendet" wurden und ich erst warten muss, neue zu bekommen, deshalb kann ich auch nur Vermutungen anstellen, ...
Off topic (prinzipielle Fragen, feststellungen):
*1: Prinzipiell widerspricht eine Sequenz ja schonmal dem Flussgesteuerten Konzept, oder liege ich da falsch? Ich benutze diese allerdings sehr häufig, da ich wie hier zB. die Fehlerbehandlung so leichter steuern kann...).
*2: Auch hier geh ich mal davon aus, dass ich die Ereigniss-Struktur ziemlich "missbrauche" und das ganze bestimmt eleganter lösen könnte. Wie man im Screenshot der Ereignis-Struktur sieht bin ich spätestens hier mehr oder weniger "gezwungen" lokale Varialben zu verwenden.
Generell benutze ich sehr viele Ereignis-Strukturen (zB. bei jedem Button, um die entsprechende Aufgabe abzuarbeiten, ...), was ja wiederum nicht sehr Flussgesteuert ist, hab aber leider keine Ahnung, wie ich die Benutzer-Eingaben sonst abfangen könnte, ...</div>