FB_WriteRealOnDelta

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