FB_PMA_PowerValues_3Ph

Der Funktionsbaustein FB_PMA_PowerValues_3Ph berechnet die Leistungswerte des angeschlossenen Verbrauchers in einem dreiphasigen Netz. Dazu gehören auch die Grundschwingungskomponenten und der Phasenverschiebungswinkel. Intern werden die einzelnen Harmonischen und deren Phasenlage für die Berechnungen ermittelt.

Alternativ kann der Funktionsbaustein FB_PMA_PowerValues_Period_3Ph für die Berechnung eingesetzt werden. Dieser verwendet einfachere Berechnungsverfahren für eine erhöhte Dynamik.

Der Eingangspuffer wird über den Funktionsbaustein FB_PMA_Source_3Ph bereitgestellt. Die Größe des Eingangspuffers entspricht der halben Fensterlänge.

Beispielhaft sind mögliche FFT- und Fensterlängen in der nachfolgenden Tabelle dargestellt:

FFT-Länge

Fensterlänge

Pufferlänge

512

29

400

200

1024

210

800

400

2048

211

1600

800

4096

212

3200

1600

8192

213

6400

3200

16384

214

12800

6400

Gedächtniseigenschaften

Aufgrund der Verwendung der Welch-Methode innerhalb der Berechnungen des wird jeweils der aktuelle Eingangspuffer zusammen mit dem zuletzt übergebenen Puffer zur Berechnung genutzt.

Die Frequenzanalyse berücksichtigt Sprünge in der Zeitreihe. Um ein korrektes Ergebnis zu erzielen, müssen sich deswegen die letzten zwei Eingangspuffer lückenlos und ohne Sprünge aneinanderreihen.

Syntax

Definition:

FUNCTION BLOCK FB_PMA_PowerValues_3Ph
VAR_INPUT
    nOwnID                 : UDINT;
    tTransferTimeout       : LTIME := LTIME#500US;
    stInitPars             : ST_PMA_PowerValues_InitPars;
END_VAR
VAR_OUTPUT
    bError                 : BOOL;
    ipResultMessage        : I_TcMessage;
    bNewResult             : BOOL;
    nCntResults            : ULINT;
    aApparentPower         : ARRAY[0..2] OF LREAL;
    aApparentPower_1       : ARRAY[0..2] OF LREAL;
    aApparentPower_1_Min   : ARRAY[0..2] OF LREAL;
    aApparentPower_1_Max   : ARRAY[0..2] OF LREAL;
    aActivePower           : ARRAY[0..2] OF LREAL;
    aActivePower_Min       : ARRAY[0..2] OF LREAL;
    aActivePower_Max       : ARRAY[0..2] OF LREAL;
    aReactivePower_d       : ARRAY[0..2] OF LREAL;
    aReactivePower_1       : ARRAY[0..2] OF LREAL;
    aReactivePower_1_Min   : ARRAY[0..2] OF LREAL;
    aReactivePower_1_Max   : ARRAY[0..2] OF LREAL;
    aTotalReactivePower    : ARRAY[0..2] OF LREAL;
    aPhi                   : ARRAY[0..2] OF LREAL;
    aCosPhi                : ARRAY[0..2] OF LREAL;
    aPowerFactor           : ARRAY[0..2] OF LREAL;
    fSumApparentPower      : LREAL;
    fSumActivePower        : LREAL;
    fSumTotalReactivePower : LREAL;
    fSumReactivePower_1    : LREAL;
    bValidStatistics       : BOOL;
END_VAR
VAR_OUTPUT PERSISTENT
    aEnergy_Pos            : ARRAY[0..2] OF ST_PMA_Energy;
    aEnergy_Neg            : ARRAY[0..2] OF ST_PMA_Energy;
    aEnergy_Res            : ARRAY[0..2] OF ST_PMA_Energy;
END_VAR

FB_PMA_PowerValues_3Ph 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_InitPars

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

FB_PMA_PowerValues_3Ph 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.

aApparentPower

ARRAY[0..2] OF LREAL

Gesamt-Scheinleistung

aApparentPower_1

ARRAY[0..2] OF LREAL

Grundschwingungs-Scheinleistung

aApparentPower_1_Min

ARRAY[0..2] OF LREAL

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

aApparentPower_1_Max

ARRAY[0..2] OF LREAL

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

aActivePower

ARRAY[0..2] OF LREAL

Wirkleistung

aActivePower_Min

ARRAY[0..2] OF LREAL

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

aActivePower_Max

ARRAY[0..2] OF LREAL

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

aReactivePower_d

ARRAY[0..2] OF LREAL

Verzerrungsblindleistung

aReactivePower_1

ARRAY[0..2] OF LREAL

Grundschwingungs-Verschiebungs-Blindleistung

aReactivePower_1_Min

ARRAY[0..2] OF LREAL

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

aReactivePower_1_Max

ARRAY[0..2] OF LREAL

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

aTotalReactivePower

ARRAY[0..2] OF LREAL

Gesamt- Blindleistung

aPhi

ARRAY[0..2] OF LREAL

Phasenverschiebungswinkel

aCosPhi

ARRAY[0..2] OF LREAL

CosPhi (Wirkleistung/Grundschwingungs-Scheinleistung)

aPowerFactor

ARRAY[0..2] OF LREAL

Leistungsfaktor (Wirkleistung/Gesamt-Scheinleistung)

fSumApparentPower

LREAL

Summe der Gesamt-Scheinleistung aller Phasen.

fSumActivePower

LREAL

Summe der Wirkleistung aller Phasen.

fSumTotalReactivePower

LREAL

Summe der Gesamt- Blindleistung aller Phasen.

fSumReactivePower_1

LREAL

Summe der Beträge der Grundschwingungs-Verschiebungs-Blindleistung aller Phasen.

bValidStatistics

BOOL

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

aEnergy_Pos

ARRAY[0..2] OF ST_PMA_Energy

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

aEnergy_Neg

ARRAY[0..2] OF ST_PMA_Energy

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

aEnergy_Res

ARRAY[0..2] OF ST_PMA_Energy

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

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

Die Methode löscht alle bereits hinzugefügten Datensätze. Zusätzlich werden die berechneten Ausgangswerte zurückgesetzt.

Beispiel

VAR CONSTANT
    cOversamples : UDINT := 10;
    cFFT_Length : UDINT := 4096;
    cWindowLength : UDINT := 3200;
    cSourceInitPars: ST_PMA_Source_InitPars := (
        nBufferLength := cWindowLength/2);
    cPowerValuesInitPars : ST_PMA_PowerValues_InitPars := (
        nFFT_Length := cFFT_Length,
        nWindowLength := cWindowLength,
        fSampleRate := cOversamples * 1000,
        fBaseFreq := 50.0,
        nNumBands := 40,
        fBandwidth := 20.0,
        eWindowType := E_PMA_WindowType.HannWindow,
        fTimeLagCurrentTransformer := 0.0,
        fMinInputCurrent := 0.01);
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], stInitPars := cSourceInitPars);
    fbPowerValues : FB_PMA_PowerValues_3Ph := (nOwnID := 2, stInitPars := cPowerValuesInitPars);
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 algorithm
fbPowerValues.Call(FALSE, FALSE);

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.0

PC oder CX (x86, x64)

Tc3_PowerMonitoring