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.

FB_S_UPS_BAPI 1:

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.

FB_S_UPS_BAPI 2: 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.

FB_S_UPS_BAPI 3: 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