FB_PMA_Protection
Der Funktionsbaustein FB_PMA_Protection dient der Überwachung von Netzdaten oder Ergebnissen mittels Schwellwert und Hysterese. Dabei können eine beliebige Anzahl von Eingangskanälen gleichzeitig überwacht werden. Ein zusätzlicher Ausgang gibt zusammenfassend an, ob mindestens ein Schwellwert über- oder unterschritten wurde.
Syntax
Definition:
FUNCTION BLOCK FB_PMA_Protection
VAR_INPUT
stInitPars : ST_PMA_Protection_InitPars;
END_VAR
VAR_OUTPUT
bError : BOOL;
ipResultMessage : I_TcMessage;
bNewResult : BOOL;
bProtectionResult : BOOL;
tLastEvent : ULINT;
END_VAR
Eingänge
Die Eingangsparameter dieses Bausteins repräsentieren Initialisierungsparameter und müssen bereits bei der Deklaration der Funktionsbausteininstanz zugewiesen werden (alternativ: Init-Methode). Sie dürfen nur einmal zugewiesen werden. Eine Änderung zur Laufzeit ist durch das erneute Aufrufen der Init-Methode möglich.
Name | Typ | Beschreibung |
|---|---|---|
stInitPars | Bausteinspezifische Struktur mit Initialisierungsparametern |
Ausgänge
Name | Typ | Beschreibung |
|---|---|---|
bError | BOOL | TRUE, falls ein Fehler auftritt. |
ipResultMessage | I_TcMessage | Das Interface bietet detaillierte Informationen über den Rückgabewert. |
bNewResult | BOOL | TRUE, sobald neue Ergebnisse berechnet wurden. |
bProtectionResult | BOOL | TRUE, sobald ein Eingangskanal außerhalb der Schwellwerte liegt. |
tLastEvent | ULINT | Zeitstempel, an dem sich der Ausgang bProtectionResult zuletzt geändert hat. |
Methoden
Mithilfe von Methoden können unterschiedliche Systeme (einphasig bzw. dreiphasig) sowie unterschiedliche Auflösungen (16 Bit bzw. 32 Bit) skaliert werden.
Name | Beschreibung |
|---|---|
Die Methode aufgerufen, um die Berechnung durchzuführen. | |
Alternative zur Bausteininitialisierung | |
Die Methode wird aufgerufen, um den Funktionsbaustein während der Laufzeit neu zu konfigurieren. | |
Mit der Methode werden die aktuellen Berechnungen zurückgesetzt. | |
Methode zur Übergabe von Werten an den Algorithmus. |
Beispiel
VAR CONSTANT
cInitPars: ST_PMA_Protection_InitPars :=
(
nNumChannels := 3,
fSetpoint := 230.0,
fMinThreshold := 0.9,
fMinThresholdHysteresis := 0.01,
fMaxThreshold := 1.1,
fMaxThresholdHysteresis := 0.01
);
END_VAR
VAR
fbProtection : FB_PMA_Protection := (stInitPars:= cInitPars);
tTimestamp : ULINT;
fVoltage_FeedIn : LREAL;
fVoltage_Conumer1 : LREAL;
fVoltage_Conumer2 : LREAL;
aOut : ARRAY[1..3] OF BOOL
END_VAR// Get current dc time - Tc2_EtherCAT lib has to be included
tTimestamp := Tc2_EtherCAT.F_GetActualDcTime64();
// Call algorithm
fbProtection.SetChannelValue(1, fVoltage_FeedIn);
fbProtection.SetChannelValue(2, fVoltage_Conumer1);
fbProtection.SetChannelValue(3, fVoltage_Conumer2);
fbProtection.Call(tTimestamp, ADR(aOut), SIZEOF(aOut));Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
|---|---|---|
TwinCAT v3.1.4024.0 | PC oder CX (x86, x64) | Tc3_PowerMonitoring |