Wenn Du beide Variablen im Programm deklariert hast, musst Du beim jeweiligen Setzen und Rücksetzen darauf achten, dass ein weiterer Visu-Client dir die Zustände nicht durcheinander bringt. Sollte grundsätzlich aber auch so gehen.
Das Speichern von Konfigurationen aus der Visu mache ich selbst so: Alle Konfigurationsvariablen fasse ich in einer Struktur zusammen. Meist sogar verschachtelt, also z.B. typCfg_Licht, typCfg_HLK, typCfg_XYZ zusammen in eine typCfg. Diese typCfg prüfe ich über eine Zeit Funktion auf Änderung, z.B. alle 10 Sekunden. Die Prüfung mache ich indem ich von der typCfg eine MD5 Prüfsumme bilde, diese speichere und mit der nächsten Prüfsumme Vergleiche. Dann habe ich eine Bool'sche Variable, die kennzeichnet, dass die Konfiguration geändert wurde. Die benutze ich um auf der Visu einen Hinweis einzublenden, dass gespeicht werden muss. Das Speichern selbst überlasse ich dem User.
Die Bündelung alle Konfig.-Variablen hat auch den Vorteil, dass ich sehr einfach die Rezeptur aufbauen kann. Wenn Du nur die Struktur dort einfügst und Enter drückst, zieht e!C alle Variablen darin selbst. Ich muss also nur eine Variable dort definieren, statt hunderten. Und wenn eine neue hinzukommt muss ich nicht lange suchen. Ich lösche dann einfach alle und lade die Struktur dort neu.
Die Struktur deklarieren ich meist in einer GVL. Aufgrund der radikalen Selektion nur auf enthaltene Konfig.-Var. reduziert das auch den erforderlichen Speicherbedarf und so kann ich in den meisten Fällen die Struktur auch in einer Retain/Pers. Liste deklarieren.
Dann ist die aktuell verwendete Konfiguration spannungsausfallsicher und ich habe eine zusätzliche Rezeptur dazu als Datei auf dem Controller, die ich per FTP gut sichern kann.
Als Rezeptdefinition verwende ich eine für den User und eine zusätzliche als eine Art Werkseinstellung, die nur mit höheren Rechten gespeichert werden kann.
Kurz um, viele Wege führen nach...