FB_PMA_PowerValues_Period_1Ph

Der Funktionsbaustein FB_PMA_PowerValues_Period_1Ph berechnet die Leistungswerte des angeschlossenen Verbrauchers. Dazu gehören auch die Grundschwingungskomponenten und der Phasenverschiebungswinkel. Hierfür werden neben dem Signalverlauf im Zeitbereich nur die ersten Harmonischen des Eingangssignals zur Berechnung herangezogen. Der Vorteil dieser Algorithmen ist die hohe Dynamik der Berechnungen. 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.

Alternativ kann der Funktionsbaustein FB_PMA_PowerValues_1Ph verwendet werden. Dieser nutzt intern die einzelnen Harmonischen zur Berechnung der Leistungswerte.

Der Eingangspuffer wird über den Funktionsbaustein FB_PMA_Source_1Ph bereitgestellt. Dieser kann sowohl eine oder mehrere Signalperioden beinhalten oder auch einzelne Fragmente aus Oversampling-Werten.

Syntax

Definition:

FUNCTION BLOCK FB_PMA_PowerValues_Period_1Ph
VAR_INPUT
    nOwnID                : UDINT;
    tTransferTimeout      : LTIME := LTIME#500US;
    stInitPars            : ST_PMA_PowerValues_Period_InitPars;
END_VAR
VAR_OUTPUT
    bError                : BOOL;
    ipResultMessage       : I_TcMessage;
    bNewResult            : BOOL;
    nCntResults           : ULINT;
    fApparentPower        : LREAL;
    fApparentPower_1      : LREAL;
    fApparentPower_1_Min  : LREAL;
    fApparentPower_1_Max  : LREAL;
    fActivePower          : LREAL;
    fActivePower_Min      : LREAL;
    fActivePower_Max      : LREAL;
    fReactivePower_d      : LREAL;
    fReactivePower_1      : LREAL;
    fReactivePower_1_Min  : LREAL;
    fReactivePower_1_Max  : LREAL;
    fTotalReactivePower   : LREAL;
    fPhi                  : LREAL;
    fCosPhi               : LREAL;
    fPowerFactor          : LREAL;
    fPowerQualityFactor   : LREAL;
    bValidStatistics      : BOOL;
END_VAR
VAR_OUTPUT PERSISTENT
    stEnergy_Pos          : ST_PMA_Energy;
    stEnergy_Neg          : ST_PMA_Energy;
    stEnergy_Res          : ST_PMA_Energy;
END_VAR

FB_PMA_PowerValues_Period_1Ph 1: 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

ST_PMA_PowerValues_Period_InitPars

Bausteinspezifische Struktur mit Initialisierungsparametern. Die Parameter müssen mit der obigen Definition der Ein- und Ausgangspuffer übereinstimmen.

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

fApparentPower

LREAL

Gesamt-Scheinleistung

fApparentPower_1

LREAL

Grundschwingungs-Scheinleistung

fApparentPower_1_Min

LREAL

Kleinster aufgetretener Wert von fApparentPower_1. Kann über bResetStatistics der Call-Methode zurückgesetzt werden.

fApparentPower_1_Max

LREAL

Größter aufgetretener Wert von fApparentPower_1. Kann über bResetStatistics der Call-Methode zurückgesetzt werden.

fActivePower

LREAL

Wirkleistung

fActivePower_Min

LREAL

Kleinster aufgetretener Wert von fActivePower. Kann über bResetStatistics der Call-Methode zurückgesetzt werden.

fActivePower_Max

LREAL

Größter aufgetretener Wert von fActivePower. Kann über bResetStatistics der Call-Methode zurückgesetzt werden.

fReactivePower_d

LREAL

Verzerrungsblindleistung

fReactivePower_1

LREAL

Grundschwingungs-Verschiebungs-Blindleistung

fReactivePower_1_Min

LREAL

Kleinster aufgetretener Wert von fReactivePower_1. Kann über bResetStatistics der Call-Methode zurückgesetzt werden.

fReactivePower_1_Max

LREAL

Größter aufgetretener Wert von fReactivePower_1. Kann über bResetStatistics der Call-Methode zurückgesetzt werden.

fTotalReactivePower

LREAL

Gesamt-Blindleistung

fPhi

LREAL

Phasenverschiebungswinkel

fCosPhi

LREAL

CosPhi (Wirkleistung/Grundschwingungs-Scheinleistung)

fPowerFactor

LREAL

Leistungsfaktor (Wirkleistung/Gesamt-Scheinleistung)

fPowerQualityFactor

LREAL

Power Quality Factor. Stellt die Qualität der Spannungsversorgung vereinfacht in einem Wertebereich zwischen 0 und 1 dar. Miteinbezogen wird die Frequenz, der Effektivwert der Spannung sowie der THD der Spannung.

bValidStatistics

BOOL

TRUE, wenn die Min- und Max-Werteberechnung durchgeführt wurde. Diese Werte sind gültig.

stEnergy_Pos

ST_PMA_Energy

Energie in positiver Richtung. Der Ausgang wird persistent gespeichert und kann über bResetEnergyCalc der Call-Methode zurückgesetzt werden.

stEnergy_Neg

ST_PMA_Energy

Energie in negativer Richtung. Der Ausgang wird persistent gespeichert und kann über bResetEnergyCalc der Call-Methode zurückgesetzt werden.

stEnergy_Res

ST_PMA_Energy

Resultierende Energie. Der Ausgang wird persistent gespeichert und kann über bResetEnergyCalc der Call-Methode zurückgesetzt werden.

FB_PMA_PowerValues_Period_1Ph 3: Methoden

Name

Beschreibung

Call

Die Methode wird in jedem Zyklus aufgerufen, um die Berechnungen aus dem Eingangspuffer durchzuführen, wenn neue Daten vorhanden sind.

Init

Alternative zur Bausteininitialisierung

PassInputs

Die Methode kann alternativ zur Call-Methode in jedem Zyklus aufgerufen werden, falls keine Berechnung erfolgen soll. Der ankommende Eingangspuffer wird dann entsprechend weitergeleitet.

Reconfigure

Die Methode wird aufgerufen, um den Funktionsbaustein während der Laufzeit neu zu konfigurieren.

Reset

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);
    cPowerValuesInitPars : ST_PMA_PowerValues_Period_InitPars := (
        nBufferLength := cOversamples,
        fSampleRate := cOversamples * 1000,
        fMinInputCurrent := 0.01,
        nPeriods := 1);
END_VAR
VAR
    aVoltage AT%I* : ARRAY[1..cOversamples] OF LREAL;
    aCurrent AT%I* : ARRAY[1..cOversamples] OF LREAL;
    fbSource : FB_PMA_Source_1Ph := (nOwnID := 1, aDestIDs := [2,3], stInitPars := cSourceInitPars);
    fbFrequency : FB_PMA_Frequency_Period_1Ph := (nOwnID := 2, stInitPars := cFrequencyInitPars);
    fbPowerValues : FB_PMA_PowerValues_Period_1Ph := (nOwnID := 3, stInitPars := cPowerValuesInitPars);
END_VAR
// Call source
fbSource.Call(ADR(aVoltage), ADR(aCurrent), SIZEOF(aVoltage), 0);

// Call algorithms
fbFrequency.Call(FALSE);
fbPowerValues.Call(fbFrequency.fFreq, FALSE, FALSE);

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.0

PC oder CX (x86, x64)

Tc3_PowerMonitoring