Funktionsbausteine
FUNCTION_BLOCK FB_S_UPS_CX80xx
Der Funktionsbaustein FB_S_UPS kann auf CX80xx mit der Sekunden-USV verwendet werden, um die Sekunden-USV aus der SPS anzusteuern. Hiermit können bei Spannungsausfall noch die Persistenten Daten gespeichert und ein QuickShutdown ausgeführt werden. Wenn möglich sollten die Defaultwerte der INPUTs des FB_S_UPS beibehalten werden.
Hinweis | |
Datenverlust Die Sekunden-USV kann bei Spannungsausfall nur für wenige Sekunden verwendet werden, um z.B. Persistente Daten zu speichern. Das Speichern der Daten muss im schnellen Persistent Modus "SPDM_2PASS" erfolgen, auch wenn es hier zu Echtzeitverletzungen kommen kann. Zum Speichern der Persistenten Daten muss hinreichend Routerspeicher konfiguriert werden! |
Für das Überbrücken von Spannungsausfällen hat die Sekunden-USV nicht genügend Kapazität. Das Speichern kann nur auf der micro SD Karte erfolgen.
Im Modus eSUPS_WrPersistData_Shutdown (Standardeinstellung) wird nach dem Speichern der persistenten Daten automatisch ein QuickShutdown ausgeführt.
Im Modus eSUPS_WrPersistData_NoShutdown werden nur die persistenten Daten gespeichert, es wird kein QuickShutdown ausgeführt.
Im Modus eSUPS_ImmediateShutdown wird sofort ein QuickShutdown ausgeführt, ohne das Speichern von Daten.
Im Modus eSUPS_CheckPowerStatus wird nur geprüft, ob ein Spannungsausfall auftrat. Ist dies der Fall, geht der Baustein erst nach Ablauf der tRecoverTime (10s) wieder in den Zustand PowerOK.
Unabhängig vom Modus und damit unabhängig vom Speichern oder Herunterfahren der Steuerung schaltet die USV nach Entladung der Kondensatoren das Mainboard ab, auch wenn die Spannung zwischenzeitlich wiederkehrt.
Hinweis | |
Achtung bei Verwendung von Dateien: Falls andere Applikationen oder die SPS noch weitere Dateien offen halten oder in diese schreiben, kann es zu fehlerhaften Dateien kommen, wenn die USV die Steuerung abschaltet. |
VAR_INPUT
VAR_INPUT
sNetID : T_AmsNetId := ''; (* '' = local netid *)
iPLCPort : UINT := AMSPORT_R0_PLC_RTS1; (* PLC Runtime System for writing persistent data *)
iUPSPort : UINT := 16#4A8; (* Port for reading Power State of UPS, dafault 16#4A8 *)
tTimeout : TIME := DEFAULT_ADS_TIMEOUT; (* ADS Timeout *)
eUpsMode : E_S_UPS_Mode := eSUPS_WrPersistData_Shutdown; (* UPS mode (w/wo writing persistent data, w/wo shutdown) *)
ePersistentMode : E_PersistentMode := SPDM_2PASS; (* mode for writing persistent data *)
tRecoverTime : TIME := T#10s; (* ON time to recover from short power failure in mode eSUPS_WrPersistData_NoShutdown/eSUPS_CheckPowerStatus *)
END_VAR
E_S_UPS_Mode
sNetID : AmsNetID der Steuerung.
iPLCPort : Portnummer des SPS-Laufzeitsystems (AMSPORT_R0_PLC_RTS1 = 801, AMSPORT_R0_PLC_RTS2 = 811, AMSPORT_R0_PLC_RTS3 = 821, AMSPORT_R0_PLC_RTS4 = 831).
iUPSPort : Portnummer über die der USV-Status gelesen wird (Standardwert ist 16#4A8).
tTimeout : Timeout für die Ausführung des QuickShutdowns.
eUpsMode : eUpsMode definiert, ob Persistente Daten geschrieben werden sollen und ob ein QuickShutdown ausgeführt werden soll.
Standardwert ist eSUPS_WrPersistData_Shutdown, d.h. mit Schreiben der Persistenten Daten und dann QuickShutdown. Siehe E_S_UPS_Mode.
ePersistentMode : Modus für das Schreiben der Persistenten Daten. Standardwert ist SPDM_2PASS.
SPDM_2PASS, es werden alle persistente Daten auf einmal weggeschrieben, das kann zu einer Zykluszeitüberschreitung führen.
SPDM_VAR_BOOST, hier wird jede persistente Variable einzeln geschrieben, Das kann bei vielen persistenten Daten entsprechend viele Zyklen dauern. Dies wird nicht empfohlen da es dazu führen kann das einige Daten verloren gehen, wenn die Zeit der Sekunden USV nicht ausreichend ist.
tRecoverTime : Zeit, nach der die USV bei UPS-Modi ohne Shutdown wieder in den PowerOK Status zurück geht.
Die tRecoverTime muss etwas größer sein, als die maximale Haltezeit der USV, da die USV auch bei wiederkehrender Spannung abschaltet.
VAR_OUTPUT
VAR_OUTPUT
bPowerFailDetect : BOOL; (* TRUE while powerfailure is detected *)
eState : E_S_UPS_State; (* current ups state *)
END_VAR
E_S_UPS_State
bPowerFailDetect : True während des Spannungsausfalls; False, wenn die Versorgungsspannung anliegt .
eState : Interner Zustand des Funktionsbausteins, Werte siehe E_S_UPS_State.
VAR_GLOBAL
VAR_GLOBAL
eGlobalSUpsState : E_S_UPS_State; (* current ups state *)
END_VAR
E_S_UPS_State
eGlobalUpsState : Interner Zustand des Funktionsbausteins als globale Kopie des VAR_OUTPUT eState, Werte siehe E_S_UPS_State.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Hardware | Einzubindende SPS Bibliotheken |
---|---|---|---|
TwinCAT v2.11.0 Build 2220 oder höher (R3) | ARM | Sekunden USV | TcSystemCX80xx.lib |