FB_WriteRealOnDelta
The function block enables event-driven writing of a variable of type REAL.
The function block FB_WriteRealOnDelta checks cyclically whether the value at the input fSignal has changed. The cycle time for checking is determined by the parameter tCycleTime. If 0 s is given for tCycleTime, the input signal is examined during every PLC cycle. If the comparison determines that the current value is greater by the value fUpperLimit or less by the value fLowerLimit, the value of the signal is sent to the specified ADS device. The receiver is addressed by means of the AMS-NetId and the port number (see also ADS Device Identification). The position within the receiver is specified by the index group/index offset or by the symbol name. Usually this is the input image or the flags area.
The internal representation of floating point numbers differs according to the hardware being used. While Intel uses the "little endian" format, Motorola uses the "big endian" format. The input variable bSwapLowHighWord can be used to make the necessary adjustment in order to be able to exchange floating point numbers. This is necessary if floating point numbers are to be exchanged between the TwinCAT PLC on a PC and a BC9000, for example.
If the input bEnable is set to FALSE, no further signal transmission is carried out.
Inputs
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 | Type | Description |
---|---|---|
bEnable | BOOL | Enable function block. |
sNetId | T_AmsNetID | AMS NetID of the ADS device to which the value is to be transmitted. |
nPort | T_AmsNetID | AMS port number of the ADS device to which the value is to be transmitted. |
nIdxGrp | UDINT | Index group within the ADS device into which the value is to be transmitted. |
nIdxOffs | UDINT | Index offset within the ADS device into which the value is to be transmitted. |
sVarName | STRING | Symbol name within the ADS device into which the value is to be transmitted. |
fSignal | REAL | Variable whose value is to be transmitted. |
nLowerLimit |
REAL |
Lower limit value. |
nUpperLimit |
REAL |
Upper limit value. |
tCycleTime |
TIME |
Cycle time in which the input signal is checked to see whether it has exceeded the limit values. |
bSendNow | BOOL | The value is transmitted immediately by a positive edge. |
bSwapLowHighWord | BOOL | The least significant WORD and the most significant WORD are swapped. |
Outputs
VAR_OUTPUT
bBusy : BOOL := FALSE;
fLastSignal : REAL;
bError : BOOL := FALSE;
nErrorId : UDINT := 0;
nErrorCnt : UDINT := 0;
END_VAR
Name | Type | Description |
---|---|---|
bBusy | BOOL | The transmission is active. |
fLastSignal | REAL | Most recently transmitted value. |
bError | BOOL | An error occurred during the transmission. |
nErrorId | UDINT | ADS error number if an error has occurred. |
nErrorCnt | UDINT | Number of failed transmission attempts. |
Requirements
Development environment | required TC3 PLC library |
---|---|
TwinCAT v3.0.0 | Tc2_DataExchange |