> For the complete documentation index, see [llms.txt](https://support.powerio.com/hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.powerio.com/hub/codesys-hvac/en/hvac-bacnet2-library/funktionsbausteine/client-objekte/clientreadproperty_manyoutputs.md).

# ClientReadProperty\_ManyOutputs

## `ClientReadProperty_ManyOutputs` (FB)

FUNCTION\_BLOCK ClientReadProperty\_ManyOutputs

### Short description

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

### Representation

<figure><img src="https://2592874069-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQR4vCFzt6ixgsqlR3pdR%2Fuploads%2Fgit-blob-34e23ab14f48160ad73cadb7e057a106e032b158%2FClientReadProperty_ManyOutputs_FB.png?alt=media" alt=""><figcaption></figcaption></figure>

### Interfaces

#### Inputs

| Name            | Data type            | Value range | Initial value | Function                                                                                    |
| --------------- | -------------------- | ----------- | ------------- | ------------------------------------------------------------------------------------------- |
| *xEn*           | BOOL                 |             | TRUE          | Enable / disable communication ( TRUE = enable )                                            |
| *itfServer*     | BACnet.IBACnetServer |             |               | Interface variable for referencing the server                                               |
| *xUpdateActual* | BOOL                 |             | FALSE         | Updating of actual values (on every rising edge)                                            |
| *xResError*     | BOOL                 |             | FALSE         | Resetting the fault outputs ‘eErrorCodeCom’ and ‘eRepyErrorCode.XXX’ (on every 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       |             |               | Property type - feedback                                                                                |
| *eActPropertyDataType* | BACnet.CmpBACnet.IEC\_BACNET\_DATA\_TYPE         |             |               | BACNET - data type of the property                                                                      |
| *sValueOutput*         | STRING                                           |             | ‘’            | Display of the output for the actual value of the property                                              |
| *xValidValue*          | BOOL                                             |             | FALSE         | Validity status of the actual value of a property (TRUE = actual value valid)                           |
| *rValue*               | REAL                                             |             |               | Actual value of the property in REAL format (floating-point number according to IEEE754 - 32 bit )      |
| *xValue*               | REAL                                             |             |               | Actual value of the property in BOOL format                                                             |
| *sValue*               | STRING                                           |             |               | Actual value of the property in STRING format (string)                                                  |
| *diValue*              | DINT                                             |             |               | Actual value of the property in DINT format (signed integer)                                            |
| *udiValue*             | UDINT                                            |             |               | Actual value of the property in UDINT format (unsigned integer)                                         |
| *byValue*              | BYTE                                             |             |               | Actual value of the property in BYTE format (integer 0 - 255 )                                          |
| *lrValue*              | LREAL                                            |             |               | Actual value of the property in LREAL format (floating-point number according to IEEE754 - 64 bit )     |
| *stValue*              | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_CONTENTS |             |               | Actual value of the property in IEC\_BACNET\_PROPERTY\_CONTENTS format (direct access to the interface) |
| *xRegToServer*         | BOOL                                             |             | FALSE         | Status of registration with the BACnet server ( TRUE = successful registration )                        |
| *xConfigObject*        | BOOL                                             |             | FALSE         | Status of object 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 response to a request of its own                                 |
| *xAlarm*               | BOOL                                             |             | FALSE         | Collective fault ( TRUE = fault )                                                                       |
| *xAlarmCom*            | BOOL                                             |             | FALSE         | Collective fault - communication ( TRUE = fault )                                                       |
| *xBusy*                | BOOL                                             |             |               | Communication display ( TRUE = communication )                                                          |

#### Setpoints / Parameters

| Name                  | Data type                                  | Value range | Initial value                                                   | Function                                                                                                                 |
| --------------------- | ------------------------------------------ | ----------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **tTimeUpdateActual** | TIME                                       |             | T#3s                                                            | Update interval for the processes affected 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 | Property type                                                                                                            |
| **udiTimeoutFB**      | UDINT                                      |             | 5\*1000\*1000                                                   | Timeout duration for the instance of FB BACnet.BACnetClientReadProperty (in microseconds, 0 = no timeout, CBML ETrigATo) |

### Functional description

#### General

This function block transfers actual values of properties via BACNET communication (read access).\
The property to be read is selected via the parameters **dwDeviceID**, **eObjectType**, **dwObjectInstance** and **ePropertyType**.\
The validity of the actual value after a transfer is indicated at the output ‘xValidValue’.\
The output with the actual value is displayed at the output ‘sValueOutput’ after a successful transfer.

#### Enable / disable communication

The enable / disable of the communication is controlled via the input ‘xEn’ (Default = TRUE = enable).\
With every rising edge at the input ‘xEn’, a transfer of the actual value with the current settings is triggered.\
When disabled, the outputs assume predefined states; at the same time, a deregistration from the server occurs.

#### Triggering a transmission

The transfer of the property's actual value can be triggered as follows (prerequisite: xRegToServer = TRUE )\\

* every rising edge at input ‘xEn’
* every rising edge at input ‘xUpdateActual’
* cyclically at interval ‘tTimeUpdateAvtual’ ( Default: T#3s )
* once after each download
* once after every change to 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

The current setting values of the BACNET parameters are available at the outputs with the index ‘\_Fb’ for display purposes.

#### Output ‘ePropertyDataType’

After a successful transfer, the BACNET data type of the selected property is available at this output.\
It also determines the output for displaying the actual value.

#### Output ‘sValueOutput’

After a successful transfer, the name of the output variable that contains the valid actual value is available at this output.

#### Output ‘xValidValue’

After a successful transfer, the validity of the transferred property is available at this output.

#### 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’

The status of the internal connection to the BACNET server is permanently available at this output. Successful connection establishment to the server is a prerequisite for transmitting the setpoint.

#### Output ‘xConfigObject’

The successful configuration of the BACNET object is permanently available at this output.

#### Display of faults

Faults are displayed at the collective output ‘xAlarm’ (= TRUE).\
It contains the current states of the communication faults (xAlarmCom) and the device faults (xAlarmDevice).\
The communication faults are displayed at output xAlarmCom (time delay: gc\_Parameters.gc\_tOnDelayxAlarmCom, Default = 60s).\
The device faults are displayed without delay at output xAlarmDevice.\
At output ‘eErrorCodeCom’, in the event of a communication error, an explanatory text for the cause is available. It always shows the cause of the last communication error.\
At output ‘eErrorCodeDevice’, in the event of a device error, an explanatory text for the cause is available. It always shows the cause of the last communication error and is updated.\
At output ‘eReplyErrorCode’, in the event of an error in the response telegram, an explanatory text for the cause is available.

#### Output ‘xBusy’

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

### CODESYS

InOut:

| Scope       | Name                  | Type                                            | Initial                                                         | Comment                                                                                                                                       |
| ----------- | --------------------- | ----------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Input       | `xEn`                 | `BOOL`                                          | TRUE                                                            | Enable / disable communication ( TRUE = enable )                                                                                              |
| Input       | `itfServer`           | `BACnet.IBACnetServer`                          |                                                                 | Interface variable for referencing the server                                                                                                 |
| Input       | `xUpdateActual`       | `BOOL`                                          | FALSE                                                           | <p>Updating of actual values ( on every rising edge<br>)</p>                                                                                  |
| Input       | `xResError`           | `BOOL`                                          | FALSE                                                           | <p>Resetting of output ‘eError’ ( on every 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`       |                                                                 | Property type - feedback                                                                                                                      |
| Output      | `ePropertyDataType`   | `BACnet.CmpBACnet.IEC_BACNET_DATA_TYPE`         |                                                                 | BACnet - data type of the response telegram                                                                                                   |
| Output      | `sValueOutput`        | `STRING`                                        | ‘’                                                              | Display of the output for the actual 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>Actual value of the property in REAL format (floating-point number<br>according to IEEE754 - 32 bit )</p>                                  |
| Output      | `xValue`              | `BOOL`                                          |                                                                 | Actual value of the property in BOOL format                                                                                                   |
| Output      | `sValue`              | `STRING(255)`                                   |                                                                 | Actual value of the property in STRING format (string)                                                                                        |
| Output      | `diValue`             | `DINT`                                          |                                                                 | Actual value of the property in DINT format (signed integer )                                                                                 |
| Output      | `udiValue`            | `UDINT`                                         |                                                                 | Actual value of the property in UDINT format (unsigned integer )                                                                              |
| Output      | `byValue`             | `BYTE`                                          |                                                                 | Actual value of the property in BYTE format (integer 0 - 255 )                                                                                |
| Output      | `lrValue`             | `LREAL`                                         |                                                                 | <p>Actual value of the property in LREAL format (floating-point number<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 with the BACnet server ( TRUE =<br>successful registration )</p>                                                    |
| Output      | `xConfigObject`       | `BOOL`                                          |                                                                 | <p>Status of object configuration ( TRUE = successful<br>configuration )</p>                                                                  |
| Output      | `eCBMState`           | `BACnet.CmpBACnet.IEC_BACNET_STATUS`            |                                                                 | <p>CBM - communication status ( update: states<br>DONE, ERROR and ABORT )</p>                                                                 |
| Output      | `eComState`           | ClientReadProperty\_ComStates                   |                                                                 | <p>Status of communication ( update: 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                    |                                                                 | <p>Most recent communication error in the response to a<br>request of its own</p>                                                             |
| Output      | `xAlarm`              | `BOOL`                                          |                                                                 | Collective fault ( TRUE = fault )                                                                                                             |
| Output      | `xAlarmCom`           | `BOOL`                                          |                                                                 | Collective fault - communication ( TRUE = fault )                                                                                             |
| Output      | `xBusy`               | `BOOL`                                          |                                                                 | Communication display ( TRUE = communication )                                                                                                |
| Input Const | `udiTimeout`          | `UDINT`                                         | ((5 \* 1000) \* 1000)                                           | <p>Timeout duration for the instance of 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 | Property type                                                                                                                                 |
| 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 the processes affected by 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
