' schrieb:So restriktiv ists dann auch wieder net :-)
Locals darfst verwenden weil die eine Speicherkopie sind und asynchron zum FP laufen
naja, aber wirklich brauchen tut man se oooch nich ...
' schrieb:Falls aber doch mal zwischendurch eine Änderung der Regelparameter vorgenommen werden muss, wollte ich die Möglichkeit offen lassen, einen Laptop oder PC anzuschließen und die Parameter komfortabel über einen Webbrowser ändern zu können. Dafür muss ich doch noch ein Frontpanel im RT-VI haben, oder? Die geänderten Reglerwerte speichere ich in einer Konfigurationsdatei ab, damit sie beim Neustart automatisch geladen werden.
naja, ich mach das so:
ich speichere Konfigurations-Einstellungen in einer binären Datei auf dem cRIO. Diese Datei wird beim Start des RT-VIs gelesen und verarbeitet. Wenn man's nun einfach haben will könnte man mit dem FTP Client auf das cRIO zugreifen und diese Datei ersetzen und das RT-VI neu starten. Allerdings bin ich ja nu CLA und da macht man's natürlich kompliziert:
Die Verbindung zwischen cRIO und PC läuft über TCP und 2 Ports. Einer als "Hin-Kanal", der andere als "Rück Kanal". Für den Hin- und den Rück-Kanal gibt es jeweils ein eigenes Protokoll, das im groben aus einem Header (was kommen jetzt für Daten) und den Daten selbst besteht. Wenn ich nun irgendwelche Parameter des RT-VIs ändern will, schickt der PC Client eine Anforderung an den RT-Server "hey, schick ma die aktuelle Konfiguration". Die dafür zuständige State-Machine auf dem Server bekommt diese Anforderung und sendet die aktuelle Konfiguration per TCP an den Client.
Im Client kommt diese Nachricht an und anhand des Headers kann identifiziert werden, dass das jetzt die Konfigurations Daten sind. Daraufhin wird ein Dialog geöffnet, auf dem die entsprechenden Controls sind, die natürlich (ja, und da benutz ich z.B. locals ...) mit den "richtigen" Werten aus den Konfigurations-Daten "vor-ausgefüllt" sind. Der User kann nun diese Daten im Dialog ändern. Drückt er OK werden die Konfigurations-Daten wieder an den Server geschickt, im Header steht dann z.B. "konfiguration ändern". Die State-Machine im Server erhält den Befehl und überschreibt die vorhandenen Daten mit denen aus der TCP Nachricht und überschreibt die bestehende Konfig-Datei mit den neuen Daten ...