# SPLUSS\_RYMASKON\_2XX\_MOD\_V2

## `SPLUSS_RYMASKON_2XX_MOD_V2` (FB)

`FUNCTION_BLOCK` SPLUSS\_RYMASKON\_2XX\_MOD\_V2

### Short description

> Control of the Rymaskon 2XX device series from S+S Regeltechnik
>
> Typical application: room operating device in a zone

### Representation

<figure><img src="/files/1843059dc1c7d6b08f9fcbe598c06e72dd08131c" alt=""><figcaption></figcaption></figure>

### Interfaces

#### Inputs

| Name                   | Data type | Value range | Initial value | Function                                                              |
| ---------------------- | --------- | ----------- | ------------- | --------------------------------------------------------------------- |
| *xEn*                  | `BOOL`    |             | TRUE          | Enable / disable communication (TRUE = enable)                        |
| *byUnitId*             | `BYTE`    |             | 0             | Device address (0 .. 255)                                             |
| *xUpdateActual*        | `BOOL`    |             | FALSE         | Update of actual values (on every rising edge)                        |
| *xUpdateStates*        | `BOOL`    |             | FALSE         | Update of states (on every rising edge)                               |
| *xUpdateSetp*          | `BOOL`    |             | FALSE         | Update of setpoints (on every rising edge)                            |
| *xUpdateConfig*        | `BOOL`    |             | FALSE         | Update of configuration (on every rising edge)                        |
| *rSetpTempNight*       | `REAL`    |             | 18.0          | Room setpoint temperature in night mode (degrees Celsius)             |
| *rSetpTempBaseDay*     | `REAL`    |             | 22.0          | Base - room setpoint temperature in day mode (degrees Celsius)        |
| *rSetpFanLevelNight*   | `REAL`    |             | 1.0           | Set fan speed in night mode                                           |
| *rSetpFanLevelBaseDay* | `REAL`    |             | 2.0           | Base - set fan speed in day mode (degrees Celsius)                    |
| *rSetpDispFanLev*      | `REAL`    |             | 0.0           | Setpoint for the display of the fan stage (bar graph - right)         |
| *rSetpDispHCLev*       | `REAL`    |             | 0.0           | Setpoint for the display of heating/cooling output (bar graph - left) |
| *xDsplSymbPresen*      | `BOOL`    |             | FALSE         | Display of the symbols for presence (= TRUE) or absence (= FALSE)     |
| *xDsplSymbHeat*        | `BOOL`    |             | FALSE         | Display of the symbol for heating operation (TRUE = display)          |
| *xDsplSymbCool*        | `BOOL`    |             | FALSE         | Display of the symbol for cooling operation (TRUE = display)          |
| *xDsplSymbFan*         | `BOOL`    |             | FALSE         | Display of the symbol for the fan (TRUE = display)                    |
| *xDsplSymbAlWindo*     | `BOOL`    |             | FALSE         | Display of the window alarm symbol (TRUE = display)                   |
| *xDsplSymbAlRainf*     | `BOOL`    |             | FALSE         | Display of the rain alarm symbol (TRUE = display)                     |
| *xDsplSymbAlStorm*     | `BOOL`    |             | FALSE         | Display of the wind alarm symbol (TRUE = display)                     |
| *xDsplSymbAlAlarm*     | `BOOL`    |             | FALSE         | Display of the alarm symbol (TRUE = display)                          |
| *xDsplSymbNotDrop*     | `BOOL`    |             | FALSE         | Display of the crossed-out drop symbol (TRUE = display)               |
| *xDsplSymbClock*       | `BOOL`    |             | FALSE         | Display of the clock symbol (TRUE = display)                          |
| *xBuzzer\_Alarm*       | `BOOL`    |             | FALSE         | Enable / disable the alarm tone (buzzer) (TRUE = enable)              |
| *xResetDevice*         | `BOOL`    |             | FALSE         | Reset of the device (on every rising edge)                            |

#### Outputs

| Name               | Data type                    | Value range | Initial value | Function                                                                                                                     |
| ------------------ | ---------------------------- | ----------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| *rSetpTemp*        | `REAL`                       |             |               | Setpoint temperature (degrees Celsius) (corresponds to the room setpoint temperature shown on the RBG) (= register 384)      |
| *rSetpTempOff*     | `REAL`                       |             |               | Setpoint temperature offset (Kelvin) (calculation: rSetpTempOff = rSetpTemp - rSetpTempBase)                                 |
| *rSetpTempMin*     | `REAL`                       |             |               | Absolute minimum value - setpoint temperature (degrees Celsius) (calculation, depending on operating mode night/day)         |
| *rSetpTempMax*     | `REAL`                       |             |               | Absolute maximum value - setpoint temperature (degrees Celsius) (calculation, depending on operating mode night/day)         |
| *rSetpFanLevel*    | `REAL`                       |             |               | Set fan level (corresponds to the set fan level shown on the RBG) (= register 385)                                           |
| *rSetpFanLevelMin* | `REAL`                       |             |               | Absolute minimum value - set fan level (calculation, depending on operating mode night/day)                                  |
| *rSetpFanLevelMax* | `REAL`                       |             |               | Absolute maximum value - set fan level (calculation, depending on operating mode night/day)                                  |
| *rRoomTemp*        | `REAL`                       |             |               | Room temperature in XXX.X degrees Celsius                                                                                    |
| *rExtTemp*         | `REAL`                       |             |               | External temperature in XXX.X degrees Celsius                                                                                |
| *rRelHumidity*     | `REAL`                       |             |               | Relative room humidity in XXX.X %                                                                                            |
| *rDewPointTemp*    | `REAL`                       |             |               | Dew point temperature in XXX.X degrees Celsius (the offsets of temperature and relative humidity are not taken into account) |
| *rSupplyVolt*      | `REAL`                       |             |               | Supply voltage in XXX.X Volts                                                                                                |
| *rCpuTemp*         | `REAL`                       |             |               | CPU temperature in XXX.X degrees Celsius                                                                                     |
| *rCpuVolt*         | `REAL`                       |             |               | CPU voltage in XXX.X Volts                                                                                                   |
| *sSerialNum*       | `STRING`                     |             |               | Serial number of the device                                                                                                  |
| *sProductCode*     | `STRING`                     |             |               | Product code of the device (e.g. `21X`)                                                                                      |
| *xConfig*          | `BOOL`                       |             |               | State of the device configuration \[ TRUE = configuration active ]                                                           |
| *xButtonPresence*  | `BOOL`                       |             |               | Pressing the presence button (RBG (= room control unit): RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)      |
| *xButtonTempUp*    | `BOOL`                       |             |               | Pressing the button to increase the set temperature (RBG: pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)          |
| *xButtonTempDown*  | `BOOL`                       |             |               | Pressing the button to decrease the set temperature (RBG: pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)          |
| *xButtonFanUp*     | `BOOL`                       |             |               | Pressing the button to increase the fan stage (RBG: RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)           |
| *xButtonFanDown*   | `BOOL`                       |             |               | Pressing the button to decrease the fan stage (RBG: RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)           |
| *xButtonLightOn*   | `BOOL`                       |             |               | Pressing the button to activate the lighting (RBG: RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)            |
| *xButtonLightOff*  | `BOOL`                       |             |               | Pressing the button to deactivate the lighting (RBG: RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)          |
| *xButtonShadeUp*   | `BOOL`                       |             |               | Pressing the button to open the shading (RBG: RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)                 |
| *xButtonShadeDown* | `BOOL`                       |             |               | Pressing the button to close the shading (RBG: RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)                |
| *xStateExtBut0*    | `BOOL`                       |             |               | State of external input 0                                                                                                    |
| *xStateExtBut1*    | `BOOL`                       |             |               | State of external input 1                                                                                                    |
| *xStateExtBut2*    | `BOOL`                       |             |               | State of external input 2                                                                                                    |
| *xStateExtBut3*    | `BOOL`                       |             |               | State of external input 3                                                                                                    |
| *xAlarm*           | `BOOL`                       |             |               | Collective fault (TRUE = fault)                                                                                              |
| *xAlarmCom*        | `BOOL`                       |             |               | Collective fault - communication (TRUE = fault)                                                                              |
| *eErrorCodeCom*    | ModbusErrorCode              |             |               | Error code - communication (0 = no error)                                                                                    |
| *eErrorCodeDev*    | SPLUSS\_ERROR\_CODE\_TYPE\_2 |             |               | Error code - device (0 = no error)                                                                                           |
| *xBusy*            | `BOOL`                       |             |               | Communication indicator (TRUE = communication)                                                                               |

#### Inputs and outputs

| Name           | Data type        | Value range | Initial value | Function             |
| -------------- | ---------------- | ----------- | ------------- | -------------------- |
| *ModbusClient* | ModbusClientBase |             |               | Client of the device |

#### Setpoints / parameters

| Name                     | Data type                                 | Value range | Initial value                                       | Function                                                                                                                                |
| ------------------------ | ----------------------------------------- | ----------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **tTimeUpdateActual**    | `TIME`                                    |             | T#3s                                                | Update interval for the processes influenced by the input `xUpdateActual` are affected (0 = no automatic update, > 0 cyclical update)   |
| **tTimeUpdateStates**    | `TIME`                                    |             | T#500ms                                             | Update interval for the processes influenced by the input `xUpdateStates` are affected (0 = no automatic update, > 0 cyclical update)   |
| **tTimeUpdateSetp**      | `TIME`                                    |             | T#0s                                                | Update interval for the processes influenced by the input `xUpdateSetp` are affected (0 = no automatic update, > 0 cyclical update)     |
| **tTimeUpdateConfig**    | `TIME`                                    |             | T#0s                                                | Update interval for the processes influenced by the input `xUpdateConfig` are affected (0 = no automatic update, > 0 cyclical update)   |
| **tPCTimeLong**          | `TIME`                                    |             | T#60s                                               | Interval time of the scan process for determining the product code (long duration, device detected)                                     |
| **tPCTimeShort**         | `TIME`                                    |             | T#5s                                                | Interval time of the scan process for determining the product code (short duration, device not yet detected)                            |
| **tTimeButtonPulse**     | `TIME`                                    |             | T#1s                                                | Duration of the pulse at the output if the assigned button was pressed briefly                                                          |
| **rSetpTempOffMin**      | `REAL`                                    |             | -3.0                                                | Absolute minimum value of the setpoint temperature offset in day mode (Kelvin)                                                          |
| **rSetpTempOffMax**      | `REAL`                                    |             | 3.0                                                 | Absolute maximum value of the setpoint temperature offset in day mode (Kelvin)                                                          |
| **rSetpFanLevelMinPara** | `REAL`                                    |             | 0.0                                                 | Setpoint - absolute minimum value - set fan level in day mode (only integer setpoints !!!)                                              |
| **rSetpFanLevelMaxPara** | `REAL`                                    |             | 3.0                                                 | Setpoint - absolute minimum value - set fan level in day mode (only integer setpoints !!!)                                              |
| **wPinCodeAdmin**        | `WORD`                                    |             | 7458                                                | PIN code for the administrator level (0 = no code, 0001 - 9999 valid code)                                                              |
| **wPinCodeEndUser**      | `WORD`                                    |             | 3333                                                | PIN code for the user level (0 = no code, 0001 - 9999 valid code)                                                                       |
| **eColorScheme**         | SPLUSS\_LCD\_COLOR\_SCHEME                |             | SPLUSS\_LCD\_COLOR\_SCHEME.WHITE                    | Number of the color scheme (1 = white, 1-7 = valid numbers)                                                                             |
| **xDispBargrFanLev**     | `BOOL`                                    |             | FALSE                                               | Enable / disable the display of the right bar graph (FALSE = no display)                                                                |
| **xDispBargrHCLev**      | `BOOL`                                    |             | FALSE                                               | Enable / disable the display of the left bar graph (FALSE = no display)                                                                 |
| **ePresenceOutpMode**    | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE |             | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.PULSE     | Operating mode of the output `xButtonPresence` (RAW, PULSE). Please operate only in RAW                                                 |
| **eFanOutpMode**         | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE |             | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.PULSE     | Operating mode of the outputs `xButtonFanUp` or `xButtonFanDwn` (RAW, PULSE)                                                            |
| **eLightOutpMode**       | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE |             | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.PULSE     | Operating mode of the outputs `xButtonLightOn` or `xButtonLightOff` (RAW, PULSE)                                                        |
| **eShadeOutpMode**       | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE |             | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.RAW       | Operating mode of the outputs `xButtonShadeUp` or `xButtonShadeDwn` (RAW, PULSE)                                                        |
| **eDisplAutoDim**        | SPLUSS\_RYMASKON\_2XX\_DISPL\_AUTO\_DIM   |             | SPLUSS\_RYMASKON\_2XX\_DISPL\_AUTO\_DIM.PERCENT\_50 | Definition of the ‘dim display’ functionality after 2 minutes without button press (OFF, 50% brightness, 10% brightness, 0% brightness) |
| **xVisuPresence**        | `BOOL`                                    |             | FALSE                                               | Pressing the presence button in the visualization                                                                                       |
| **xVisuTempUp**          | `BOOL`                                    |             | FALSE                                               | Pressing the button to increase the set temperature in the visualization                                                                |
| **xVisuTempDown**        | `BOOL`                                    |             | FALSE                                               | Pressing the button to decrease the set temperature in the visualization                                                                |
| **xVisuFanUp**           | `BOOL`                                    |             | FALSE                                               | Pressing the button to increase the fan stage in the visualization                                                                      |
| **xVisuFanDown**         | `BOOL`                                    |             | FALSE                                               | Pressing the button to decrease the fan stage in the visualization                                                                      |
| **xVisuLightOn**         | `BOOL`                                    |             | FALSE                                               | Pressing the button to activate the lighting in the visualization                                                                       |
| **xVisuLightOff**        | `BOOL`                                    |             | FALSE                                               | Pressing the button to deactivate the lighting in the visualization                                                                     |
| **xVisuShadeUp**         | `BOOL`                                    |             | FALSE                                               | Pressing the button to open the shading in the visualization                                                                            |
| **xVisuShadeDown**       | `BOOL`                                    |             | FALSE                                               | Pressing the button to close the shading in the visualization                                                                           |

### Function description

#### General

This function block controls room operating devices of the Rymaskon 2XX device series from S+S Regeltechnik via Modbus communication. Alternatively, room operating devices from Loytec can also be used. The detection of the different types (21x - 26x) of room operating devices is automatic. After detection, the room operating devices are automatically configured as appropriate depending on the type. For different outputs (xButtonXXX), two operating modes are also provided (RAW, PULSE) (valid only when operated via the room operating device). The output `xButtonPresence` may only be operated in PULSE mode.

#### Detection of the product code (of the device type)

The Modbus address of the room control unit for communication with this function block is set at input `byUnitId` in the range 0 - 255. Immediately after the controller is switched on, at intervals `tPCTimeShort` (default: 5s) a request telegram is sent to the room control unit each time to return the product code and serial number. After receiving a response telegram, the product code is checked and evaluated. A valid product code is output at the output `sProductCode` . In addition, the serial number of the room control unit is output at the output `sSerialNum` . The configuration of the room control unit is triggered if the serial number has changed (directly after the CPU is switched on or after the room control unit has been replaced). After detection of a valid product code, the interval for sending a request telegram to return the product code and serial number is increased to `tPCTimeLong` (default: 60s). If ten consecutive response telegrams with an incorrect product code or no response telegrams at all are received within this interval, the detection cycle is executed again at interval `tPCTimeShort` .

#### Operating modes (NIGHT / DAY)

Two operating modes are distinguished: night mode and day mode. The mode is determined by the state of input `xDsplSymbRPresen` (Input = FALSE = night mode, input = TRUE = day mode).

Night operation - room setpoint temperature

When switching from day operation to night operation, the state at input `rSetpTempNight` transmitted to the RBG and displayed there. In addition, the absolute limits (MIN / MAX) for the room setpoint temperature are also defined with the state at input `rSetpTempNight` so that no adjustment of the room setpoint temperature is possible on the RBG. Any change in the state at input `rSetpTempNight` is transmitted to the RBG during night mode.

Night mode - setpoint - fan speed

When switching from day operation to night operation, the state at input `rSetpFanLevelNight` transmitted to the RBG and displayed there. In addition, the absolute limits (MIN / MAX) for the setpoint fan speed are also defined with the state at input `rSetpFanLevelNight` so that no adjustment of the setpoint fan speed is possible on the RBG. Any change in the state at input `rSetpFanLevelNight` is transmitted to the RBG during night mode.

Day operation - room setpoint temperature

Case 1 - There is not yet a valid room setpoint temperature in day operation

When switching from night operation to day operation, the state at input `rSetpTempBaseDay` transmitted to the RBG and displayed there. In addition, the absolute limits (MIN / MAX) for the room setpoint temperature are calculated (MIN = `rSetpTempBaseDay` + `rSetpTempOffMin`, MAX = `rSetpTempBaseDay` + `rSetpTempOffMax`) and also transmitted to the RBG, so that adjustment of the room setpoint temperature within the range MIN - MAX is possible on the RBG. Any change in the states at input `rSetpTempBaseDay`, the parameter `rSetpTempOffMin` and `rSetpTempOffMax` is transmitted to the RBG during day mode.

Case 2 - A valid room setpoint temperature in day operation already exists

When switching from night mode to day mode, the previous valid room setpoint temperature is transmitted to the RBG and displayed there. In addition, the absolute limits (MIN / MAX) for the room setpoint temperature are calculated (MIN = `rSetpTempBaseDay` + `rSetpTempOffMin`, MAX = `rSetpTempBaseDay` + `rSetpTempOffMax`) and also transmitted to the RBG, so that adjustment of the room setpoint temperature within the range MIN - MAX is possible on the RBG. Any change in the states at input `rSetpTempBaseDay`, the parameter `rSetpTempOffMin` and `rSetpTempOffMax` is transmitted to the RBG during day mode.

In both cases, the room setpoint temperature in day mode can be increased or decreased within the absolute limits in increments of 0.5 K (fixed) (buttons TB0 or TB4 and additionally parameter `xVisuTempUp` and `xVisuTempDown`).

Day mode - setpoint fan speed

Case 1 - There is not yet a valid set fan speed in day mode

When switching from night operation to day operation, the state at input `rSetpFanLevelBaseDay` transmitted to the RBG and displayed there. In addition, the absolute limits (MIN / MAX) for the set fan speed are calculated (MIN = `rSetpFanLevelMinPara`, MAX = `rSetpFanLevelMaxPara`) and also transmitted to the RBG, so that adjustment of the set fan speed within the range MIN - MAX is possible on the RBG. Any change in the states at input `rSetpFanLevelBaseDay`, the parameter `rSetpFanLevelMinPara` and `rSetpFanLevelMaxPara` is transmitted to the RBG during day mode.

Case 2 - There is already a valid set fan speed in day mode

When switching from night mode to day mode, the previous valid set fan speed is transmitted to the RBG and displayed there. In addition, the absolute limits (MIN / MAX) for the room setpoint temperature are calculated (MIN = `rSetpFanLevelMinPara`, MAX = `rSetpFanLevelMaxPara`) and also transmitted to the RBG, so that adjustment of the room setpoint temperature within the range MIN - MAX is possible on the RBG. Any change in the states at input `rSetpFanLevelBaseDay`, the parameter `rSetpFanLevelMinPara` and `rSetpFanLevelMaxPara` is transmitted to the RBG during day mode.

In both cases, the set fan speed in day mode can be increased or decreased within the absolute limits in increments of 1.0 (fixed) (buttons TB1 or TB5 and additionally parameter `xVisuFanUp` and `xVisuFanDown`).

Outputs

At output `rSetpTemp` the current room setpoint temperature is always displayed, regardless of the operating mode. At output `rSetpTempOff` the current deviation from the base room setpoint temperature is always displayed, regardless of the operating mode. At output `rSetpTempMin` the current absolute minimum value of the room setpoint temperature is always displayed, regardless of the operating mode. At output `rSetpTempMax` the current absolute maximum value of the room setpoint temperature is always displayed, regardless of the operating mode.

At output `rSetpFanLevel` the current set fan speed is always displayed, regardless of the operating mode. At output `rSetpFanLevelMin` the current absolute minimum value of the set fan speed is always displayed, regardless of the operating mode. At output `rSetpFanLevelMax` the current absolute maximum value of the set fan speed is always displayed, regardless of the operating mode.

Outputs `xButtonTempUp` and `xButtonTempDown`

The outputs are influenced by operating the TBO or TB4 buttons on the RBG and additionally by the inputs for the visualization (`xVisuTempUp` and `xVisuTempDown`) (OR linkage). Each brief press of button TB0 (increase temperature) and TB4 (decrease temperature) triggers a pulse of duration `xButtonTempUp` and `xButtonTempDown` at the associated outputs `tTimeButtonPulse` (default: 1s).

#### Outputs `xButtonXXX` (not for `xButtonTempUp` and `xButtonTempDown`)

The outputs `xButtonXXX` (xButtonPresence, xButtonFanUp, xButtonFanDown, xButtonLightOn, xButtonLightOff, xButtonShadeUp and xButtonShadeDown) are triggered by operating the corresponding buttons on the RBG and additionally by the inputs for visualization (`xVisuXXX`) (OR linkage).

They can be operated on the RBG in two different operating modes (selection via parameters `ePresenceOutpMode`, `eFanOutpMode`, `eLightOutpMode` and `eShadeOutpMode`). The operating mode is always selected jointly for both outputs of a function.

Operating modes

RAW

The outputs immediately adopt the states of their assigned buttons (button pressed >>> output = TRUE). The arrangement of the buttons may differ depending on the type of room control unit. If the buttons for the desired function are not present on the room control unit, the assigned outputs remain inactive (= FALSE).

PULSE

Each brief press of the button triggers a pulse of duration at the associated output `tTimeButtonPulse` (default: 1s).

#### Display of fan stage

The display of the fan stage (selection via input `rSetpDispFanLev` in the range 0.0 - 7.0) is shown by the right bar graph on the display of the room control unit, if the display is generally enabled (parameter `xDispBargrFanLev` = TRUE).

| *rSetpDispFanLev* | Display             | Notes |
| ----------------- | ------------------- | ----- |
| 0                 | Stage 0 - Manual    |       |
| 1                 | Stage 1 - Manual    |       |
| 2                 | Stage 2 - Manual    |       |
| 3                 | Stage 3 - Manual    |       |
| 4                 | Stage 0 - Automatic |       |
| 5                 | Stage 1 - Automatic |       |
| 6                 | Stage 2 - Automatic |       |
| 7                 | Stage 3 - Automatic |       |

#### Display of heating/cooling output

The display of the heating/cooling output (selection via input `rSetpDispHCLev` in the range 0.0 - 7.0) is shown by the left bar graph on the display of the room control unit, if the display is generally enabled (parameter `xDispBargrHCLev` = TRUE).

| *rSetpDispHCLev* | Display             | Notes |
| ---------------- | ------------------- | ----- |
| 0                | Stage 0 - Manual    |       |
| 1                | Stage 1 - Manual    |       |
| 2                | Stage 2 - Manual    |       |
| 3                | Stage 3 - Manual    |       |
| 4                | Stage 0 - Automatic |       |
| 5                | Stage 1 - Automatic |       |
| 6                | Stage 2 - Automatic |       |
| 7                | Stage 3 - Automatic |       |

#### Display of symbols

The display of the desired symbols on the room control unit display is triggered by the TRUE state at the associated input. (Example: xDsplSymbHeat = TRUE causes the static display of the symbol `Heating` in the display). Inputs with the name suffix ‘-Al-’ cause a slowly blinking display of the associated symbol. (Example: xDsplSymbAlStorm = TRUE causes the slowly blinking display of the symbol `windsock` in the display).

#### Resetting the room control unit

The room control unit is reset on every rising edge at input `xResetDevice` .

#### Reset the room operating device to factory settings

Press buttons TB0, TB3 and TB4 simultaneously. Enter PIN: 7458 In the last menu item you will find the start for the reset to factory settings (follow the sequence)

#### Configuration of the display behavior

After a period of approx. 1 minute without button operation, the display returns to the first display value (= room temperature) (fixed). After a period of approx. 2 minutes without button operation, the brightness of the display changes according to the current setting of parameter **eDisplAutoDim**.

#### Control of the piezo buzzer in the room control unit

The static TRUE state at input `xBuzzer_Alarm` triggers an intermittent alarm tone at a frequency of 800 Hz in the room control unit.

#### Display of faults

Faults are displayed at the collective output `xAlarm` (= TRUE). It includes communication faults (time delay: gc\_Parameters.gc\_tOnDelayxAlarmCom, default = 60s) and device faults (direct). At output `eErrorCodeCom` an explanatory text for the cause is available in the event of a communication error. It always shows the cause of the last communication error there. At output `eErrorCodeDev` an explanatory text for the cause is available in the event of a device error.

#### Output `xConfig`

The output signals the configuration of the device (= TRUE) after it has been detected (see detection of the product code)

#### Output `wDeviceMode`

The numerical value at this output identifies the current display of the room control unit (menu level, display content, password level, etc.). It corresponds to the content of Modbus register 101, see the device documentation.

#### Update of the outputs for button presses (9 outputs)

The state of output `xButtonXXX` is formed from the OR linkage of the state based on operation on the room control unit (`_xButtonXXX`) and based on operation in the visualization (`xVisuXXX`).

### Codesys

InOut:

| Scope       | Name                    | Type                                      | Initial                                             | Comment                                                                                                                                                             |
| ----------- | ----------------------- | ----------------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Input       | `xEn`                   | `BOOL`                                    | TRUE                                                | Enable / disable communication (TRUE = enable)                                                                                                                      |
| Input       | `byUnitId`              | `BYTE`                                    | 0                                                   | Device address (0 .. 255)                                                                                                                                           |
| Input       | `xUpdateActual`         | `BOOL`                                    | FALSE                                               | <p>Update of actual values (on every rising edge<br>)</p>                                                                                                           |
| Input       | `xUpdateStates`         | `BOOL`                                    | FALSE                                               | Update of the states (on each rising edge)                                                                                                                          |
| Input       | `xUpdateSetp`           | `BOOL`                                    | FALSE                                               | <p>Update of setpoints (on every rising edge<br>)</p>                                                                                                               |
| Input       | `xUpdateConfig`         | `BOOL`                                    | FALSE                                               | Update of the configuration (on each rising edge)                                                                                                                   |
| Input       | `rSetpTempNight`        | `REAL`                                    | 18.0                                                | Setpoint temperature - night mode (degrees Celsius)                                                                                                                 |
| Input       | `rSetpTempBaseDay`      | `REAL`                                    | 22.0                                                | Base setpoint temperature - day mode (degrees Celsius)                                                                                                              |
| Input       | `rSetpFanLevelNight`    | `REAL`                                    | 1.0                                                 | Set fan speed - night mode (integer setpoints only!!!)                                                                                                              |
| Input       | `rSetpFanLevelBaseDay`  | `REAL`                                    | 2.0                                                 | Base - set fan speed - day mode (integer setpoints only!!!)                                                                                                         |
| Input       | `rSetpDispFanLev`       | `REAL`                                    | 0.0                                                 | Setpoint for the display of the fan stage (bar graph - right)                                                                                                       |
| Input       | `rSetpDispHCLev`        | `REAL`                                    | 0.0                                                 | Setpoint for the display of heating/cooling output (bar graph - left)                                                                                               |
| Input       | `xDsplSymbPresen`       | `BOOL`                                    | FALSE                                               | Display of the symbols for presence (= TRUE) or absence (= FALSE) (FALSE = night mode, TRUE = day mode)                                                             |
| Input       | `xDsplSymbHeat`         | `BOOL`                                    | FALSE                                               | Display of the symbol for heating operation (TRUE = display)                                                                                                        |
| Input       | `xDsplSymbCool`         | `BOOL`                                    | FALSE                                               | Display of the symbol for cooling operation (TRUE = display)                                                                                                        |
| Input       | `xDsplSymbFan`          | `BOOL`                                    | FALSE                                               | Display of the symbol for the fan (TRUE = display)                                                                                                                  |
| Input       | `xDsplSymbAlWindo`      | `BOOL`                                    | FALSE                                               | Display of the window alarm symbol (TRUE = display)                                                                                                                 |
| Input       | `xDsplSymbAlRainf`      | `BOOL`                                    | FALSE                                               | Display of the rain alarm symbol (TRUE = display)                                                                                                                   |
| Input       | `xDsplSymbAlStorm`      | `BOOL`                                    | FALSE                                               | Display of the wind alarm symbol (TRUE = display)                                                                                                                   |
| Input       | `xDsplSymbAlAlarm`      | `BOOL`                                    | FALSE                                               | Display of the alarm symbol (TRUE = display)                                                                                                                        |
| Input       | `xDsplSymbNotDrop`      | `BOOL`                                    | FALSE                                               | Display of the crossed-out drop symbol (TRUE = display)                                                                                                             |
| Input       | `xDsplSymbClock`        | `BOOL`                                    | FALSE                                               | Display of the clock symbol (TRUE = display)                                                                                                                        |
| Input       | `xBuzzer_Alarm`         | `BOOL`                                    | FALSE                                               | Enable / disable the alarm tone (buzzer) (TRUE = enable)                                                                                                            |
| Input       | `xResetDevice`          | `BOOL`                                    | FALSE                                               | Reset of the device (on every rising edge)                                                                                                                          |
| Inout       | `ModbusClient`          | `ModbusClientBase`                        |                                                     | Client of the device                                                                                                                                                |
| Output      | `rSetpTemp`             | `REAL`                                    |                                                     | Set temperature (degrees Celsius) (corresponds to the room setpoint temperature displayed on the RBG) (= register 384)                                              |
| Output      | `rSetpTempOff`          | `REAL`                                    |                                                     | Set temperature offset (Kelvin) (calculation: rSetpTempOff = rSetpTemp - rSetpTempBase)                                                                             |
| Output      | `rSetpTempMin`          | `REAL`                                    |                                                     | <p>Absolute minimum value - set temperature (degrees Celsius) (<br>calculation, depending on night/day operating mode)</p>                                          |
| Output      | `rSetpTempMax`          | `REAL`                                    |                                                     | <p>Absolute maximum value - set temperature (degrees Celsius) (<br>calculation, depending on night/day operating mode)</p>                                          |
| Output      | `rSetpFanLevel`         | `REAL`                                    |                                                     | Set fan speed (corresponds to the set fan speed displayed on the RBG) (= register 385)                                                                              |
| Output      | `rSetpFanLevelMin`      | `REAL`                                    |                                                     | Absolute minimum value - set fan speed (calculation, depending on night / day operating mode)                                                                       |
| Output      | `rSetpFanLevelMax`      | `REAL`                                    |                                                     | Absolute maximum value - set fan speed (calculation, depending on night / day operating mode)                                                                       |
| Output      | `rRoomTemp`             | `REAL`                                    |                                                     | Room temperature in XXX.X degrees Celsius                                                                                                                           |
| Output      | `rExtTemp`              | `REAL`                                    |                                                     | External temperature in XXX.X degrees Celsius                                                                                                                       |
| Output      | `rRelHumidity`          | `REAL`                                    |                                                     | Relative room humidity in XXX.X %                                                                                                                                   |
| Output      | `rDewPointTemp`         | `REAL`                                    |                                                     | Dew point temperature in XXX.X degrees Celsius (the offsets of temperature and relative humidity are not taken into account)                                        |
| Output      | `xSensorOffsetInDevice` | `BOOL`                                    |                                                     | <p>Indication of whether the sensors must be calibrated in the device<br>(TRUE = calibration in the device required, FALSE = calibration in the<br>FB required)</p> |
| Output      | `rSupplyVolt`           | `REAL`                                    |                                                     | Supply voltage in XXX.X Volts                                                                                                                                       |
| Output      | `rCpuTemp`              | `REAL`                                    |                                                     | CPU temperature in XXX.X degrees Celsius                                                                                                                            |
| Output      | `rCpuVolt`              | `REAL`                                    |                                                     | CPU voltage in XXX.X Volts                                                                                                                                          |
| Output      | `sSerialNum`            | `STRING`                                  |                                                     | Serial number of the device                                                                                                                                         |
| Output      | `sProductCode`          | `STRING`                                  |                                                     | Product code of the device (e.g. `21X`)                                                                                                                             |
| Output      | `wDeviceMode`           | `WORD`                                    |                                                     | Operating mode of the device (= register 101)                                                                                                                       |
| Output      | `xConfig`               | `BOOL`                                    | FALSE                                               | State of the device configuration \[ TRUE = configuration active ]                                                                                                  |
| Output      | `xButtonPresence`       | `BOOL`                                    | FALSE                                               | <p>Pressing the presence button (RAW, pulse with duration<br><code>tTimeButtonPulse</code>) (RBG and/or VISU)</p>                                                   |
| Output      | `xButtonTempUp`         | `BOOL`                                    | FALSE                                               | Pressing the button to increase the set temperature (pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)                                                      |
| Output      | `xButtonTempDown`       | `BOOL`                                    | FALSE                                               | Pressing the button to decrease the set temperature (pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)                                                      |
| Output      | `xButtonFanUp`          | `BOOL`                                    | FALSE                                               | Pressing the button to increase the fan stage (RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)                                                       |
| Output      | `xButtonFanDown`        | `BOOL`                                    | FALSE                                               | Pressing the button to decrease the fan stage (RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)                                                       |
| Output      | `xButtonLightOn`        | `BOOL`                                    | FALSE                                               | Pressing the button to activate the lighting (RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)                                                        |
| Output      | `xButtonLightOff`       | `BOOL`                                    | FALSE                                               | Pressing the button to deactivate the lighting (RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)                                                      |
| Output      | `xButtonShadeUp`        | `BOOL`                                    | FALSE                                               | Pressing the button to open the shading (RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)                                                             |
| Output      | `xButtonShadeDown`      | `BOOL`                                    | FALSE                                               | Pressing the button to close the shading (RAW, pulse with duration `tTimeButtonPulse`) (RBG and/or VISU)                                                            |
| Output      | `xStateExtBut0`         | `BOOL`                                    |                                                     | State of external input 0                                                                                                                                           |
| Output      | `xStateExtBut1`         | `BOOL`                                    |                                                     | State of external input 1                                                                                                                                           |
| Output      | `xStateExtBut2`         | `BOOL`                                    |                                                     | State of external input 2                                                                                                                                           |
| Output      | `xStateExtBut3`         | `BOOL`                                    |                                                     | State of external input 3                                                                                                                                           |
| 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      | `eErrorCodeDev`         | SPLUSS\_ERROR\_CODE\_TYPE\_2              |                                                     | Error code - device (0 = no error)                                                                                                                                  |
| Output      | `xBusy`                 | `BOOL`                                    |                                                     | Communication indicator (TRUE = communication)                                                                                                                      |
| Input Const | `rRelHumidityOffset`    | `REAL`                                    | 0.0                                                 | Constant measured-value offset for the transmitted relative humidity actual value (internal relative humidity)                                                      |
| Input Const | `rExtTempOffset`        | `REAL`                                    | 0.0                                                 | Constant measured-value offset for the transmitted temperature actual value (external temperature)                                                                  |
| Input Const | `rRoomTempOffset`       | `REAL`                                    | 0.0                                                 | Constant measured-value offset for the transmitted temperature actual value (internal temperature)                                                                  |
| Input Const | `xVisuShadeDown`        | `BOOL`                                    | FALSE                                               | Pressing the button to close the shading in the visualization                                                                                                       |
| Input Const | `xVisuShadeUp`          | `BOOL`                                    | FALSE                                               | Pressing the button to open the shading in the visualization                                                                                                        |
| Input Const | `xVisuLightOff`         | `BOOL`                                    | FALSE                                               | Pressing the button to deactivate the lighting in the visualization                                                                                                 |
| Input Const | `xVisuLightOn`          | `BOOL`                                    | FALSE                                               | Pressing the button to activate the lighting in the visualization                                                                                                   |
| Input Const | `xVisuFanDown`          | `BOOL`                                    | FALSE                                               | Pressing the button to decrease the fan stage in the visualization                                                                                                  |
| Input Const | `xVisuFanUp`            | `BOOL`                                    | FALSE                                               | Pressing the button to increase the fan stage in the visualization                                                                                                  |
| Input Const | `xVisuTempDown`         | `BOOL`                                    | FALSE                                               | Pressing the button to decrease the set temperature in the visualization                                                                                            |
| Input Const | `xVisuTempUp`           | `BOOL`                                    | FALSE                                               | Pressing the button to increase the set temperature in the visualization                                                                                            |
| Input Const | `xVisuPresence`         | `BOOL`                                    | FALSE                                               | Pressing the presence button in the visualization                                                                                                                   |
| Input Const | `eDisplAutoDim`         | SPLUSS\_RYMASKON\_2XX\_DISPL\_AUTO\_DIM   | SPLUSS\_RYMASKON\_2XX\_DISPL\_AUTO\_DIM.PERCENT\_10 | Definition of the ‘dim display’ functionality after approx. 2 minutes without button press (OFF, 50% brightness, 10% brightness, 0% brightness)                     |
| Input Const | `eShadeOutpMode`        | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.RAW       | <p>Operating mode of the outputs <code>xButtonShadeUp</code> or<br><code>xButtonShadeDwn</code> (RAW, PULSE)</p>                                                    |
| Input Const | `eLightOutpMode`        | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.PULSE     | <p>Operating mode of the outputs <code>xButtonLightOn</code> or<br><code>xButtonLightOff</code> (RAW, PULSE)</p>                                                    |
| Input Const | `eFanOutpMode`          | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.PULSE     | <p>Operating mode of the outputs <code>xButtonFanUp</code> or <code>xButtonFanDwn</code><br>(RAW, PULSE)</p>                                                        |
| Input Const | `ePresenceOutpMode`     | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.PULSE     | Operating mode of the output `xButtonPresence` (RAW, PULSE)                                                                                                         |
| Input Const | `xDispBargrHCLev`       | `BOOL`                                    | FALSE                                               | Enable / disable the display of the left bar graph (FALSE = no display)                                                                                             |
| Input Const | `xDispBargrFanLev`      | `BOOL`                                    | FALSE                                               | Enable / disable the display of the right bar graph (FALSE = no display)                                                                                            |
| Input Const | `eColorScheme`          | SPLUSS\_LCD\_COLOR\_SCHEME                | SPLUSS\_LCD\_COLOR\_SCHEME.WHITE                    | Number of the color scheme (1 = white, 1-7 = valid numbers)                                                                                                         |
| Input Const | `wPinCodeEndUser`       | `WORD`                                    | 3333                                                | PIN code for the user level (0 = no code, 0001 - 9999 valid code)                                                                                                   |
| Input Const | `wPinCodeAdmin`         | `WORD`                                    | 7458                                                | PIN code for the administrator level (0 = no code, 0001 - 9999 valid code)                                                                                          |
| Input Const | `rSetpFanLevelMaxPara`  | `REAL`                                    | 3.0                                                 | Setpoint - absolute maximum value - set fan speed in day mode (integer setpoints only!!!)                                                                           |
| Input Const | `rSetpFanLevelMinPara`  | `REAL`                                    | 0.0                                                 | Setpoint - absolute minimum value - set fan speed in day mode (integer setpoints only!!!)                                                                           |
| Input Const | `rSetpTempOffMax`       | `REAL`                                    | 3.0                                                 | <p>Absolute maximum value of the offset of the set temperature in<br>day mode (Kelvin)</p>                                                                          |
| Input Const | `rSetpTempOffMin`       | `REAL`                                    | -3.0                                                | <p>Absolute minimum value of the offset of the set temperature in<br>day mode (Kelvin)</p>                                                                          |
| Input Const | `tTimeButtonPulse`      | `TIME`                                    | TIME#1s0ms                                          | Duration of the pulse at the output if the assigned button was pressed briefly                                                                                      |
| Input Const | `tPCTimeShort`          | `TIME`                                    | TIME#5s0ms                                          | Interval time of the scan process for determining the product code (short duration, device not yet detected)                                                        |
| Input Const | `tPCTimeLong`           | `TIME`                                    | TIME#1m0s0ms                                        | Interval time of the scan process for determining the product code (long duration, device detected)                                                                 |
| Input Const | `tTimeUpdateConfig`     | `TIME`                                    | TIME#0ms                                            | <p>Update interval for the processes influenced by the input<br><code>xUpdateConfig</code> influenced</p>                                                           |
| Input Const | `tTimeUpdateSetp`       | `TIME`                                    | TIME#45s0ms                                         | <p>Update interval for the processes influenced by the input<br><code>xUpdateSetp</code> influenced</p>                                                             |
| Input Const | `tTimeUpdateStates`     | `TIME`                                    | TIME#500ms                                          | <p>Update interval for the processes influenced by the input<br><code>xUpdateStates</code> influenced</p>                                                           |
| Input Const | `tTimeUpdateActual`     | `TIME`                                    | TIME#3s0ms                                          | <p>Update interval for the processes influenced by the input<br><code>xUpdateActual</code> influenced</p>                                                           |


---

# 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/en/hvac-modbus-library/functionblocks/spluss/spluss_rymaskon_2xx_mod_v2.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.
