Hallo Frank,
ich mache das so:
1. Ich sammle alle mich interessierenden Referenzen mittels eines subVIs ein:
Hier muss man darauf achten, die nötige Rekursionstiefe bei der Suche nach Controls zu erreichen (TabContainer, Cluster).
Neuere LabVIEW-Versionen bringen dafür auch ein fertiges VI mit, aber ich habe das hier schon unter LV8 entwickelt…
2. Diese Referenzen werfe ich in eine FGV, die sich intern zu jeder Referenz einmal das Label des Controls holt und merkt:
3. Wann immer es jetzt interessant wird, rufe ich diese FGV über einen Wrapper auf und sage nur noch, welches Control (anhand seines Labels!) en-/disabled werden soll:
In diese FGV habe ich noch etwas "Logik" hineingepackt, damit mehrere Bedingungen für das En-/Disablen verwaltet werden. Damit erreiche ich, dass ich Controls an mehreren Stellen beeinflussen kann.
Beispiele:
- In der Konfigurationsdatei wird ein Mess- bzw. Ausgabekanal deaktiviert: die Routine, die die Konfiguration einliest, setzt hier schon alle deaktivierten Kanäle auf "disabled".
- In der Prüfstandssoftware wird ein Regelalgorithmus aktiviert: die zugehörige Routine setzt die entsprechenden Stellkanäle auf "disabled", da ja jetzt der Regler übernimmt.
- Es wird Regler A aktiviert, aber Regler B darf nicht gleichzeitig arbeiten: also setzt ReglerA den Einschalter von ReglerB auf "disabled"…