FB_PMA_BasicValues_Period_3Ph
Der Funktionsbaustein FB_PMA_BasicValues_Period_3Ph berechnet Analysewerte für den zeitlichen Signalverlauf von Strom und Spannung in einem dreiphasigen System. Dazu gehören Mittelwert, RMS-Wert, Spitzenwert, Gleichrichtwert, Crest-Faktor sowie Formfaktor jeweils für die einzelnen Ströme und Spannungen. Zusätzlich werden die Spannungswerte zwischen den einzelnen Phasen berechnet. Die Ergebnisse beziehen sich auf eine konfigurierbare Anzahl von Signalperioden. Die Periodendauer bezieht sich auf die zu Periodenbeginn angegebene Frequenz am Eingang der Call-Methode. Die statistischen Ergebnisse beziehen sich auf die gesamte Laufzeit bzw. den Zeitpunkt, an dem zuletzt das Zurücksetzen der statistischen Ergebnisse erfolgt ist.
Der Eingangspuffer wird über den Funktionsbaustein FB_PMA_Source_3Ph bereitgestellt. Dieser kann sowohl eine oder mehrere Signalperioden beinhalten oder auch einzelne Fragmente aus Oversampling-Arrays.
Syntax
Definition:
FUNCTION BLOCK FB_PMA_BasicValues_Period_3Ph
VAR_INPUT
nOwnID : UDINT;
tTransferTimeout : LTIME := LTIME#500US;
stInitPars : ST_PMA_BasicValues_Period_InitPars;
END_VAR
VAR_OUTPUT
bError : BOOL;
ipResultMessage : I_TcMessage;
bNewResult : BOOL;
nCntResults : ULINT;
aMeanValue_U : ARRAY[0..2] OF LREAL;
aRMS_U : ARRAY[0..2] OF LREAL;
aRMS_U_Min : ARRAY[0..2] OF LREAL;
aRMS_U_Max : ARRAY[0..2] OF LREAL;
aRMS_U_PP : ARRAY[0..2] OF LREAL
aPeakValue_U : ARRAY[0..2] OF LREAL;
aPeakHold_U : ARRAY[0..2] OF LREAL;
aRectifiedValue_U : ARRAY[0..2] OF LREAL;
aCrestFactor_U : ARRAY[0..2] OF LREAL;
aFormFactor_U : ARRAY[0..2] OF LREAL;
aMeanValue_I : ARRAY[0..2] OF LREAL,
aRMS_I : ARRAY[0..2] OF LREAL,
aRMS_I_Min : ARRAY[0..2] OF LREAL,
aRMS_I_Max : ARRAY[0..2] OF LREAL,
aPeakValue_I : ARRAY[0..2] OF LREAL,
aPeakHold_I : ARRAY[0..2] OF LREAL;
aRectifiedValue_I : ARRAY[0..2] OF LREAL;
aCrestFactor_I : ARRAY[0..2] OF LREAL;
aFormFactor_I : ARRAY[0..2] OF LREAL;
bValidStatistics : BOOL;
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 nicht möglich.
Name | Typ | Beschreibung |
---|---|---|
nOwnID | UDINT | Identifiziert die Bausteininstanz mit einer eindeutigen ID. Diese muss immer größer als null sein. Eine bewährte Vorgehensweise ist die Definition einer Enumeration für diesen Zweck. |
tTransferTimeout | LTIME | Einstellung des synchronen Timeout für interne MultiArray-Weiterleitungen. Siehe Parallelverarbeitung im Transfer Tray. |
stInitPars | Bausteinspezifische Struktur mit Initialisierungsparametern. Die Parameter müssen mit der obigen Definition der Ein- und Ausgangspuffer übereinstimmen. |
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. |
nCntResults | ULINT | Zählwert wird bei neuen Ausgangsdaten inkrementiert. |
aMeanValue_U | ARRAY[0..2] OF LREAL | Mittelwert der Spannung über n Perioden |
aRMS_U | ARRAY[0..2] OF LREAL | Effektivwert der Spannung über n Perioden |
aRMS_U_Min | ARRAY[0..2] OF LREAL | Kleinster aufgetretener Wert von fRMS_U. Kann über bResetStatistics der Call-Methode zurückgesetzt werden. |
aRMS_U_Max | ARRAY[0..2] OF LREAL | Größter aufgetretener Wert von fRMS_U. Kann über bResetStatistics der Call-Methode zurückgesetzt werden. |
aRMS_UPP | ARRAY[0..2] OF LREAL | Effektivwert der Spannung zwischen zwei Phasen. Index 0: L1-L2, Index 1: L2-L3, Index 2: L3-L1 |
aPeakValue_U | ARRAY[0..2] OF LREAL | Spitzenwert der Spannung über n Perioden |
aPeakHold_U | ARRAY[0..2] OF LREAL | Allzeit-Spitzenwert der Spannung über n Perioden. Kann über bResetStatistics der Call-Methode zurückgesetzt werden. |
aRectifiedValue_U | ARRAY[0..2] OF LREAL | Gleichrichtwert der Spannung über n Perioden |
aCrestFactor_U | ARRAY[0..2] OF LREAL | Scheitelfaktor (Crest-Faktor) der Spannung (Spitzenwert/Effektivwert) |
aFormFactor_U | ARRAY[0..2] OF LREAL | Formfaktor der Spannung (Effektivwert/Gleichrichtwert) |
aMeanValue_I | ARRAY[0..2] OF LREAL | Mittelwert des Stroms über n Perioden |
aRMS_I | ARRAY[0..2] OF LREAL | Effektivwert des Stroms über n Perioden |
aRMS_I_Min | ARRAY[0..2] OF LREAL | Kleinster aufgetretener Wert von fRMS_I. Kann über bResetStatistics der Call-Methode zurückgesetzt werden. |
aRMS_I_Max | ARRAY[0..2] OF LREAL | Größter aufgetretener Wert von fRMS_I. Kann über bResetStatistics der Call-Methode zurückgesetzt werden. |
aPeakValue_I | ARRAY[0..2] OF LREAL | Spitzenwert des Stroms über n Perioden |
aPeakHold_I | ARRAY[0..2] OF LREAL | Allzeit-Spitzenwert des Stroms. Kann über bResetStatistics der Call-Methode zurückgesetzt werden. |
aRectifiedValue_I | ARRAY[0..2] OF LREAL | Gleichrichtwert des Stroms über n Perioden |
aCrestFactor_I | ARRAY[0..2] OF LREAL | Scheitelfaktor (Crest-Faktor) des Stroms (Spitzenwert / Effektivwert) |
aFormFactor_I | ARRAY[0..2] OF LREAL | Formfaktor des Stroms (Effektivwert / Gleichrichtwert) |
bValidStatistics | BOOL | TRUE, wenn die Min-, Max- und Hold-Werteberechnung durchgeführt wurde. Diese Werte sind gültig. |
Methoden
Name | Beschreibung |
---|---|
Die Methode wird in jedem Zyklus aufgerufen, um die Berechnungen aus dem Eingangspuffer durchzuführen, wenn neue Daten vorhanden sind. | |
Alternative zur Bausteininitialisierung | |
Die Methode kann alternativ zur Call-Methode in jedem Zyklus aufgerufen werden, falls keine Berechnung erfolgen soll. Der ankommende Eingangspuffer wird dann entsprechend weitergeleitet. | |
Die Methode wird aufgerufen, um den Funktionsbaustein während der Laufzeit neu zu konfigurieren. | |
Mit der Methode werden die aktuellen Berechnungen zurückgesetzt. |
Beispiel
VAR CONSTANT
cOversamples : UDINT := 10;
cSourceInitPars: ST_PMA_Source_InitPars := (
nBufferLength := cOversamples);
cFrequencyInitPars : ST_PMA_Frequency_Period_InitPars := (
nBufferLength := cOversamples,
fSampleRate := cOversamples * 1000,
fMinFreq := 45.0,
fMaxFreq := 55.0,
nPeriods := 1,
nFilterOrder := 2,
fCutOff := 70.0,
eInputSelect := E_PMA_InputSelect.Voltage,
fMinInput := 200.0);
cBasicValuesInitPars : ST_PMA_BasicValues_Period_InitPars := (
nBufferLength := cOversamples,
fSampleRate := cOversamples * 1000,
fMinInputCurrent := 0.01,
nPeriods := 1);
END_VAR
VAR
aVoltage AT%I* : ARRAY[0..2] OF ARRAY [1..cOversamples] OF LREAL;
aCurrent AT%I* : ARRAY[0..2] OF ARRAY [1..cOversamples] OF LREAL;
fbSource : FB_PMA_Source_3Ph := (nOwnID := 1, aDestIDs := [2,3], stInitPars := cSourceInitPars);
fbFrequency : FB_PMA_Frequency_Period_3Ph := (nOwnID := 2, stInitPars := cFrequencyInitPars);
fbBasicValues : FB_PMA_BasicValues_Period_3Ph := (nOwnID := 3, stInitPars := cBasicValuesInitPars);
END_VAR
// Call source
fbSource.Call(
ADR(aVoltage[0]),
ADR(aVoltage[1]),
ADR(aVoltage[2]),
ADR(aCurrent[0]),
ADR(aCurrent[1]),
ADR(aCurrent[2]),
SIZEOF(aVoltage[0]),
0);
// Call algorithms
fbFrequency.Call(FALSE);
fbBasicValues.Call(fbFrequency.aFreq[0], FALSE);
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4024.0 | PC oder CX (x86, x64) | Tc3_PowerMonitoring |