FB_WriteRealOnDelta

FB_WriteRealOnDelta 1:

Der Funktionsbaustein ermöglicht das ereignisgesteuerte Schreiben einer Variablen vom Typ REAL.

Der Funktionsbaustein FB_WriteRealOnDelta prüft zyklisch, ob sich der Wert am Eingang fSignal geändert hat. Die Zykluszeit für die Prüfung wird durch den Parameter tCycleTime bestimmt. Wird für tCycleTime 0 s angegeben, so wird das Eingangssignal in jedem SPS-Zyklus überprüft. Wird bei dem Vergleich festgestellt, dass der aktuelle Wert um den Wert fUpperLimit größer oder um den Wert fLowerLimit kleiner ist, so wird der Wert des Signals an das angegebene ADS-Gerät geschickt. Der Empfänger wird durch die AMS-NetId und durch die Portnummer adressiert (siehe auch Identifikation ADS-Gerät). Die Position innerhalb des Empfängers wird durch die Index-Group/Index-Offset oder den Symbolnamen angegeben. Üblicherweise ist dieses das Eingangsabbild oder der Merkerbereich.

Je nach verwendeter Hardware ist die interne Darstellung von Fließkommazahlen unterschiedlich. Während Intel das „little endian“-Format benutzt, wird bei Motorola das „big-endian“-Format angewendet. Um einen Austausch von Fließkommazahlen zu ermöglichen, kann durch die Eingangsvariable bSwapLowHighWord eine Anpassung durchgeführt werden. Dieses ist z. B. notwendig, wenn zwischen der TwinCAT SPS auf einem PC und einem BC9000 Fließkommazahlen ausgetauscht werden sollen.

Wird der Eingang bEnable auf FALSE gesetzt, so erfolgt keine weitere Übertragung des Signals.

FB_WriteRealOnDelta 2: Eingänge

VAR_INPUT
    bEnable          :  BOOL := FALSE;
    sNetId           :  T_AmsNetId;
    nPort            :  T_AmsPort;
    nIdxGrp          :  UDINT;
    nIdxOffs         :  UDINT;
    sVarName         :  STRING;
    fSignal          :  REAL;
    fLowerLimit      :  REAL;
    fUpperLimit      :  REAL;
    tCycleTime       :  TIME := t#0s;
    bSendNow         :  BOOL;
    bSwapLowHighWord :  BOOL := FALSE;
END_VAR

Name

Typ

Beschreibung

bEnable

BOOL

Baustein freischalten.

sNetId

T_AmsNetID

AMS-NetId des ADS-Gerätes, in das der Wert übertragen werden soll.

nPort

T_AmsNetID

AMS-Portnummer des ADS-Gerätes, in das der Wert übertragen werden soll.

nIdxGrp

UDINT

Index-Group innerhalb des ADS-Gerätes, in der der Wert übertragen werden soll.

nIdxOffs

UDINT

Index-Offset innerhalb des ADS-Gerätes, in dem der Wert übertragen werden soll.

sVarName

STRING

Symbolname innerhalb des ADS-Gerätes, in dem der Wert übertragen werden soll.

fSignal

REAL

Variable, deren Wert übertragen werden soll.

nLowerLimit

REAL

Unterer Grenzwert.

nUpperLimit

REAL

Oberer Grenzwert.

tCycleTime

TIME

Zykluszeit, in der überprüft wird, ob das Eingangssignal die Grenzwerte überschritten hat.

bSendNow

BOOL

Durch eine positive Flanke wird der Wert unmittelbar übertragen.

bSwapLowHighWord

BOOL

Das niederwertige und das höherwertige WORD werden gedreht.

FB_WriteRealOnDelta 3: Ausgänge

VAR_OUTPUT
    bBusy            :  BOOL := FALSE;
    fLastSignal      :  REAL;
    bError           :  BOOL := FALSE;
    nErrorId         :  UDINT := 0;
    nErrorCnt        :  UDINT := 0;
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

Die Übertragung ist aktiv.

fLastSignal

REAL

Zuletzt übertragender Wert.

bError

BOOL

Bei der Übertragung ist ein Fehler aufgetreten.

nErrorId

UDINT

ADS-Fehlernummer, falls ein Fehler aufgetreten ist.

nErrorCnt

UDINT

Anzahl der fehlerhaften Übertragungsversuche.

Voraussetzungen

Entwicklungsumgebung

erforderliche TC3 SPS-Bibliothek

TwinCAT v3.0.0

Tc2_DataExchange