# DAIKIN\_EKMBDXB7V1\_IDU\_ERROR\_STATES

## `DAIKIN_EKMBDXB7V1_IDU_ERROR_STATES` (FB)

FUNCTION\_BLOCK DAIKIN\_EKMBDXB7V1\_IDU\_ERROR\_STATES

### Short description

> Detection of the error states of up to 64 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, use the address values, not the register addresses (address = register - 1)\
The 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 one request telegram (deviating from the Modbus standard)\
In FC04 a maximum of 32 registers may be requested in one request telegram (deviating from the Modbus standard)\
In FC16 a maximum of 30 registers may be written in one request telegram (deviating from the Modbus standard)\
The following transmission parameters were tested: 19200 Baud, 8-N-1\
The interface supports the following exception codes: 0x81, 0x82 and 0x83\
The number of control commands per indoor unit is limited to 7000 / year !!!\
Considering the tested transmission parameters, the time interval between the end of the response telegram and the next request telegram must be at least 22.5 ms\
\
All registers read with FC04 are always available up to date\
All registers read with FC03 are available up to date only once during each gateway restart\
Procedure to change a setpoint (FC06 or FC16):\
\
\&#xNAN;**\*\*\*\*\*\*\*\*\*\*\*\*\*\***\
\&#xNAN;**\* Functions \***\
\&#xNAN;**\*\*\*\*\*\*\*\*\*\*\*\*\*\***\
\
In this FB the error states of all up to 64 indoor units are detected and evaluated (FC04: addresses 3600 - 3727 )\
They are available in the array ‘arstIndoorUnits\_ErrorStates’ separated per indoor unit as a structure element.\
The structure element of an indoor unit is only updated if the corresponding read/write authorization exists (input ‘arxIndoorUnits\_ReadWriteState’).\
\\

InOut:

| Scope       | Name                            | Type                                                        | Initial    | Comment                                                                                                                                                                                                                                                            |
| ----------- | ------------------------------- | ----------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Input       | `xEn`                           | `BOOL`                                                      | TRUE       | Enable / disable of communication ( TRUE = enabled )                                                                                                                                                                                                               |
| Input       | `byUnitId`                      | `BYTE`                                                      | 0          | Device (interface) address (1 .. 15)                                                                                                                                                                                                                               |
| Input       | `xUpdateActual`                 | `BOOL`                                                      | FALSE      | <p>Update of actual values ( on each rising edge<br>)</p>                                                                                                                                                                                                          |
| Input       | `xResError`                     | `BOOL`                                                      | FALSE      | <p>Reinitialization of the output ‘eErrorCodeCom’ (on each<br>rising edge)</p>                                                                                                                                                                                     |
| Input       | `arxIndoorUnits_ReadWriteState` | <p>ARRAY \[1..4, 0..15] OF<br>BOOL</p>                      |            | <p>Array with the read/write authorizations of the indoor units of all groups (1-00 … 4-15)<br>1st dimension: group, 2nd dimension: indoor unit number<br>Array element = FALSE: no read/write authorization<br>Array element = TRUE: read/write authorization</p> |
| Inout       | `ModbusClient`                  | `ModbusClientBase`                                          |            | Client of the device                                                                                                                                                                                                                                               |
| Output      | `arstIndoorUnits_ErrorStates`   | <p>ARRAY \[1..4, 0..15] OF<br>EKMBDXB7V1\_ERROR\_STATES</p> |            | <p>Array with the error states of the indoor units of all groups (1-00 … 4-15)<br>1st dimension: group, 2nd dimension: indoor unit number<br>Array element = structure with the individual error states</p>                                                        |
| 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 | `tTimeUpdateActual`             | `TIME`                                                      | TIME#3s0ms | <p>Update interval for the processes affected by the input<br>‘xUpdateActual’</p>                                                                                                                                                                                  |
