FB_BACnet_AnalogOutput_RAW

The following function block is used for linking a BACnet object of the local BACnet server. The function block for the corresponding BACnet object is linked with the aid of process data.

The process data can be created manually in the BACnet object, linked manually, or they can be generated automatically via PLC automapping. The comments required for PLC automapping ( (* ~ (BACnet... | ??? | ??? ) *) ) are already included in the declaration of the function block.

Contrary to the standard variant of the function block, the raw value is provided by a function block output and not by the terminal hardware. This allows e.g. Analog output information that is used in the PLC code displayed as an analog output object to BACnet (signal mapping for sub bus systems or virtual data points, etc.).

FB_BACnet_AnalogOutput_RAW 1:

Use

The function block "FB_BACnet_AnalogOutput_RAW" can be used for read and write access to a BACnet object of type AnalogOutput (AO). To this end the BACnet object was created under a local BACnet server.

FB_BACnet_AnalogOutput_RAW 2:
Fig. 1: Example of a BACnet object under a local BACnet server.

VAR_INPUT

bEnablePV    : BOOL;
fPV          : REAL;

bEnablePV: Enables the value of input "fPV". When the input is set to TRUE, an entry is made in the Priority_Array of the corresponding BACnet object with the value of input "fPV". This corresponds to a write access to the commandable property Present_Value with the set priority (default: 12 when PLC automapping is used or 16 for manual linking in the System Manager).

fPV: Value to be written to the Priority_Array of the commandable property Present_Value. The priority is based on the process data configuration and mapping of the BACnet object in the System Manager (see also Figs. 2 and 3). Writing is enabled by setting the input "bEnablePV" to TRUE. Process data are always written cyclically once enabled.

FB_BACnet_AnalogOutput_RAW 3:
Fig. 2: Example of a BACnet object with process data for writing the commandable property Present_Value.
FB_BACnet_AnalogOutput_RAW 4:
Fig. 3: Example for a process data configuration of an BACnet object in the System Manager. Priority 12 and 16 are created as mappable process data (see result in Fig. 2).

VAR_OUTPUT

bReady                  : BOOL;
fPresentValue           : REAL;
bOverridden             : BOOL;
bOutOfService           : BOOL;
bFault                  : BOOL;
bInAlarm                : BOOL;
bAckedTrans_ToOffNormal : BOOL;
bAckedTrans_ToFault     : BOOL;
bAckedTrans_ToNormal    : BOOL;
bError                  : BOOL;
nErrorId                : UINT;
nRawOut                 : INT; (* ~(BACnet_RawIoAnalogSignedValue : : ) *)

bReady: Notification of general readiness. If this output is set, the other status outputs are valid (PresentValue, Overridden ...). If the output is FALSE, the corresponding function block "FB_BACnet_Device" does not report "Operational", or the block instance was not linked correctly in the System Manager.

fPresentValue: Current value of the BACnet object (see also BACnet specification DIN EN ISO 16484-5 for BACnet object AnalogOutput and property Present_Value).

bOverridden, bOutOfService, bFault, bInAlarm: See BACnet specification DIN EN ISO 16484-5 for BACnet object AnalogOutput and property Status_Flags.

bAckedTrans_ToOffNormal, bAckedTrans_ToFault, bAckedTrans_ToNormal: Flags of property Acked_Transitions (see also BACnet specification DIN EN ISO 16484-5 for BACnet object AnalogOutput and property Acked_Transitions).

bError: An error is pending.

nErrorId: Error number
0 = no error
2 = incorrect process data mapping detected (check mapping in the System Manager; if necessary compile complete PLC project and reload)
3 = the corresponding BACnet server is not ready (bOperational = FALSE at instance of the FB_BACnet_Device)
The error numbers can be queried as block constants via the FB instance (FB_BACnet_???.nERR_xxx).

nRawOut: Raw value output of the object in the range -32768 ... 32767. The output is linked to the process data "RawIoAnalogSignedValue" of the BACnet object. The value of "nRawOut" is the calculation result of property Present_Value and property Resolution (assuming the object state is not out_of_service).

VAR_IN_OUT

Device       : FB_BACnet_Device;

Device: Specification of the instance of the local corresponding BACnet server block. For each BACnet adapter one BACnet server is possible. See FB_BACnet_Adapter and FB_BACnet_Device for further information.

Example

The following example shows the mapping of the Property Present_Value of an analog output object to an EIB integer value:

FB_BACnet_AnalogOutput_RAW 5:
Fig. 4: Example for the mapping of the property Present_Value to EIB in PLC code.

This example requires the library "TcKL6301.lib". Refer to the manual of terminal KL6301 for more information about EIB.