# ClientReadProperty\_ManyOutputs

## `ClientReadProperty_ManyOutputs` (FB)

FUNCTION\_BLOCK ClientReadProperty\_ManyOutputs

### Short description

> Updating properties of BACNET objects (read access)\
> \
> Typical application: Querying a measured temperature value via BACNET

### Representation

<figure><img src="/files/c7f561d966d858398b4a6cd58b620898131b2fad" alt=""><figcaption></figcaption></figure>

### Interfaces

#### Inputs

| Name            | Data type            | Value range | Initial value | Function                                                                                  |
| --------------- | -------------------- | ----------- | ------------- | ----------------------------------------------------------------------------------------- |
| *xEn*           | BOOL                 |             | TRUE          | Enable / disable communication ( TRUE = enabled )                                         |
| *itfServer*     | BACnet.IBACnetServer |             |               | Interface variable for referencing the server                                             |
| *xUpdateActual* | BOOL                 |             | FALSE         | Update of actual values ( on each rising edge )                                           |
| *xResError*     | BOOL                 |             | FALSE         | Reset of the error outputs ‘eErrorCodeCom’ and ‘eRepyErrorCode.XXX’ (on each rising edge) |

#### Outputs

| Name                   | Data type                                        | Value range | Initial value | Function                                                                                                    |
| ---------------------- | ------------------------------------------------ | ----------- | ------------- | ----------------------------------------------------------------------------------------------------------- |
| *dwDeviceID\_Fb*       | DWORD                                            |             | 0             | Number of the BACnet target device (range: 0 - 4194302) - feedback                                          |
| *eObjectType\_Fb*      | BACnet.CmpBACnet.IEC\_BACnet\_Object\_Type       |             |               | Type of the object - feedback                                                                               |
| *dwObjectInstance\_Fb* | DWORD                                            |             | 0             | Number of the object (range: 0 - 4194303) - feedback                                                        |
| *ePropertyType\_Fb*    | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_ID       |             |               | Type of the property - feedback                                                                             |
| *eActPropertyDataType* | BACnet.CmpBACnet.IEC\_BACNET\_DATA\_TYPE         |             |               | BACNET - data type of the property                                                                          |
| *sValueOutput*         | STRING                                           |             | ‘’            | Display of the output for the current value of the property                                                 |
| *xValidValue*          | BOOL                                             |             | FALSE         | Validity status of the actual value of a property (TRUE = actual value valid)                               |
| *rValue*               | REAL                                             |             |               | Current value of the property in REAL format (floating point according to IEEE754 - 32 bit)                 |
| *xValue*               | REAL                                             |             |               | Current value of the property in BOOL format                                                                |
| *sValue*               | STRING                                           |             |               | Current value of the property in STRING format (character string)                                           |
| *diValue*              | DINT                                             |             |               | Current value of the property in DINT format (signed integer)                                               |
| *udiValue*             | UDINT                                            |             |               | Current value of the property in UDINT format (unsigned integer)                                            |
| *byValue*              | BYTE                                             |             |               | Current value of the property in BYTE format (integer 0 - 255)                                              |
| *lrValue*              | LREAL                                            |             |               | Current value of the property in LREAL format (floating point according to IEEE754 - 64 bit)                |
| *stValue*              | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_CONTENTS |             |               | Actual value of the property in the IEC\_BACNET\_PROPERTY\_CONTENTS format (direct access to the interface) |
| *xRegToServer*         | BOOL                                             |             | FALSE         | Status of registration at the BACnet server (TRUE = successful registration)                                |
| *xConfigObject*        | BOOL                                             |             | FALSE         | Status of the object's configuration (TRUE = successful configuration)                                      |
| *eState*               | BACnet.CmpBACnet.IEC\_BACNET\_STATUS             |             |               | Status of communication                                                                                     |
| *eErrorCodeCom*        | BACnet.CmpBACnet.IEC\_BACNET\_STATUS             |             |               | Most recent communication error                                                                             |
| *eErrorCodeDevice*     | BACnet.CmpBACnet.IEC\_BACNET\_ERROR\_CODE        |             |               | Most recent device error transmitted by the BACnet target device (BACnet server)                            |
| *eReplyErrorCode*      | TYPE\_OF\_REPLY\_ERROR\_CODE                     |             |               | Most recent communication error in the reply to one's own request                                           |
| *xAlarm*               | BOOL                                             |             | FALSE         | General fault ( TRUE = fault )                                                                              |
| *xAlarmCom*            | BOOL                                             |             | FALSE         | General fault - communication ( TRUE = fault )                                                              |
| *xBusy*                | BOOL                                             |             |               | Communication indicator ( TRUE = communication )                                                            |

#### Setpoints / parameters

| Name                  | Data type                                  | Value range | Initial value                                                   | Function                                                                                                                     |
| --------------------- | ------------------------------------------ | ----------- | --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **tTimeUpdateActual** | TIME                                       |             | T#3s                                                            | Update interval for operations influenced by the input 'xUpdateActual' ( 0 = no automatic update, > 0 cyclical update )      |
| **dwDeviceID**        | DWORD                                      |             |                                                                 | Number of the BACnet target device (range: 0 - 4194302)                                                                      |
| **eObjectType**       | BACnet.CmpBACnet.IEC\_BACnet\_Object\_Type |             | BACnet.CmpBACnet.IEC\_BACnet\_Object\_Type.OBJ\_ANALOG\_INPUT   | Type of the object                                                                                                           |
| **dwObjectInstance**  | DWORD                                      |             |                                                                 | Number of the object (range: 0 - 4194303)                                                                                    |
| **ePropertyType**     | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_ID |             | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_ID.PROP\_PRESENT\_VALUE | Type of the property                                                                                                         |
| **udiTimeoutFB**      | UDINT                                      |             | 5\*1000\*1000                                                   | Timeout duration for the instance of the FB BACnet.BACnetClientReadProperty (in microseconds, 0 = no timeout, CBML ETrigATo) |

### Function description

#### General

This function block transmits actual values of properties via BACNET communication (read access).\
The selection of the property to be read is done via the parameters **dwDeviceID**, **eObjectType**, **dwObjectInstance** and **ePropertyType**.\
The validity of the actual value after a transmission is signaled at the output 'xValidValue'.\
The output with the actual value is presented at the output 'sValueOutput' after a successful transmission.

#### Enable / disable communication

Enabling/disabling of communication is done via the input 'xEn' (Default = TRUE = enabled).\
On every rising edge at the input 'xEn', a transmission of the actual value with the current settings is triggered.\
In the disabled state, the outputs assume predefined states and a deregistration from the server takes place at the same time.

#### Triggering a transfer

The transmission of the actual value of the property can be triggered as follows (Prerequisite: xRegToServer = TRUE)\\

* every rising edge at the input 'xEn'
* every rising edge at the input 'xUpdateActual'
* periodically at the interval 'tTimeUpdateAvtual' (Default: T#3s)
* once after each download
* once after every change of the configuration

#### Configuration of the BACNET object

The BACNET object is uniquely defined by the following parameters:\\

* Device address 'dwDeviceID'
* Object address 'dwObjectInstance'
* Object type ‘eObjectType’
* Property type ‘ePropertyType’

#### Feedback of the current parameters

At the outputs with the index '\_Fb' the current setting values of the BACNET parameters are available for display purposes.

#### Output 'ePropertyDataType'

At this output, after a successful transmission, the BACNET data type of the selected property is available.\
It also determines the output used for presenting the actual value.

#### Output 'sValueOutput'

At this output, after a successful transmission, the name of the output variable that contains\
the valid actual value is available.

#### Output 'xValidValue'

At this output, after a successful transmission, the validity of the transmitted property is available.

#### Outputs for the current actual value of the property

Depending on the validity of the actual value (xValidValue = TRUE) and the name of the output variable (sValueOutput)\
the actual value is available at the corresponding output.

#### Output 'xRegToServer'

This output permanently provides the status of the internal connection to the BACNET server. A successful connection to the server\
is a prerequisite for transmitting the setpoint.

#### Output 'xConfigObject'

This output permanently provides the status of the successful configuration of the BACNET object.

#### Display of faults

Faults are indicated at the aggregate output 'xAlarm' ( = TRUE ).\
It contains the current states of communication errors (xAlarmCom) and device errors (xAlarmDevice).\
Communication faults are indicated at the output xAlarmCom with a time delay: gc\_Parameters.gc\_tOnDelayxAlarmCom (Default = 60s).\
Device faults are indicated without delay at the output xAlarmDevice.\
In the event of a communication error, an explanatory text for the cause is available at the output 'eErrorCodeCom'. It always shows\
the cause of the last communication error.\
In the event of a device error, an explanatory text for the cause is available at the output 'eErrorCodeDevice'. It always shows and updates\
the cause of the last communication error.\
In the event of an error in the reply telegram, an explanatory text for the cause is available at the output 'eReplyErrorCode'.

#### Output 'xBusy'

This output signals the active transmission of the actual value ( = TRUE ).

### CODESYS

InOut:

| Scope       | Name                  | Type                                            | Initial                                                         | Comment                                                                                                                                   |
| ----------- | --------------------- | ----------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Input       | `xEn`                 | `BOOL`                                          | TRUE                                                            | Enable / disable communication ( TRUE = enabled )                                                                                         |
| Input       | `itfServer`           | `BACnet.IBACnetServer`                          |                                                                 | Interface variable for referencing the server                                                                                             |
| Input       | `xUpdateActual`       | `BOOL`                                          | FALSE                                                           | <p>Update of actual values (on every rising edge<br>)</p>                                                                                 |
| Input       | `xResError`           | `BOOL`                                          | FALSE                                                           | <p>Reset of the output 'eError' (on each rising<br>edge)</p>                                                                              |
| Output      | `dwDeviceID_Fb`       | `DWORD`                                         |                                                                 | <p>Number of the BACnet target device (range: 0 - 4194302) -<br>feedback</p>                                                              |
| Output      | `eObjectType_Fb`      | `BACnet.CmpBACnet.IEC_BACnet_Object_Type`       |                                                                 | Type of the object - feedback                                                                                                             |
| Output      | `dwObjectInstance_Fb` | `DWORD`                                         |                                                                 | Number of the object (range: 0 - 4194303) - feedback                                                                                      |
| Output      | `ePropertyType_Fb`    | `BACnet.CmpBACnet.IEC_BACNET_PROPERTY_ID`       |                                                                 | Type of the property - feedback                                                                                                           |
| Output      | `ePropertyDataType`   | `BACnet.CmpBACnet.IEC_BACNET_DATA_TYPE`         |                                                                 | BACnet - data type of the reply telegram                                                                                                  |
| Output      | `sValueOutput`        | `STRING`                                        | ‘’                                                              | Display of the output for the current value of the property                                                                               |
| Output      | `xValidValue`         | `BOOL`                                          | FALSE                                                           | <p>Validity status of the actual value of a property (TRUE<br>= actual value valid)</p>                                                   |
| Output      | `rValue`              | `REAL`                                          |                                                                 | <p>Current value of the property in REAL format (floating point<br>according to IEEE754 - 32 bit)</p>                                     |
| Output      | `xValue`              | `BOOL`                                          |                                                                 | Current value of the property in BOOL format                                                                                              |
| Output      | `sValue`              | `STRING(255)`                                   |                                                                 | Current value of the property in STRING format (character string)                                                                         |
| Output      | `diValue`             | `DINT`                                          |                                                                 | <p>Current value of the property in DINT format (signed<br>integer)</p>                                                                   |
| Output      | `udiValue`            | `UDINT`                                         |                                                                 | <p>Current value of the property in UDINT format (unsigned<br>integer)</p>                                                                |
| Output      | `byValue`             | `BYTE`                                          |                                                                 | Current value of the property in BYTE format (integer 0 - 255)                                                                            |
| Output      | `lrValue`             | `LREAL`                                         |                                                                 | <p>Current value of the property in LREAL format (floating point<br>according to IEEE754 - 64 bit)</p>                                    |
| Output      | `stValue`             | `BACnet.CmpBACnet.IEC_BACNET_PROPERTY_CONTENTS` |                                                                 | <p>Actual value of the property in the<br>IEC\_BACNET\_PROPERTY\_CONTENTS format (direct access to the<br>interface)</p>                  |
| Output      | `xRegToServer`        | `BOOL`                                          |                                                                 | <p>Status of registration at the BACnet server (TRUE =<br>successful registration)</p>                                                    |
| Output      | `xConfigObject`       | `BOOL`                                          |                                                                 | <p>Status of the object's configuration (TRUE = successful<br>configuration)</p>                                                          |
| Output      | `eCBMState`           | `BACnet.CmpBACnet.IEC_BACNET_STATUS`            |                                                                 | CBM - communication status (updates: states DONE, ERROR and ABORT)                                                                        |
| Output      | `eComState`           | ClientReadProperty\_ComStates                   |                                                                 | <p>Communication status (updates: states<br>No\_Execution, Target\_Device\_Searching, Request\_Sending,<br>Reply\_Waiting, Finishing)</p> |
| Output      | `eErrorCodeCom`       | `BACnet.CmpBACnet.IEC_BACNET_STATUS`            |                                                                 | Most recent communication error                                                                                                           |
| Output      | `eErrorCodeDevice`    | `BACnet.CmpBACnet.IEC_BACNET_ERROR_CODE`        |                                                                 | Most recent device error transmitted by the BACnet target device (BACnet server)                                                          |
| Output      | `eReplyErrorCode`     | TYPE\_OF\_REPLY\_ERROR\_CODE                    |                                                                 | Most recent communication error in the reply to one's own request                                                                         |
| Output      | `xAlarm`              | `BOOL`                                          |                                                                 | General fault ( TRUE = fault )                                                                                                            |
| Output      | `xAlarmCom`           | `BOOL`                                          |                                                                 | General fault - communication ( TRUE = fault )                                                                                            |
| Output      | `xBusy`               | `BOOL`                                          |                                                                 | Communication indicator ( TRUE = communication )                                                                                          |
| Input Const | `udiTimeout`          | `UDINT`                                         | ((5 \* 1000) \* 1000)                                           | <p>Timeout duration for the instance of the FB<br>BACnet.BACnetClientReadProperty (in microseconds, 0 = no<br>timeout, CBML ETrigATo)</p> |
| Input Const | `ePropertyType`       | `BACnet.CmpBACnet.IEC_BACNET_PROPERTY_ID`       | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_ID.PROP\_PRESENT\_VALUE | Type of the property                                                                                                                      |
| Input Const | `dwObjectInstance`    | `DWORD`                                         |                                                                 | Number of the object (range: 0 - 4194303)                                                                                                 |
| Input Const | `eObjectType`         | `BACnet.CmpBACnet.IEC_BACnet_Object_Type`       | BACnet.CmpBACnet.IEC\_BACnet\_Object\_Type.OBJ\_ANALOG\_INPUT   | Type of the object                                                                                                                        |
| Input Const | `dwDeviceID`          | `DWORD`                                         |                                                                 | Number of the BACnet target device (range: 0 - 4194302)                                                                                   |
| Input Const | `tTimeUpdateActual`   | `TIME`                                          | TIME#3s0ms                                                      | <p>Update interval for operations influenced by the input<br>'xUpdateActual'</p>                                                          |

Methods:

> CLEAR\_RESULT\_OUTPUTS

> CLEAR\_STVALUE

> FB\_Exit

Structure:

* CLEAR\_RESULT\_OUTPUTS (Method)
* CLEAR\_STVALUE (Method)
* FB\_Exit (Method)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.powerio.com/hub/codesys-hvac/en/hvac-bacnet2-library/funktionsbausteine/client-objekte/clientreadproperty_manyoutputs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
