# Funktionsbausteine

### Allgemeines zu `KNX_Read_DPT_xx`

Die Verwendung aller KNX\_Read\_DPT\_xx Funktionsbausteine folgt einem ähnlichen Muster:

1. **Gruppenadresse konfigurieren**:
   * Setzen Sie `byAdrMainGroup` (0-31)
   * Setzen Sie `byAdrMiddleGroup` (0-7)
   * Setzen Sie `byAdrGroup` (0-255)
2. **DPT-Format auswählen**:
   * Wählen Sie das gewünschte Format über `eDPT_Format`
3. **Leseverhalten konfigurieren**:
   * Für zyklisches Lesen: Setzen Sie `tRequestTime` auf das gewünschte Intervall
   * Für ereignisbasiertes Lesen: Verwenden Sie `xRequest` oder `xRequestVisu` bei Bedarf
4. **Initialisierung konfigurieren**:
   * Setzen Sie `eInitOption` auf `InitOption.PollingOnStartUp` oder `InitOption.InitValue`
   * Bei `InitOption.InitValue`: Setzen Sie den entsprechenden Initialwert:
     * DPT\_13x: `diInitValue`
     * DPT\_14x: `rInitValue`
     * DPT\_19x: `dtInitValue` (nicht wirksam)
5. **Ausgänge überwachen**:
   * Prüfen Sie `tNextRequest` für den Zeitpunkt des nächsten Lesevorgangs
   * Überwachen Sie die entsprechenden Wertausgänge:
     * DPT\_13x: `diValue`, `rValue`
     * DPT\_14x: `rValue`
     * DPT\_19x: `wYear`, `wMonth`, `wDayOfMonth`, `wDayOfWeek`, `wHourOfDay`, `wMinutes`, `wSeconds`
   * Bei DPT\_13x und DPT\_14x: Beachten Sie `sUnit` für die Einheit
6. **Fehlerbehandlung**:
   * Überwachen Sie die Fehlerausgänge des übergeordneten SlaveBasic-Bausteins

### Allgemeines zu `KNX_Write_DPT_xx`

Die Verwendung aller KNX\_Write\_DPT\_xx Funktionsbausteine folgt einem ähnlichen Muster:

1. **Gruppenadresse konfigurieren**:
   * Setzen Sie `byAdrMainGroup` (0-31)
   * Setzen Sie `byAdrMiddleGroup` (0-7)
   * Setzen Sie `byAdrGroup` (0-255)
2. **DPT-Format auswählen**:
   * Wählen Sie das gewünschte Format über `eDPT_Format`
3. **Sendewert setzen**:
   * Setzen Sie den zu sendenden Wert im entsprechenden Eingang:
     * DPT\_1x: `xValue` (BOOL)
     * DPT\_2x: `xValue` (BOOL) und `xPrio` (BOOL)
     * DPT\_6x: `iValue` (INT)
     * DPT\_9x: `rValue` (REAL)
     * DPT\_13x: `diValue` (DINT)
     * DPT\_14x: `rValue` (REAL)
4. **Sendeverhalten konfigurieren**:
   * Für zyklisches Senden: Setzen Sie `tTimeUpdateSetp` auf den gewünschten Intervall
   * Für ereignisbasiertes Senden: Setzen Sie `xUpdateSetp` oder `xWriteVisu` bei Bedarf
   * Optional: Passen Sie `tPauseTimeUntilNextSend` an, um die Sendepause zu konfigurieren
5. **Ausgänge überwachen**:
   * Prüfen Sie `tNextWrite` für den Zeitpunkt des nächsten Sendevorgangs
   * Überwachen Sie den entsprechenden `*LastBusValue`-Ausgang für den zuletzt empfangenen Wert
   * Bei DPT\_1x: Beachten Sie zusätzlich `Encoding` für die textuelle Darstellung
   * Bei DPT\_2x: Beachten Sie zusätzlich `xControlBit` für den Prioritätsstatus
6. **Einheit beachten**:
   * Für DPT\_6x, DPT\_9x, DPT\_13x, DPT\_14x: Prüfen Sie `sUnit` für die aktuelle Einheit
7. **Fehlerbehandlung**:
   * Überwachen Sie die Fehlerausgänge des übergeordneten SlaveBasicWr-Bausteins


---

# 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-knx-library/functionblocks.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.
