> 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-modbus-library/functionblocks/daikin/daikin_ekmbdxb7v1_idu_fc16_2000_2143.md).

# DAIKIN\_EKMBDXB7V1\_IDU\_FC16\_2000\_2143

## `DAIKIN_EKMBDXB7V1_IDU_FC16_2000_2143` (FB)

`FUNCTION_BLOCK` DAIKIN\_EKMBDXB7V1\_IDU\_FC16\_2000\_2143

### Representation

<figure><img src="https://2592874069-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQR4vCFzt6ixgsqlR3pdR%2Fuploads%2F6I5ovGgnQNwFtfOzggEi%2FDAIKIN_EKMBDXB7V1_IDU_FC16_2000_2143.png?alt=media&amp;token=27db0ae8-5eaa-4065-9ef5-493775aa64ff" alt=""><figcaption></figcaption></figure>

### Short description

> Changing the setpoints - 1 of a maximum of 48 Daikin indoor units
>
> Typical application: Central control of Daikin indoor units via the Daikin Modbus interface EKMBDXB7V1

#### Guidelines - Software creation

The following function codes (FC) are supported: 3, 4, 6 and 16 The following transmission rates are supported: 9600 and 19200 bit/s For addressing, the address specifications are to be used, not the register addresses (address = register - 1) Modbus addresses 1 - 15 can be set directly on the DIP switches in the interface. In FC03, a maximum of 32 registers may be requested in a request telegram (deviating from the Modbus standard) In FC04, a maximum of 32 registers may be requested in a request telegram (deviating from the Modbus standard) In FC16, a maximum of 30 registers may be written in a request telegram (deviating from the Modbus standard) The following transmission parameters were tested: 19200 baud, 8-N-1 The following exception codes are supported by the interface: 0x81, 0x82 and 0x83 The number of control commands per indoor unit is limited to 7000 / year !!! Taking into account the tested transmission parameters, the time between the end of the response and the next request telegram must be at least 22.5 ms

All registers read with FC04 are always available with current data All registers read with FC03 are only updated once during each restart of the gateway

\&#xNAN;**\*\*\*\*\*\*\*\*\*\*\*\*\*\*** \&#xNAN;**\* Functions \*** \&#xNAN;**\*\*\*\*\*\*\*\*\*\*\*\*\*\***

In this FB, the relevant setpoints of all up to 48 indoor units are recorded and transmitted (FC16: addresses 2000 - 2143). The setpoints are provided in the array `arstIndoorUnits_Setpoints_1_IN` separately for each indoor unit as a structure element. The setpoints of an indoor unit are updated only if the corresponding write/read permission is present (input `arxIndoorUnits_ReadWriteState`).

Procedure for changing a setpoint (FC06 or FC16) (see DAIKIN documentation!!!)

1. Detection of changes to the current setpoints (array with the index `_IN` with the array with the index `_OLD` compare)

When setpoint changes occur, the following additional steps are required: 2) Read current actual values (FC04: addresses 2000 - 2287) (storage in the array with the index `_CURRENT`) 3) Write current actual values as setpoints (FC16: addresses 2000 - 2143) (array with the index `_CURRENT` into the array with the index `_OUT` copy) 4) Write current setpoints (FC16: addresses 2000 - 2143) (array with the index `_IN` into the array with the index `_OUT` copy), (array with the index `_IN` into the array with the index `_OUT` copy)

InOut:

| Scope       | Name                                   | Type                                                                                            | Initial     | Comment                                                                                                                                                                                                                                                          |
| ----------- | -------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Input       | `xEn`                                  | `BOOL`                                                                                          | TRUE        | Enable / disable communication (TRUE = enable)                                                                                                                                                                                                                   |
| Input       | `byUnitId`                             | `BYTE`                                                                                          | 0           | Address of the device (interface) (1 .. 15)                                                                                                                                                                                                                      |
| Input       | `xUpdateSetp`                          | `BOOL`                                                                                          | FALSE       | <p>Update of setpoints (on every rising edge<br>)</p>                                                                                                                                                                                                            |
| Input       | `xCheckChanges`                        | `BOOL`                                                                                          | FALSE       | <p>Detection of changes in the array<br><code>arstIndoorUnits\_Setpoint\_Values\_1\_IN</code> (with every<br>rising edge)</p>                                                                                                                                    |
| Input       | `xResError`                            | `BOOL`                                                                                          | FALSE       | <p>Reinitialization of the output <code>eErrorCodeCom</code> (with every<br>rising edge)</p>                                                                                                                                                                     |
| Input       | `arxIndoorUnits_ReadWriteState`        | <p><code>ARRAY</code> \[1 .. 4, 0 .. 15] <code>OF</code><br><code>BOOL</code></p>               |             | <p>Array with the read/write permissions of the indoor units of all groups (1-00 … 4-15)<br>1st dimension: group, 2nd dimension: number of the indoor unit<br>Array element = FALSE: no read/write permission<br>Array element = TRUE: read/write permission</p> |
| Input       | `arstIndoorUnits_Setpoint_Values_1_IN` | <p><code>ARRAY</code> \[1 .. 3, 0 .. 15] <code>OF</code><br>EKMBDXB7V1\_SETPOINT\_VALUES\_1</p> |             | <p>Array with the relevant setpoints of the indoor units of all groups (1-00 … 3-15)<br>1st dimension: group, 2nd dimension: indoor unit number<br>Array element = structure with the setpoints</p>                                                              |
| Input       | `xResFilterSign`                       | `BOOL`                                                                                          | FALSE       | <p>Input for resetting the filter maintenance display on all<br>indoor units (TRUE = reset)</p>                                                                                                                                                                  |
| Inout       | `ModbusClient`                         | `ModbusClientBase`                                                                              |             | Client of the device                                                                                                                                                                                                                                             |
| Output      | `xAlarm`                               | `BOOL`                                                                                          | FALSE       | Collective fault (TRUE = fault)                                                                                                                                                                                                                                  |
| Output      | `xAlarmCom`                            | `BOOL`                                                                                          | FALSE       | Collective fault - communication (TRUE = fault)                                                                                                                                                                                                                  |
| Output      | `eErrorCodeCom`                        | ModbusErrorCode                                                                                 |             | Error code - communication (0 = no error)                                                                                                                                                                                                                        |
| Output      | `xBusy`                                | `BOOL`                                                                                          |             | Communication indicator (TRUE = communication)                                                                                                                                                                                                                   |
| Input Const | `xEnFanControl`                        | `BOOL`                                                                                          | TRUE        | <p>General enable / disable of the fan control for<br>all 48 indoor units (TRUE = enable)</p>                                                                                                                                                                    |
| Input Const | `tTimeCheckChanges`                    | `TIME`                                                                                          | TIME#1s0ms  | <p>Update interval for the operations that are influenced by the input<br><code>xCheckChanges</code> influenced</p>                                                                                                                                              |
| Input Const | `tTimeUpdateSetp`                      | `TIME`                                                                                          | TIME#45s0ms | <p>Update interval for the operations that are influenced by the input<br><code>xUpdateSetp</code> influenced</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-modbus-library/functionblocks/daikin/daikin_ekmbdxb7v1_idu_fc16_2000_2143.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.
