# ClientReadProperty\_ManyOutputs

## `ClientReadProperty_ManyOutputs` (FB)

FUNCTION\_BLOCK ClientReadProperty\_ManyOutputs

### Kurzbeschreibung

> Aktualisierung von Eigenschaften von BACNET-Objekten ( lesender Zugriff )\
> \
> Typische Anwendung: Abfrage eines Temperaturistwerts via BACNET

### Darstellung

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

### Schnittstellen

#### Eingänge

| Name            | Datentyp             | Wertebereich | Initialwert | Funktion                                                                                                  |
| --------------- | -------------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------- |
| *xEn*           | BOOL                 |              | TRUE        | Freigabe / Sperrung der Kommunikation ( TRUE = Freigabe )                                                 |
| *itfServer*     | BACnet.IBACnetServer |              |             | Interface-Variable für die Referenzierung des Servers                                                     |
| *xUpdateActual* | BOOL                 |              | FALSE       | Aktualisierung der Istwerte ( bei jeder ansteigenden Flanke )                                             |
| *xResError*     | BOOL                 |              | FALSE       | Rücksetzung des Fehlerausgänge ‘eErrorCodeCom’ und ‘eRepyErrorCode.XXX’ ( bei jeder ansteigenden Flanke ) |

#### Ausgänge

| Name                   | Datentyp                                         | Wertebereich | Initialwert | Funktion                                                                                                  |
| ---------------------- | ------------------------------------------------ | ------------ | ----------- | --------------------------------------------------------------------------------------------------------- |
| *dwDeviceID\_Fb*       | DWORD                                            |              | 0           | Nummer des BACnet - Zielgerät ( Bereich: 0 - 4194302 ) - Rückmeldung                                      |
| *eObjectType\_Fb*      | BACnet.CmpBACnet.IEC\_BACnet\_Object\_Type       |              |             | Typ des Objekts - Rückmeldung                                                                             |
| *dwObjectInstance\_Fb* | DWORD                                            |              | 0           | Nummer des Objekts ( Bereich: 0 - 4194303 ) - Rückmeldung                                                 |
| *ePropertyType\_Fb*    | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_ID       |              |             | Typ der Eigenschaft - Rückmeldung                                                                         |
| *eActPropertyDataType* | BACnet.CmpBACnet.IEC\_BACNET\_DATA\_TYPE         |              |             | BACNET - Datentyp der Eigenschaft                                                                         |
| *sValueOutput*         | STRING                                           |              | ‘’          | Anzeige des Ausgangs für den Istwert der Eigenschaft                                                      |
| *xValidValue*          | BOOL                                             |              | FALSE       | Status der Gültigkeit des Istwerts einer Eigenschaft ( TRUE = Istwert gültig )                            |
| *rValue*               | REAL                                             |              |             | Istwert der Eigenschaft im Format REAL ( Gleitkommazahl gemaess IEEE754 - 32 Bit )                        |
| *xValue*               | REAL                                             |              |             | Istwert der Eigenschaft im Format BOOL                                                                    |
| *sValue*               | STRING                                           |              |             | Istwert der Eigenschaft im Format STRING ( Zeichenkette )                                                 |
| *diValue*              | DINT                                             |              |             | Istwert der Eigenschaft im Format DINT ( Ganzzahl mit Vorzeichen )                                        |
| *udiValue*             | UDINT                                            |              |             | Istwert der Eigenschaft im Format UDINT ( Ganzzahl ohne Vorzeichen )                                      |
| *byValue*              | BYTE                                             |              |             | Istwert der Eigenschaft im Format BYTE ( Ganzzahl 0 - 255 )                                               |
| *lrValue*              | LREAL                                            |              |             | Istwert der Eigenschaft im Format LREAL ( Gleitkommazahl gemaess IEEE754 - 64 Bit )                       |
| *stValue*              | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_CONTENTS |              |             | Istwert der Eigenschaft im Format IEC\_BACNET\_PROPERTY\_CONTENTS ( Direktzugriff auf die Schnittstelle ) |
| *xRegToServer*         | BOOL                                             |              | FALSE       | Status der Registrierung am BACnet-Server ( TRUE = erfolgreiche Registrierung )                           |
| *xConfigObject*        | BOOL                                             |              | FALSE       | Status der Konfiguration des Objekts ( TRUE = erfolgreiche Konfiguration )                                |
| *eState*               | BACnet.CmpBACnet.IEC\_BACNET\_STATUS             |              |             | Status der Kommunikation                                                                                  |
| *eErrorCodeCom*        | BACnet.CmpBACnet.IEC\_BACNET\_STATUS             |              |             | Aktuellster Kommunikationsfehler                                                                          |
| *eErrorCodeDevice*     | BACnet.CmpBACnet.IEC\_BACNET\_ERROR\_CODE        |              |             | Aktuellster vom BACnet - Zielgerät ( BACnet-Server ) übertragener Gerätefehler                            |
| *eReplyErrorCode*      | TYPE\_OF\_REPLY\_ERROR\_CODE                     |              |             | Aktuellster Kommunikationsfehler in der Antwort auf eine eigene Anfrage                                   |
| *xAlarm*               | BOOL                                             |              | FALSE       | Sammelstörung ( TRUE = Störung )                                                                          |
| *xAlarmCom*            | BOOL                                             |              | FALSE       | Sammelstörung - Kommunikation ( TRUE = Störung )                                                          |
| *xBusy*                | BOOL                                             |              |             | Kommunikationsanzeige ( TRUE = Kommunikation )                                                            |

#### Sollwerte / Parameter

| Name                  | Datentyp                                   | Wertebereich | Initialwert                                                     | Funktion                                                                                                                                            |
| --------------------- | ------------------------------------------ | ------------ | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **tTimeUpdateActual** | TIME                                       |              | T#3s                                                            | Updateintervall für die Vorgänge, die durch den Eingang ‘xUpdateActual’ beeinflusst werden ( 0 = kein automatisches Update, > 0 zyklisches Update ) |
| **dwDeviceID**        | DWORD                                      |              |                                                                 | Nummer des BACnet - Zielgerät ( Bereich: 0 - 4194302 )                                                                                              |
| **eObjectType**       | BACnet.CmpBACnet.IEC\_BACnet\_Object\_Type |              | BACnet.CmpBACnet.IEC\_BACnet\_Object\_Type.OBJ\_ANALOG\_INPUT   | Typ des Objekts                                                                                                                                     |
| **dwObjectInstance**  | DWORD                                      |              |                                                                 | Nummer des Objekts ( Bereich: 0 - 4194303 )                                                                                                         |
| **ePropertyType**     | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_ID |              | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_ID.PROP\_PRESENT\_VALUE | Typ der Eigenschaft                                                                                                                                 |
| **udiTimeoutFB**      | UDINT                                      |              | 5\*1000\*1000                                                   | Zeitdauer des Timeout für die Instanz des FB BACnet.BACnetClientReadProperty ( in Mikrosekunden, 0 = kein Timeout, CBML ETrigATo )                  |

### Funktionsbeschreibung

#### Allgemeines

Dieser Funktionsbaustein überträgt Istwerte von Eigenschaften per BACNET-Kummunikation ( lesender Zugriff ).\
Die Auswahl der zu lesenden Eigenschaft erfolgt über die Parameter **dwDeviceID**, **eObjectType**, **dwObjectInstance** und **ePropertyType**.\
Die Gültigkeit des Istwerts nach einer Übertragung wird am Ausgang ‘xValidValue’ signalisiert.\
Der Ausgang mit dem Istwert wird nach einer erfolgreichen Übertragung am Ausgang ‘sValueOutput’ dargestellt.

#### Freigabe / Sperrung der Kommunikation

Die Freigabe / Sperrung der Kommunikation erfolgt über den Eingang ‘xEn’ ( Default = TRUE = Freigabe ).\
Bei jeder ansteigenden Flanke am Eingang ‘xEn’ wird eine Übertragung des Istwerts mit den aktuellen Einstellungen ausgelöst.\
Im gesperrten Zustand nehmen die Ausgänge vordefinierte Zustände ein, gleichzeitig erfolgt eine Abmeldung vom Server.

#### Auslösung einer Übertragung

Die Übertragung des Istwerts der Eigenschaft kann wie folgt ausgelöst ( Voraussetzung: xRegToServer = TRUE )\\

* jede ansteigende Flanke am Eingang ‘xEn’
* jede ansteigende Flanke am Eingang ‘xUpdateActual’
* zyklisch im Intervall ‘tTimeUpdateAvtual’ ( Default: T#3s )
* einmalig nach jedem Download
* einmalig nach jeder Änderung der Konfiguration

#### Konfiguration des BACNET-Objekts

Das BACNET-Objekt wird durch die folgenden Parameter eindeutig festgelegt:\\

* Geräteadresse ‘dwDeviceID’
* Objektadresse ‘dwObjectInstance’
* Objekttyp ‘eObjectType’
* Eigenschaftstyp ‘ePropertyType’

#### Rückmeldung der aktuellen Parameter

An den Ausgängen mi dem Index ‘\_Fb’ stehen die aktuellen Einstellwerte der BACNET-Parameter zu Anzeigezwecken zur Verfügung.

#### Ausgang ‘ePropertyDataType’

An diesem Ausgang steht nach einer erfolgreichen Übertragung der BACNET-Datentyp der ausgewählten Eigenschaft zur Verfügung.\
Er legt gleichzeitig den Ausgang für die Darstellung des Istwerts fest.

#### Ausgang ‘sValueOutput’

An diesem Ausgang steht nach einer erfolgreichen Übertragung der Name der Ausgangsvariablen zur Verfügung, die\
den gültigen Istwert enthält.

#### Ausgang ‘xValidValue’

An diesem Ausgang steht nach einer erfolgreichen Übertragung die Gültigkeit der übertragenen Eigenschaft zur Verfügung.

#### Ausgänge für den aktuellen Istwert der Eigenschaft

In Abhängigkeit von der Gültigkeit des Istwerts ( xValidValue = TRUE ) und dem Namen der Ausgangsvariablen ( sValueOutput )\
steht am entsprechenden Ausgang der Istwert zur Verfügung.

#### Ausgang ‘xRegToServer’

An diesem Ausgang steht permanent der Status der internen Verbindung zum BACNET-Server zur Verfügung. Der erfolgreiche Verbindungsaufbau zum Server\
ist dabei Voraussetzung zur Übertragung des Sollwerts.

#### Ausgang ‘xConfigObject’

An diesem Ausgang steht permanent der Status der erfolgreichen Konfiguration des BACNET-Objekts zur Verfügung.

#### Anzeige von Störungen

Die Anzeige von Störungen erfolgt am Sammelausgang ‘xAlarm’ ( = TRUE ).\
Er beinhaltet die aktuellen Zustände der Kommunikationsfehler ( xAlarmCom ) und die Gerätefehler ( xAlarmDevice ).\
Die Kommunikationsstörungen werden ( Zeitverzögerung: gc\_Parameters.gc\_tOnDelayxAlarmCom, Default = 60s ) am Ausgang xAlarmCom dargestellt.\
Die Gerätestörungen werden unverzögert am Ausgang xAlarmDevice dargestellt.\
Am Ausgang ‘eErrorCodeCom’ steht im Falle eines Kommunikationsfehlers ein erklärender Text für die Ursache zur Verfügung. Es wird dort stets die\
Ursache des letzten Kommunikationsfehlers angezeigt.\
Am Ausgang ‘eErrorCodeDevice’ steht im Falle eines Gerätefehlers ein erklärender Text für die Ursache zur Verfügung. Es wird dort stets die\
Ursache des letzten Kommunikationsfehlers angezeigt und aktuelisiert.\
Am Ausgang ‘eReplyErrorCode’ steht im Falle eines Fehlers im Antworttelegramm ein erklärender Text für die Ursache zur Verfügung.

#### Ausgang ‘xBusy’

Dieser Ausgang signalisiert die aktive Übertragung des Istwerts ( = TRUE ).

### CODESYS

InOut:

| Scope       | Name                  | Type                                            | Initial                                                         | Comment                                                                                                                                                  |
| ----------- | --------------------- | ----------------------------------------------- | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Input       | `xEn`                 | `BOOL`                                          | TRUE                                                            | Freigabe / Sperrung der Kommunikation ( TRUE = Freigabe )                                                                                                |
| Input       | `itfServer`           | `BACnet.IBACnetServer`                          |                                                                 | Interface-Variable für die Referenzierung des Servers                                                                                                    |
| Input       | `xUpdateActual`       | `BOOL`                                          | FALSE                                                           | <p>Aktualisierung der Istwerte ( bei jeder ansteigenden Flanke<br>)</p>                                                                                  |
| Input       | `xResError`           | `BOOL`                                          | FALSE                                                           | <p>Rücksetzung des Ausgang ‘eError’ ( bei jeder ansteigenden<br>Flanke )</p>                                                                             |
| Output      | `dwDeviceID_Fb`       | `DWORD`                                         |                                                                 | <p>Nummer des BACnet - Zielgerät ( Bereich: 0 - 4194302 ) -<br>Rückmeldung</p>                                                                           |
| Output      | `eObjectType_Fb`      | `BACnet.CmpBACnet.IEC_BACnet_Object_Type`       |                                                                 | Typ des Objekts - Rückmeldung                                                                                                                            |
| Output      | `dwObjectInstance_Fb` | `DWORD`                                         |                                                                 | Nummer des Objekts ( Bereich: 0 - 4194303 ) - Rückmeldung                                                                                                |
| Output      | `ePropertyType_Fb`    | `BACnet.CmpBACnet.IEC_BACNET_PROPERTY_ID`       |                                                                 | Typ der Eigenschaft - Rückmeldung                                                                                                                        |
| Output      | `ePropertyDataType`   | `BACnet.CmpBACnet.IEC_BACNET_DATA_TYPE`         |                                                                 | BACnet - Datentyp des Antworttelegramms                                                                                                                  |
| Output      | `sValueOutput`        | `STRING`                                        | ‘’                                                              | Anzeige des Ausgangs für den Istwert der Eigenschaft                                                                                                     |
| Output      | `xValidValue`         | `BOOL`                                          | FALSE                                                           | <p>Status der Gültigkeit des Istwerts einer Eigenschaft ( TRUE<br>= Istwert gültig )</p>                                                                 |
| Output      | `rValue`              | `REAL`                                          |                                                                 | <p>Istwert der Eigenschaft im Format REAL ( Gleitkommazahl<br>gemaess IEEE754 - 32 Bit )</p>                                                             |
| Output      | `xValue`              | `BOOL`                                          |                                                                 | Istwert der Eigenschaft im Format BOOL                                                                                                                   |
| Output      | `sValue`              | `STRING(255)`                                   |                                                                 | Istwert der Eigenschaft im Format STRING ( Zeichenkette )                                                                                                |
| Output      | `diValue`             | `DINT`                                          |                                                                 | <p>Istwert der Eigenschaft im Format DINT ( Ganzzahl mit<br>Vorzeichen )</p>                                                                             |
| Output      | `udiValue`            | `UDINT`                                         |                                                                 | <p>Istwert der Eigenschaft im Format UDINT ( Ganzzahl ohne<br>Vorzeichen )</p>                                                                           |
| Output      | `byValue`             | `BYTE`                                          |                                                                 | Istwert der Eigenschaft im Format BYTE ( Ganzzahl 0 - 255 )                                                                                              |
| Output      | `lrValue`             | `LREAL`                                         |                                                                 | <p>Istwert der Eigenschaft im Format LREAL ( Gleitkommazahl<br>gemaess IEEE754 - 64 Bit )</p>                                                            |
| Output      | `stValue`             | `BACnet.CmpBACnet.IEC_BACNET_PROPERTY_CONTENTS` |                                                                 | <p>Istwert der Eigenschaft im Format<br>IEC\_BACNET\_PROPERTY\_CONTENTS ( Direktzugriff auf die<br>Schnittstelle )</p>                                   |
| Output      | `xRegToServer`        | `BOOL`                                          |                                                                 | <p>Status der Registrierung am BACnet-Server ( TRUE =<br>erfolgreiche Registrierung )</p>                                                                |
| Output      | `xConfigObject`       | `BOOL`                                          |                                                                 | <p>Status der Konfiguration des Objekts ( TRUE = erfolgreiche<br>Konfiguration )</p>                                                                     |
| Output      | `eCBMState`           | `BACnet.CmpBACnet.IEC_BACNET_STATUS`            |                                                                 | <p>CBM - Status der Kommunikation ( Aktualisierung: Zustände<br>DONE, ERROR und ABORT )</p>                                                              |
| Output      | `eComState`           | ClientReadProperty\_ComStates                   |                                                                 | <p>Status der Kommunikation ( Aktualisierung: Zustände<br>No\_Execution, Target\_Device\_Searching, Request\_Sending,<br>Reply\_Waiting, Finishing )</p> |
| Output      | `eErrorCodeCom`       | `BACnet.CmpBACnet.IEC_BACNET_STATUS`            |                                                                 | Aktuellster Kommunikationsfehler                                                                                                                         |
| Output      | `eErrorCodeDevice`    | `BACnet.CmpBACnet.IEC_BACNET_ERROR_CODE`        |                                                                 | <p>Aktuellster vom BACnet - Zielgerät ( BACnet-Server )<br>übertragener Gerätefehler</p>                                                                 |
| Output      | `eReplyErrorCode`     | TYPE\_OF\_REPLY\_ERROR\_CODE                    |                                                                 | <p>Aktuellster Kommunikationsfehler in der Antwort auf eine<br>eigene Anfrage</p>                                                                        |
| Output      | `xAlarm`              | `BOOL`                                          |                                                                 | Sammelstörung ( TRUE = Störung )                                                                                                                         |
| Output      | `xAlarmCom`           | `BOOL`                                          |                                                                 | Sammelstörung - Kommunikation ( TRUE = Störung )                                                                                                         |
| Output      | `xBusy`               | `BOOL`                                          |                                                                 | Kommunikationsanzeige ( TRUE = Kommunikation )                                                                                                           |
| Input Const | `udiTimeout`          | `UDINT`                                         | ((5 \* 1000) \* 1000)                                           | <p>Zeitdauer des Timeout für die Instanz des FB<br>BACnet.BACnetClientReadProperty ( in Mikrosekunden, 0 = kein<br>Timeout, CBML ETrigATo )</p>          |
| Input Const | `ePropertyType`       | `BACnet.CmpBACnet.IEC_BACNET_PROPERTY_ID`       | BACnet.CmpBACnet.IEC\_BACNET\_PROPERTY\_ID.PROP\_PRESENT\_VALUE | Typ der Eigenschaft                                                                                                                                      |
| Input Const | `dwObjectInstance`    | `DWORD`                                         |                                                                 | Nummer des Objekts ( Bereich: 0 - 4194303 )                                                                                                              |
| Input Const | `eObjectType`         | `BACnet.CmpBACnet.IEC_BACnet_Object_Type`       | BACnet.CmpBACnet.IEC\_BACnet\_Object\_Type.OBJ\_ANALOG\_INPUT   | Typ des Objekts                                                                                                                                          |
| Input Const | `dwDeviceID`          | `DWORD`                                         |                                                                 | Nummer des BACnet - Zielgerät ( Bereich: 0 - 4194302 )                                                                                                   |
| Input Const | `tTimeUpdateActual`   | `TIME`                                          | TIME#3s0ms                                                      | <p>Updateintervall für die Vorgänge, die durch den Eingang<br>‘xUpdateActual’ beeinflusst werden</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/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.
