> 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/clientreadproperties_namevalueunitdescription.md).

# ClientReadProperties\_NameValueUnitDescription

## `ClientReadProperties_NameValueUnitDescription` (FB)

FUNCTION\_BLOCK ClientReadProperties\_NameValueUnitDescription

### Short description

> Update of four predefined properties of a BACNET object (read access)\
> Typical application: querying the properties of an ANALOG-INPUT object 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-6d2b03058e5393dd2d37633c837e9bf0fb7e0b82%2FClientReadProperties_NameValueUnitDescription_FB.png?alt=media" alt="" width="298"><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                                                |
| *sObjectName*          | STRING                                     |             |               | Name of the object                                                                                  |
| *sValueOutput*         | STRING                                     |             | ‘’            | Display of the output for the actual value ( PRESENT\_VALUE ) of the object                         |
| *xValidValue*          | BOOL                                       |             | FALSE         | Validity status of the actual value ( PRESENT\_VALUE ) ( 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 ) |
| *sObjectUnit*          | STRING                                     |             |               | Unit for the actual value ( PRESENT\_VALUE ) of the object                                          |
| *sObjectDescription*   | STRING                                     |             |               | Description of the object                                                                           |
| *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)                                                                                |

### Functional description

#### General

This function block transmits four predefined properties of an object via BACNET communication (read access).\
The properties OBJECT\_NAME, PRESENT\_VALUE, UNITS and DESCRIPTION (if possible) are read.\
The selection of the object to be read is made via the parameters **dwDeviceID**, **eObjectType** and **dwObjectInstance**.\
The validity of the actual value ( PRESENT\_VALUE) after a transmission is signaled at output ‘xValidValue’.\
The output with the actual value ( PRESENT\_VALUE ) is displayed at output ‘sValueOutput’ after a successful transmission.\
\\

#### Enable / disable communication

Communication enable / disable is performed via input ‘xEn’ ( Default = TRUE = enable ).\
Every rising edge at input ‘xEn’ triggers a transmission of the actual value with the current settings.\
In the disabled state, the outputs assume predefined states, and deregistration from the server also takes place.\
\\

#### Triggering a transmission

The transmission of the actual value of the property 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 each 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’\\

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

After a successful transmission, this output provides the name of the output variable that contains\
the valid actual value ( PRESENT\_VALUE ).\\

#### Output ‘xValidValue’

After a successful transmission, this output provides the validity of the actual value ( PRESENT\_VALUE ).\\

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

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’

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

#### Output ‘xConfigObject’

At this output, the status of the successful configuration of the BACNET object is permanently available.\\

#### Display of faults

Faults are indicated 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 there.\
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 there 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 transmission 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      | `sObjectName`         | `STRING`                                  |                                                               | Name of the object                                                                                                                            |
| 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 ( FALSE<br>= actual value invalid )</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      | `sObjectUnit`         | `STRING`                                  |                                                               | Unit of the measured value                                                                                                                    |
| Output      | `sObjectDescription`  | `STRING`                                  |                                                               | Description of the object                                                                                                                     |
| 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`  |                                                               | <p>Most recent device error transmitted by the BACnet target device ( BACnet server )<br></p>                                                 |
| 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 | `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>                                                                 |


---

# 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/clientreadproperties_namevalueunitdescription.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.
