FB_HVACPersistentDataHandling
Anwendung
Mit diesem Funktionsbaustein werden alle SPS Variablen die persistent deklariert sind (VAR PERSISTENT) spannungsausfallsicher in eine Datei geschrieben. Die als persistent deklarierten SPS Variablen innerhalb der Funktionsbausteine aus der TcHVAC.lib werden auf Änderung in diese Datei geschrieben. Diese Datei wird gespeichert unter ..\TwinCAT\Boot Verzeichnis und heißt wie folgt: TCPLC_T_x.wbp (x = Nummer des Laufzeitsystems). Damit nicht sofort nach einer Änderung der persistenten Variablen der neue Zustand gesichert wird, ist in der Standardeinstellung ein Zeitfenster von 5s eingebaut. Dieses Zeitfenster kann vom Anwender geändert werden. Er muss der global deklarierten konstanten Variable g_tHVACWriteBackupDataTime : TIME := t#5s die neue Zeit zuweisen.
Erst nach Ablauf des Zeitfensters, wird der neue Zustand gesichert. Im ungünstigsten Fall kann das bedeuten, dass Änderungen, die innerhalb des letzten Zeitfenster getätigt wurden und ein Spannungsausfall hat stattgefunden, nicht gesichert sind.
Bei jedem Neustart der Steuerung wird der Zustand der persistenten Daten aus der Datei ausgelesen. Über die Ausgangsvariable udiStatus wird angezeigt, ob die Daten gültig sind.
Um die persistenten Variablen innerhalb der Funktionsbausteine spannungsausfallsicher zu machen, ist es notwendig im MAIN-Programm eine Instanz von dem FB_HVACPersistentDataHandling Baustein anzulegen. Anhand des folgenden Applikationsbeispiels wird die Handhabung dieser Funktionalität nähergebracht.
siehe auch Anwendungsbeispiel: Example_PERSISTENT.zip
Das Verhalten vom Funktionsbaustein sieht wie folgt aus, wenn beim Aufstarten alles korrekt war:
udiStatus:= 1;
iPersistCount:= 1;
bDone:= FALSE;
Ist das Ergebnis der Abfrage von usiStatus=1 bedeutet dies, dass die persistenten Variablen aus dem Speicher gelesen wurden. bDone wird erst TRUE, wenn die persistenten Variablen erfolgreich geschrieben wurden.
Folgende Einstellung muss im TwinCAT System Manager vorgenommen werden:
Unter SPS-Konfiguration im Karteireiter SPS Einstellungen (Zielsystem) muss die Option
Lösche ungültige Persistent Daten deaktiviert sein!! Das deaktivieren muss mit dem Button Übernehmen durchgeführt werden.
VAR_INPUT
sNETID : T_AmsNetId;
TMOUT : TIME;
ePersistentMode : E_PersistentMode;
sNETID : AmsNetId des TwinCAT-Rechners auf dem die Funktion ausgeführt werden soll. Für den lokalen Rechner, kann auch ein Leerstring angegeben werden.
TMOUT : Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.
ePersistentMode: Modus in dem die persistenten Daten geschrieben werden sollen. Siehe auch E_PersistentMode.
VAR_OUTPUT
udiStatus : UDINT;
iPersistCount : INT;
bDone : BOOL;
bBusy : BOOL;
bError : BOOL;
udiErrorID : UDINT;
udiStatus : 0 = No status
1 = Persistent data read successfully
2 = Backup from persistent data read
3 = Neither persistent nor backup data read
iPersistCount: Zähler, der nach erfolgreichem Schreiben um 1 inkrementiert.
bDone: Wird auf TRUE gesetzt, wenn der Funktionsblock ausgeführt wurde.
bBusy: Bei der Aktivierung des Bausteins wird der Ausgang gesetzt und bleibt so lange aktiv bis der Befehl abgearbeitet wurde.
bError: Dieser Ausgang wird auf TRUE gesetzt, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist.
udiErrorID: Enthält den befehlsspezifischen Fehlercode. Siehe bitte ADS Return Codes.