FB_HVACPersistentDataHandling
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 Tc2_HVAC werden auf Änderung in diese Datei geschrieben. Diese Datei wird gespeichert unter ..\TwinCAT\3.1\Boot\PLC Verzeichnis und heißt wie folgt: Port_c.bootdata (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 dem global deklarierten konstanten Parameter 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.
Das Verhalten vom Funktionsbaustein sieht wie folgt aus, wenn beim Starten 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.
Einstellung:
Folgende Einstellung muss im TwinCAT vorgenommen werden:
Unter SPS-Konfiguration im Karteireiter SPS Einstellungen muss die Option Lösche ungültige Persistent Daten deaktiviert sein!!
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 (siehe Bibliothek Tc2_Utilities).
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 ADS Return Codes).
Voraussetzungen
Entwicklungsumgebung | erforderliche Bibliothek | Erforderliche Function |
---|---|---|
TwinCAT 3.1 ab Build 4022.16 | Tc2_HVAC V3.3.1.0 | TF8000 | TC3 HVAC V1.0.0.0 |