FB_GseSvFunctionGeneratorClass

FB_GseSvFunctionGeneratorClass 1:

Dieser Funktionsbaustein implementiert einen einfachen Generator für Sinusfunktion-Testsignal. Die generierten Abtastwerte können für eine Simulation der SV-Kommunikation verwendet werden.

Namensraum: Tc3_Gse
Bibliothek: Tc3_Gse (Tc3_Gse.compiled-library)

FUNCTION_BLOCK FB_GseSvFunctionGeneratorClass
VAR_OUTPUT
    bValid   : BOOL;
    fSignal  : LREAL;
    nSmpRate : UINT;
    nSample  : UDINT;
END_VAR

FB_GseSvFunctionGeneratorClass 2: Ausgänge

Name

Typ

Beschreibung

bValid

BOOL

Dieser Ausgang hat den Wert: TRUE, wenn die Signalgenerator-Konfiguration gültig ist und den Wert: FALSE, wenn einer oder mehrere Parameterwerte ungültig sind. Beispiele für ungültige Parameterwerte: nOversampleFactor = 0, fFrequency <= 0, nSpecifiedSmpRate = 0 oder fCycleTimeCorrectionFactor <= 0.

fSignal

LREAL

Liefert den zuletzt mit dem Call-Methodenaufruf generierten Signal-Abtastwert der Sinusfunktion.

nSmpRate

UINT

Effektive Abtastrate. Im Abtastmodus: ‚AtSmpRateProPeriod‘ ist es die festgelegte Anzahl der Abtastwerte pro Periode. Im Abtastmodus: ‚AtSmpRateProSecond‘ ist es die festgelegte Anzahl der Abtastwerte pro Sekunde. Im Abtastmodus: ‚AtPlcTaskCycleTime‘ wird dieser Parameterwert nicht verwendet und die effektive Abtastrate aus der Zykluszeit der SPS-Task, der Frequenz und des konfigurierten Oversampling-Faktors errechnet.

nSample

UDINT

Abtastwert-Nummer. Der Wert inkrementiert bei jedem Call-Methodenaufruf. Der erste Abtastwert hat die Nummer: 0 und der letzte Abtastwert die Nummer: nSmpRate – 1. Beim nSmpRate-Call hat die Abtastwert-Nummer einen Überlauf und erneut den Wert: 0.

FB_GseSvFunctionGeneratorClass 3: Methoden

Name

Beschreibung

Call

Die Methode generiert einen neuen Signal-Abtastwert. Im Signal-Abtastmodus: ‚AtPlcTaskCycleTime‘ wird diese Methode normalerweise in jedem SPS-Taskzyklus nOversampleFactor-mal aufgerufen.

Config

Die Methode konfiguriert den Funktionsgenerator in Abhängigkeit vom ausgewählten Signal-Abtastmodus (eMode), der Zykluszeit der SPS-Taks, dem SPS-Zykluszeit-Korrekturfaktor (fCycleTimeCorrectionFactor), dem konfigurierten Oversampling-Faktor (nOversampleFactor), der konfigurierten Abtastrate (nSpecifiedSmpRate) sowie der Signalfrequenz (fFrequency). Die Config-Methode wird bei jeder Wertänderung dieser Konfigurationsparameter intern automatisch aufgerufen.

Reset

Die Methode setzt den Ausgangswert: fSignal auf: 0 und die Abtastwert-Nummer: nSample auf 0 zurück. Nach diesem Methodenaufruf generiert der nächste Call-Methodenaufruf erneut den ersten Abtastwert mit der Nummer 0. Bei einer Änderung der Konfigurationsparameter wird die Reset-Methode intern automatisch intern von der Config-Methode aufgerufen.

FB_GseSvFunctionGeneratorClass 4: Eigenschaften

Name

Typ

Zugriff

Beschreibung

eMode

E_GseSvGeneratorMode

Set

Signal-Abtastmodus. Standardwert: ‚AtPlcTaskCycleTime‘ => Abtastung im SPS-Taskzyklus.

fAmplitude

LREAL

Set

Legt die Spitzenamplitude des Signals fest. Z.B. in V oder A. Standardwert: 230 V * √2 => ~ 325 V.

fCycleTimeCorrectionFactor

LREAL

Set

Legt den Korrekturfaktor für die SPS-Task-Zykluszeit fest. Standardwert: 1.0 (keine Korrektur). Werte <= 0 sind ungültig.

fFrequency

LREAL

Set

Legt die Signalfrequenz in Hz fest. Standardwert: 50.0 Hz. Werte <= 0 sind ungültig.

fOffset

LREAL

Set

Legt den Signal-Offset fest. Standardwert: 0 (kein Offset).

fPhi

LREAL

Set

Legt die Signalphasenverschiebung in ° fest. Standardwert: 0°.

nOversampleFactor

UINT(1..128)

Set

Legt den Oversampling-Faktor des Signalgenerators fest. Wert 0 ist ungültig. Standardwert: 1 (kein Oversampling). In der UCA 61850-9-2LE Konfiguration enthält eine SV-Nachricht des MSVCB01 nur einen Signal-Abtastwert (kein Oversampling) und eine SV-Nachricht des MSVCB02 acht Signal-Abtastwerte (Oversampling-Faktor: 8). Um die 8 Abtastwerte pro SPS-Zyklus zu generieren, wird z.B. beim MSVCB08-Signalgenerator der Oversampling-Faktor: 8 und beim MSVCB01-Signalgenerator der Oversampling-Faktor: 1 konfiguriert. Die Call-Methode des MSVCB02 wird acht Mal und die Call-Methode des MSVCB01 ein Mal pro SPS-Zyklus aufgerufen. Die Zykluszeit der SPS-Task bestimmt dann die effektive Abtastrate.

nSpecifiedSmpRate

UINT

Set

Die für den Abtastmodus: ‚AtSmpRatePerPeriod‘ oder ‚AtSmpRatePerSecond‘ festgelegte Abtastrate. Standardwert: 80. Wert 0 ist ungültig. Im Abtastmodus: ‚AtPlcTaskCycleTime‘ wird dieser Parameterwert ignoriert und nicht verwendet.

Beispiel:

Siehe hier: SV-Publisher/-Subscriber nach UCA 61850-9-2 Light Edition.