FB_S_UPS_BAPI
Hinweis | |
Datenverlust Wenn andere Applikationen oder die SPS weitere Dateien offen halten oder in diese schreiben, kann es zu fehlerhaften Dateien kommen, wenn die Sekunden-USV die Steuerung abschaltet. |
Der Funktionsbaustein FB_S_UPS_BAPI kann auf Geräten mit Sekunden-USV und mit BIOS-API ab Version v1.15 verwendet werden, um die Sekunden-USV aus der SPS anzusteuern.
Beim ersten Aufruf des Bausteins werden die Zugangsdaten zur Sekunden-USV via BIOS-API ermittelt. Dieser Vorgang dauert einige Zyklen. Anschließend wird zyklisch auf Spannungsausfall geprüft. Beim nächsten Schreiben der persistenten Daten werden die Zugangsdaten zur SPS persistent gespeichert, sodass bei nachfolgenden Bootvorgängen das Prüfen auf Spannungsausfälle unmittelbar nach dem SPS-Start erfolgen kann.
Der Ladezustand der Sekunden-USV wird bei Spannungsausfall alle 50 ms, bei anliegender Spannung und einer Kapazität unter 90 % alle 200 ms und bei anliegender Spannung und einer Kapazität ab 90 % alle 1 s aktualisiert. Auch dies erfolgt über BIOS-API-Zugriffe.
Über den Funktionsbaustein FB_S_UPS_BAPI können bei Spannungsausfall je nach ausgewähltem Modus noch die persistenten Daten gespeichert und/oder ein QuickShutdown ausgeführt werden. Die voreingestellten Werte der INPUTs des FB_S_UPS_BAPI sollten beibehalten werden.
Die Sekunden-USV kann bei Spannungsausfall nur für wenige Sekunden verwendet werden, um persistente Daten zu speichern. Das Speichern der Daten muss im schnellen „Persistent Modus“ „SPDM_2PASS“ erfolgen, auch wenn es hier zu Echtzeitverletzungen kommen kann. Konfigurieren Sie zum Speichern der persistenten Daten ausreichend Routerspeicher.
Unabhängig vom Modus und damit unabhängig davon, ob Daten gespeichert oder der Quickshutdown ausgeführt wurde, schaltet die 1-Sekunden-USV nach Entladung der Kondensatoren das Mainboard ab.
Modi des Funktionsbausteins
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 dass Daten gespeichert werden.
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.
Eingänge
VAR_INPUT
sNetID : T_AmsNetId:= ''; (* '' = local netid *)
iPLCPort : UINT; (* PLC Runtime System for writing persistent data *)
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
Name | Typ | Beschreibung |
---|---|---|
sNetID | T_AmsNetId | AmsNetID der Steuerung |
iPLCPort | UINT | Portnummer des SPS-Laufzeitsystems (851 für das erste SPS-Laufzeitsystem, 852 für das zweite SPS-Laufzeitsystem, …). Wenn Sie keine Portnummer angeben, wird der Port des SPS-Laufzeitsystems vom Baustein eigenständig ermittelt. |
tTimeout | TIME | Timeout für die Ausführung des Schreibens der persistenten Daten bzw. des QuickShutdowns |
eUpsMode | E_S_UPS_Mode | Definiert, ob persistente Daten geschrieben werden sollen und ob ein QuickShutdown ausgeführt werden soll. Standardwert ist eSUPS_WrPersistData_Shutdown, d. h. nach dem Speichern der persistenten Daten wird automatisch ein QuickShutdown ausgeführt. |
ePersistentMode | E_PersistentMode | Modus für das Schreiben der persistenten Daten. Standardwert ist SPDM_2PASS. |
tRecoverTime | TIME | Zeit, nach der die USV bei UPS-Modi ohne Shutdown wieder in den PowerOK Status zurückgeht. Die tRecoverTime muss etwas größer sein als die maximale Haltezeit der USV, um sicherzustellen, dass die Kondensatoren vollständig geladen sind. |
Ausgänge
VAR_OUTPUT
bPowerFailDetect : BOOL; (* TRUE while powerfailure is detected *)
eState : E_S_UPS_State; (* current ups state *)
nCapacity : BYTE; (* actual capacity of UPS *)
bBusy : BOOL; (* TRUE: function block is busy *)
bError : BOOL; (* FALSE: function block has error *)
nErrID : UDINT; (* FB error ID *)
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bPowerFailDetect | BOOL | TRUE, während des Spannungsausfalls. FALSE, wenn die Versorgungsspannung anliegt. |
eState | E_S_UPS_State | Interner Zustand des Funktionsbausteins |
nCapacity | BYTE | Aktueller Ladezustand der Kondensatoren in Prozent (0..100%) |
bBusy | BOOL | TRUE, solange der Funktionsbaustein aktiv ist. |
bError | BOOL | FALSE, wenn ein Fehler aufgetreten ist. |
nErrID | UDINT | Fehlernummer |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1 B4020.32 | Plattformen, die die BIOS API ab v1.15 unterstützen | Tc2_SUPS |