# 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 by S+S Regeltechnik\
> \
> Typical application: room control unit in one zone\\

### Interfaces

#### Inputs

| Name                   | Data type | Value range | Initial value | Function                                                              |
| ---------------------- | --------- | ----------- | ------------- | --------------------------------------------------------------------- |
| *xEn*                  | BOOL      |             | TRUE          | Enable / disable communication ( TRUE = enabled )                     |
| *byUnitId*             | BYTE      |             | 0             | Address of the device ( 0 .. 255 )                                    |
| *xUpdateActual*        | BOOL      |             | FALSE         | Update of actual values ( on each rising edge )                       |
| *xUpdateStates*        | BOOL      |             | FALSE         | Update of states ( on each rising edge )                              |
| *xUpdateSetp*          | BOOL      |             | FALSE         | Update of setpoints ( on each rising edge )                           |
| *xUpdateConfig*        | BOOL      |             | FALSE         | Update of configuration ( on each 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 level in night mode                                           |
| *rSetpFanLevelBaseDay* | REAL      |             | 2.0           | Base - set fan level in day mode (degrees Celsius)                    |
| *rSetpDispFanLev*      | REAL      |             | 0.0           | Setpoint for the display of the fan level ( bargraph - right )        |
| *rSetpDispHCLev*       | REAL      |             | 0.0           | Setpoint for the display of heating/cooling power ( bargraph - 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 = show )           |
| *xDsplSymbCool*        | BOOL      |             | FALSE         | Display of the symbol for cooling operation ( TRUE = show )           |
| *xDsplSymbFan*         | BOOL      |             | FALSE         | Display of the symbol for the fan ( TRUE = show )                     |
| *xDsplSymbAlWindo*     | BOOL      |             | FALSE         | Display of the symbol for the window alarm ( TRUE = show )            |
| *xDsplSymbAlRainf*     | BOOL      |             | FALSE         | Display of the symbol for the rain alarm ( TRUE = show )              |
| *xDsplSymbAlStorm*     | BOOL      |             | FALSE         | Display of the symbol for the wind alarm ( TRUE = show )              |
| *xDsplSymbAlAlarm*     | BOOL      |             | FALSE         | Display of the symbol for the alarm ( TRUE = show )                   |
| *xDsplSymbNotDrop*     | BOOL      |             | FALSE         | Display of the symbol for the crossed-out drop ( TRUE = show )        |
| *xDsplSymbClock*       | BOOL      |             | FALSE         | Display of the symbol for the clock ( TRUE = show )                   |
| *xBuzzer\_Alarm*       | BOOL      |             | FALSE         | Enable / disable of the alarm tone ( buzzer ) ( TRUE = enable )       |
| *xResetDevice*         | BOOL      |             | FALSE         | Reset of the device ( on each rising edge )                           |

#### Outputs

| Name               | Data type                    | Value range | Initial value | Function                                                                                                                        |
| ------------------ | ---------------------------- | ----------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| *rSetpTemp*        | REAL                         |             |               | Setpoint temperature (degrees Celsius) (corresponds to the room setpoint temperature displayed 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 night/day operating mode)             |
| *rSetpTempMax*     | REAL                         |             |               | Absolute maximum value - setpoint temperature (degrees Celsius) (calculation depending on night/day operating mode)             |
| *rSetpFanLevel*    | REAL                         |             |               | Setpoint fan level (corresponds to the fan level displayed on the RBG) (= Register 385)                                         |
| *rSetpFanLevelMin* | REAL                         |             |               | Absolute minimum value - setpoint fan level (calculation depending on night/day operating mode)                                 |
| *rSetpFanLevelMax* | REAL                         |             |               | Absolute maximum value - setpoint fan level (calculation depending on night/day operating mode)                                 |
| *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 rel. humidity are not considered )              |
| *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                       |             |               | Device serial number                                                                                                            |
| *sProductCode*     | STRING                       |             |               | Product code of the device ( e.g. '21X' )                                                                                       |
| *xConfig*          | BOOL                         |             |               | State of the device configuration \[ TRUE = configuration active ]                                                              |
| *xButtonPresence*  | BOOL                         |             |               | Actuation of the presence button ( RBG (= room control unit): RAW, pulse with duration 'tTimeButtonPulse' ) ( RBG and/or VISU ) |
| *xButtonTempUp*    | BOOL                         |             |               | Actuation of the button to increase the set temperature ( RBG: pulse with duration 'tTimeButtonPulse' ) ( RBG and/or VISU )     |
| *xButtonTempDown*  | BOOL                         |             |               | Actuation of the button to lower the set temperature ( RBG: pulse with duration 'tTimeButtonPulse' ) ( RBG and/or VISU )        |
| *xButtonFanUp*     | BOOL                         |             |               | Actuation of the button to increase the fan level ( RBG: RAW, pulse with duration 'tTimeButtonPulse' ) ( RBG and/or VISU )      |
| *xButtonFanDown*   | BOOL                         |             |               | Actuation of the button to decrease the fan level ( RBG: RAW, pulse with duration 'tTimeButtonPulse' ) ( RBG and/or VISU )      |
| *xButtonLightOn*   | BOOL                         |             |               | Actuation of the button to activate the lighting ( RBG: RAW, pulse with duration 'tTimeButtonPulse' ) ( RBG and/or VISU )       |
| *xButtonLightOff*  | BOOL                         |             |               | Actuation of the button to deactivate the lighting ( RBG: RAW, pulse with duration 'tTimeButtonPulse' ) ( RBG and/or VISU )     |
| *xButtonShadeUp*   | BOOL                         |             |               | Actuation of the button to open the shading ( RBG: RAW, pulse with duration 'tTimeButtonPulse' ) ( RBG and/or VISU )            |
| *xButtonShadeDown* | BOOL                         |             |               | Actuation of 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                         |             |               | General fault ( TRUE = fault )                                                                                                  |
| *xAlarmCom*        | BOOL                         |             |               | General 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 operations influenced by the input 'xUpdateActual' ( 0 = no automatic update, > 0 cyclical update )                     |
| **tTimeUpdateStates**    | TIME                                      |             | T#500ms                                             | Update interval for operations influenced by the input 'xUpdateStates' ( 0 = no automatic update, > 0 cyclical update )                     |
| **tTimeUpdateSetp**      | TIME                                      |             | T#0s                                                | Update interval for operations influenced by the input 'xUpdateSetp' ( 0 = no automatic update, > 0 cyclical update )                       |
| **tTimeUpdateConfig**    | TIME                                      |             | T#0s                                                | Update interval for operations influenced by the input 'xUpdateConfig' ( 0 = no automatic update, > 0 cyclical update )                     |
| **tPCTimeLong**          | TIME                                      |             | T#60s                                               | Interval duration of the scan process to determine the product code ( long duration, device recognized )                                    |
| **tPCTimeShort**         | TIME                                      |             | T#5s                                                | Interval duration of the scan process to determine the product code ( short duration, device not yet recognized )                           |
| **tTimeButtonPulse**     | TIME                                      |             | T#1s                                                | Duration of the pulse at the output if the assigned button was pressed briefly                                                              |
| **rSetpTempOffMin**      | REAL                                      |             | -3.0                                                | Absolute minimum of the setpoint temperature offset in day operation (Kelvin)                                                               |
| **rSetpTempOffMax**      | REAL                                      |             | 3.0                                                 | Absolute maximum of the setpoint temperature offset in day operation (Kelvin)                                                               |
| **rSetpFanLevelMinPara** | REAL                                      |             | 0.0                                                 | Setpoint - absolute minimum - setpoint fan level in day operation (integer setpoints only!!!)                                               |
| **rSetpFanLevelMaxPara** | REAL                                      |             | 3.0                                                 | Setpoint - absolute minimum - setpoint fan level in day operation (integer setpoints only!!!)                                               |
| **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 display of the right bargraph ( FALSE = no display )                                                                       |
| **xDispBargrHCLev**      | BOOL                                      |             | FALSE                                               | Enable / disable display of the left bargraph ( 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' and 'xButtonFanDwn' ( RAW, PULSE )                                                             |
| **eLightOutpMode**       | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE |             | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.PULSE     | Operating mode of the outputs 'xButtonLightOn' and 'xButtonLightOff' ( RAW, PULSE )                                                         |
| **eShadeOutpMode**       | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE |             | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.RAW       | Operating mode of the outputs 'xButtonShadeUp' and '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 operation (OFF, 50% brightness, 10% brightness, 0% brightness) |
| **xVisuPresence**        | BOOL                                      |             | FALSE                                               | Actuation of the presence button in the visualization                                                                                       |
| **xVisuTempUp**          | BOOL                                      |             | FALSE                                               | Actuation of the button to increase the set temperature in the visualization                                                                |
| **xVisuTempDown**        | BOOL                                      |             | FALSE                                               | Actuation of the button to lower the set temperature in the visualization                                                                   |
| **xVisuFanUp**           | BOOL                                      |             | FALSE                                               | Actuation of the button to increase the fan level in the visualization                                                                      |
| **xVisuFanDown**         | BOOL                                      |             | FALSE                                               | Actuation of the button to decrease the fan level in the visualization                                                                      |
| **xVisuLightOn**         | BOOL                                      |             | FALSE                                               | Actuation of the button to activate the lighting in the visualization                                                                       |
| **xVisuLightOff**        | BOOL                                      |             | FALSE                                               | Actuation of the button to deactivate the lighting in the visualization                                                                     |
| **xVisuShadeUp**         | BOOL                                      |             | FALSE                                               | Actuation of the button to open the shading in the visualization                                                                            |
| **xVisuShadeDown**       | BOOL                                      |             | FALSE                                               | Actuation of the button to close the shading in the visualization                                                                           |

### Function description

#### General

This function block controls room control units of the Rymaskon 2XX device series by S+S Regeltechnik via Modbus communication.\
Alternatively, room control units from Loytec can also be used.\
Detection of the different types (21x - 26x) of the room control units is done automatically.\
After detection, the room control units are automatically configured sensibly according to their type.\
For various outputs (xButtonXXX) two operating modes are also provided (RAW, PULSE) (valid only when operated via the room control unit).\
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 the input 'byUnitId' in the range 0 - 255.\
Immediately after switching on the controller, a request telegram for feedback of the product code and the serial number is sent to the room control unit at the interval 'tPCTimeShort' ( default: 5s ).\
After receiving a response telegram, the product code is checked and evaluated. A valid product code is output at the output 'sProductCode'.\
Furthermore, 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 switching on the CPU or after replacing the room control unit ).\
After detection of a valid product code, the interval for sending a request telegram for feedback of the product code and the serial number is increased to 'tPCTimeLong' ( default: 60s ). If ten consecutive response telegrams with an invalid product code or no response telegram at all are received within this interval,\
the detection cycle is executed again at the interval 'tPCTimeShort'.\
\\

#### Operating modes (NIGHT / DAY)

Two operating modes are distinguished: night and day operation. The selection is done via the state of the input ‘xDsplSymbRPresen’\
(input = FALSE = night mode, input = TRUE = day mode).\
\
Night mode - room setpoint temperature\
\
When switching from day mode to night mode, the state at the input ‘rSetpTempNight’ is transmitted to the RCU and displayed there. In addition,\
the absolute limits (MIN / MAX) for the room setpoint temperature are also set to the state at the input ‘rSetpTempNight’, so that no\
adjustment of the room setpoint temperature is possible on the RCU. Any change of the state at the input ‘rSetpTempNight’ is transmitted to the RCU during night mode.\
\
\
Night mode - setpoint - fan level\
\
When switching from day mode to night mode, the state at the input ‘rSetpFanLevelNight’ is transmitted to the RCU and displayed there. In addition,\
the absolute limits (MIN / MAX) for the set fan level are also set to the state at the input ‘rSetpFanLevelNight’, so that no\
adjustment of the set fan level is possible on the RCU. Any change of the state at the input ‘rSetpFanLevelNight’ is transmitted to the RCU during night mode.\
\
\
\
Day mode - room setpoint temperature\
\
Case 1 - There is not yet a valid room setpoint temperature for day mode\
\
When switching from night mode to day mode, the state at the input ‘rSetpTempBaseDay’ is transmitted to the RCU 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 RCU, so that the room setpoint temperature can be adjusted on the RCU within the range MIN - MAX.\
Any change of the states at the input ‘rSetpTempBaseDay’, the parameter ‘rSetpTempOffMin’ and ‘rSetpTempOffMax’ is transmitted to the RCU during day mode.\
\
Case 2 - There is already a valid room setpoint temperature for day mode\
\
When switching from night mode to day mode, the previously valid room setpoint temperature is transmitted to the RCU 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 RCU, so that the room setpoint temperature can be adjusted on the RCU within the range MIN - MAX.\
Any change of the states at the input ‘rSetpTempBaseDay’, the parameter ‘rSetpTempOffMin’ and ‘rSetpTempOffMax’ is transmitted to the RCU during day mode.\
\
In both cases the room setpoint temperature in day mode can be increased or decreased within the absolute limits with a step size of 0.5 K (fixed)\
(buttons TB0 and TB4 and additionally parameters ‘xVisuTempUp’ and ‘xVisuTempDown’).\
\
\
Day mode - set fan level\
\
Case 1 - There is not yet a valid set fan level for day mode\
\
When switching from night mode to day mode, the state at the input ‘rSetpFanLevelBaseDay’ is transmitted to the RCU and displayed there. In addition,\
the absolute limits (MIN / MAX) for the set fan level are calculated (MIN = ‘rSetpFanLevelMinPara’, MAX = ‘rSetpFanLevelMaxPara’)\
and also transmitted to the RCU, so that the set fan level can be adjusted on the RCU within the range MIN - MAX.\
Any change of the states at the input ‘rSetpFanLevelBaseDay’, the parameter ‘rSetpFanLevelMinPara’ and ‘rSetpFanLevelMaxPara’ is transmitted to the RCU during day mode.\
\
Case 2 - There is already a valid set fan level for day mode\
\
When switching from night mode to day mode, the previously valid set fan level is transmitted to the RCU 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 RCU, so that the room setpoint temperature can be adjusted on the RCU within the range MIN - MAX.\
Any change of the states at the input ‘rSetpFanLevelBaseDay’, the parameter ‘rSetpFanLevelMinPara’ and ‘rSetpFanLevelMaxPara’ is transmitted to the RCU during day mode.\
\
In both cases the set fan level in day mode can be increased or decreased within the absolute limits with a step size of 1.0 (fixed)\
(buttons TB1 and TB5 and additionally parameters ‘xVisuFanUp’ and ‘xVisuFanDown’).\
\
\
\
Outputs\
\
The output ‘rSetpTemp’ always shows the current room setpoint temperature, independent of the operating mode.\
The output ‘rSetpTempOff’ always shows the current deviation from the base room setpoint temperature, independent of the operating mode.\
The output ‘rSetpTempMin’ always shows the current absolute minimum value of the room setpoint temperature, independent of the operating mode.\
The output ‘rSetpTempMax’ always shows the current absolute maximum value of the room setpoint temperature, independent of the operating mode.\
\
The output ‘rSetpFanLevel’ always shows the current set fan level, independent of the operating mode.\
The output ‘rSetpFanLevelMin’ always shows the current absolute minimum value of the set fan level, independent of the operating mode.\
The output ‘rSetpFanLevelMax’ always shows the current absolute maximum value of the set fan level, independent of the operating mode.\
\
\
Outputs ‘xButtonTempUp’ and ‘xButtonTempDown’\
\
The outputs are influenced by pressing buttons TB0 or TB4 on the RCU and additionally by the inputs for visualization (‘xVisuTempUp’ and ‘xVisuTempDown’) (OR linkage).\
Each short press of button TB0 (increase temperature) and TB4 (decrease temperature) triggers a pulse of duration ‘tTimeButtonPulse’ (default: 1s) at the corresponding outputs ‘xButtonTempUp’ and ‘xButtonTempDown’.\\

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

The outputs ‘xButtonXXX’ (xButtonPresence, xButtonFanUp, xButtonFanDown, xButtonLightOn, xButtonLightOff, xButtonShadeUp and xButtonShadeDown) are influenced by operating\
the corresponding buttons on the RCU and additionally by the inputs for visualization (‘xVisuXXX’) (OR linkage).\
\
They can be operated on the RCU in two different operating modes (selection via the parameters ‘ePresenceOutpMode’, ‘eFanOutpMode’, ‘eLightOutpMode’ and ‘eShadeOutpMode’).\
The choice of operating mode is always made jointly for both outputs of a function.\
\
Operating modes\
\
RAW\
\
The outputs directly take over the states of their assigned buttons (button pressed >>> output = TRUE). The layout of the buttons may differ depending on\
the type of the 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 short press of the button triggers a pulse of duration ‘tTimeButtonPulse’ (default: 1s) at the corresponding output.\\

#### Display of the fan level

The display of the fan level ( selection via the input 'rSetpDispFanLev' in the range 0.0 - 7.0 ) is performed by the right bargraph on the room control unit display,\
if the display is generally enabled ( parameter 'xDispBargrFanLev' = TRUE ).\\

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

#### Display of heating/cooling power

The display of heating/cooling power ( selection via the input 'rSetpDispHCLev' in the range 0.0 - 7.0 ) is performed by the left bargraph on the room control unit display,\
if the display is generally enabled ( parameter 'xDispBargrHCLev' = TRUE ).\\

| *rSetpDispHCLev* | Display             | Notes |
| ---------------- | ------------------- | ----- |
| 0                | Level 0 - Manual    |       |
| 1                | Level 1 - Manual    |       |
| 2                | Level 2 - Manual    |       |
| 3                | Level 3 - Manual    |       |
| 4                | Level 0 - Automatic |       |
| 5                | Level 1 - Automatic |       |
| 6                | Level 2 - Automatic |       |
| 7                | Level 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 assigned input.\
( Example: xDsplSymbHeat = TRUE causes the static display of the 'heating' symbol on the display ).\
Inputs with the name suffix '-Al-' cause a slowly blinking presentation of the assigned symbol.\
( Example: xDsplSymbAlStorm = TRUE causes the slowly blinking display of the 'windsock' symbol on the display ).\\

#### Resetting the room control unit

The room control unit is reset on each rising edge at the input 'xResetDevice'.\
\\

#### Reset the room control unit to factory settings

Press buttons TB0, TB3 and TB4 simultaneously.\
Enter PIN: 7458\
The last menu item contains the start for resetting to factory settings (observe sequence)\
\\

#### Configuration of the display behavior

After about 1 minute without button operation the display jumps back to the first display value (= room temperature) (fixed)\
After about 2 minutes without button operation the brightness of the display changes according to the current setting of the parameter **eDisplAutoDim**.\\

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

A steady TRUE state at the input 'xBuzzer\_Alarm' triggers an intermittent alarm tone with frequency 800 Hz in the room control unit.\
\\

#### Display of faults

The display of faults is done at the collective output 'xAlarm' ( = TRUE ).\
It includes communication faults ( time delay: gc\_Parameters.gc\_tOnDelayxAlarmCom, default = 60s ) and device faults ( immediate ).\
At the 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.\
At the 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 recognized ( see detection of the product code )\\

#### Output 'wDeviceMode'

The numeric value at this output indicates the current presentation 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 for this.\\

#### Update of outputs for button actuations ( 9 outputs )

The state of the output 'xButtonXXX' is formed from the OR linkage of the state resulting from operations on the room control unit ( '\_xButtonXXX' ) and from\
operations in the visualization ( 'xVisuXXX' ).

### Codesys

InOut:

| Scope       | Name                    | Type                                      | Initial                                             | Comment                                                                                                                                                                   |
| ----------- | ----------------------- | ----------------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Input       | `xEn`                   | `BOOL`                                    | TRUE                                                | Enable / disable communication ( TRUE = enabled )                                                                                                                         |
| Input       | `byUnitId`              | `BYTE`                                    | 0                                                   | Address of the device ( 0 .. 255 )                                                                                                                                        |
| Input       | `xUpdateActual`         | `BOOL`                                    | FALSE                                               | <p>Update of actual values (on every rising edge<br>)</p>                                                                                                                 |
| Input       | `xUpdateStates`         | `BOOL`                                    | FALSE                                               | <p>Update of the states ( on every rising edge<br>)</p>                                                                                                                   |
| Input       | `xUpdateSetp`           | `BOOL`                                    | FALSE                                               | <p>Update of setpoint values (on every rising edge<br>)</p>                                                                                                               |
| Input       | `xUpdateConfig`         | `BOOL`                                    | FALSE                                               | <p>Update of the configuration ( on every rising<br>edge )</p>                                                                                                            |
| Input       | `rSetpTempNight`        | `REAL`                                    | 18.0                                                | Setpoint temperature - night operation (degrees Celsius)                                                                                                                  |
| Input       | `rSetpTempBaseDay`      | `REAL`                                    | 22.0                                                | Base setpoint temperature - day operation (degrees Celsius)                                                                                                               |
| Input       | `rSetpFanLevelNight`    | `REAL`                                    | 1.0                                                 | Set fan level - night mode (only integer setpoints!!!)                                                                                                                    |
| Input       | `rSetpFanLevelBaseDay`  | `REAL`                                    | 2.0                                                 | Base - set fan level - day mode (only integer setpoints!!!)                                                                                                               |
| Input       | `rSetpDispFanLev`       | `REAL`                                    | 0.0                                                 | <p>Setpoint for the display of the fan level ( bargraph -<br>right )</p>                                                                                                  |
| Input       | `rSetpDispHCLev`        | `REAL`                                    | 0.0                                                 | <p>Setpoint for the display of heating/cooling power ( bargraph -<br>left )</p>                                                                                           |
| Input       | `xDsplSymbPresen`       | `BOOL`                                    | FALSE                                               | <p>Display of the symbols for presence (= TRUE) or<br>absence (= FALSE) (FALSE = night mode, TRUE =<br>day mode)</p>                                                      |
| Input       | `xDsplSymbHeat`         | `BOOL`                                    | FALSE                                               | Display of the symbol for heating operation ( TRUE = show )                                                                                                               |
| Input       | `xDsplSymbCool`         | `BOOL`                                    | FALSE                                               | Display of the symbol for cooling operation ( TRUE = show )                                                                                                               |
| Input       | `xDsplSymbFan`          | `BOOL`                                    | FALSE                                               | Display of the symbol for the fan ( TRUE = show )                                                                                                                         |
| Input       | `xDsplSymbAlWindo`      | `BOOL`                                    | FALSE                                               | <p>Display of the symbol for the window alarm ( TRUE = display<br>)</p>                                                                                                   |
| Input       | `xDsplSymbAlRainf`      | `BOOL`                                    | FALSE                                               | Display of the symbol for the rain alarm ( TRUE = show )                                                                                                                  |
| Input       | `xDsplSymbAlStorm`      | `BOOL`                                    | FALSE                                               | Display of the symbol for the wind alarm ( TRUE = show )                                                                                                                  |
| Input       | `xDsplSymbAlAlarm`      | `BOOL`                                    | FALSE                                               | Display of the symbol for the alarm ( TRUE = show )                                                                                                                       |
| Input       | `xDsplSymbNotDrop`      | `BOOL`                                    | FALSE                                               | <p>Display of the symbol for the crossed-out drop ( TRUE<br>= display )</p>                                                                                               |
| Input       | `xDsplSymbClock`        | `BOOL`                                    | FALSE                                               | Display of the symbol for the clock ( TRUE = show )                                                                                                                       |
| Input       | `xBuzzer_Alarm`         | `BOOL`                                    | FALSE                                               | <p>Enable / disable of the alarm tone ( buzzer ) ( TRUE =<br>enable )</p>                                                                                                 |
| Input       | `xResetDevice`          | `BOOL`                                    | FALSE                                               | Reset of the device ( on each 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 RCU) (= Register 384)                                                    |
| Output      | `rSetpTempOff`          | `REAL`                                    |                                                     | Set temperature offset (Kelvin) (calculation: rSetpTempOff = rSetpTemp - rSetpTempBase)                                                                                   |
| Output      | `rSetpTempMin`          | `REAL`                                    |                                                     | <p>Absolute minimum value - target temperature ( degrees Celsius ) (<br>calculation, depending on night/day operating mode )</p>                                          |
| Output      | `rSetpTempMax`          | `REAL`                                    |                                                     | <p>Absolute maximum value - target temperature ( degrees Celsius ) (<br>calculation, depending on night/day operating mode )</p>                                          |
| Output      | `rSetpFanLevel`         | `REAL`                                    |                                                     | Set fan level (corresponds to the set fan level displayed on the RCU) (= Register 385)                                                                                    |
| Output      | `rSetpFanLevelMin`      | `REAL`                                    |                                                     | Absolute minimum value - set fan level (calculation depending on operating mode night/day)                                                                                |
| Output      | `rSetpFanLevelMax`      | `REAL`                                    |                                                     | Absolute maximum value - set fan level (calculation depending on operating mode night/day)                                                                                |
| 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`                                    |                                                     | <p>Dew point temperature in XXX.X degrees Celsius ( the offsets of<br>temperature and rel. humidity are not considered )</p>                                              |
| Output      | `xSensorOffsetInDevice` | `BOOL`                                    |                                                     | <p>Indicator whether the calibration of the sensors must be<br>performed in the device (TRUE = calibration in device required, FALSE = calibration in<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`                                  |                                                     | Device serial number                                                                                                                                                      |
| 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                                               | <p>State of the device configuration \[ TRUE = configuration<br>active ]</p>                                                                                              |
| Output      | `xButtonPresence`       | `BOOL`                                    | FALSE                                               | <p>Actuation of the presence button ( RAW, pulse with duration<br>'tTimeButtonPulse' ) ( RBG and/or VISU )</p>                                                            |
| Output      | `xButtonTempUp`         | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to increase the set temperature (<br>pulse with duration 'tTimeButtonPulse' ) ( RBG and/or<br>VISU )</p>                                       |
| Output      | `xButtonTempDown`       | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to decrease the set temperature (<br>pulse with duration 'tTimeButtonPulse' ) ( RBG and/or<br>VISU )</p>                                       |
| Output      | `xButtonFanUp`          | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to increase the fan level<br>( RAW, pulse with duration 'tTimeButtonPulse' ) ( RBG<br>and/or VISU )</p>                                        |
| Output      | `xButtonFanDown`        | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to decrease the fan level<br>( RAW, pulse with duration 'tTimeButtonPulse' ) ( RBG<br>and/or VISU )</p>                                        |
| Output      | `xButtonLightOn`        | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to activate the lighting ( RAW,<br>pulse with duration 'tTimeButtonPulse' ) ( RBG and/or<br>VISU )</p>                                         |
| Output      | `xButtonLightOff`       | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to deactivate the lighting (<br>RAW, pulse with duration 'tTimeButtonPulse' ) ( RBG<br>and/or VISU )</p>                                       |
| Output      | `xButtonShadeUp`        | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to open the shading ( RAW,<br>pulse with duration 'tTimeButtonPulse' ) ( RBG and/or<br>VISU )</p>                                              |
| Output      | `xButtonShadeDown`      | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to close the shading ( RAW,<br>pulse with duration 'tTimeButtonPulse' ) ( RBG and/or<br>VISU )</p>                                             |
| 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                                               | General fault ( TRUE = fault )                                                                                                                                            |
| Output      | `xAlarmCom`             | `BOOL`                                    | FALSE                                               | General 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                                                 | <p>Constant measurement offset for the transmitted relative<br>humidity actual value ( internal relative humidity )</p>                                                   |
| Input Const | `rExtTempOffset`        | `REAL`                                    | 0.0                                                 | <p>Constant measurement offset for the transmitted temperature<br>actual value ( external temperature )</p>                                                               |
| Input Const | `rRoomTempOffset`       | `REAL`                                    | 0.0                                                 | <p>Constant measurement offset for the transmitted temperature<br>actual value ( internal temperature )</p>                                                               |
| Input Const | `xVisuShadeDown`        | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to close the shading in the<br>visualization</p>                                                                                               |
| Input Const | `xVisuShadeUp`          | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to open the shading in the<br>visualization</p>                                                                                                |
| Input Const | `xVisuLightOff`         | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to deactivate the lighting in<br>the visualization</p>                                                                                         |
| Input Const | `xVisuLightOn`          | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to activate the lighting in the<br>visualization</p>                                                                                           |
| Input Const | `xVisuFanDown`          | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to decrease the fan level<br>in the visualization</p>                                                                                          |
| Input Const | `xVisuFanUp`            | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to increase the fan level<br>in the visualization</p>                                                                                          |
| Input Const | `xVisuTempDown`         | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to decrease the set temperature in the<br>visualization</p>                                                                                    |
| Input Const | `xVisuTempUp`           | `BOOL`                                    | FALSE                                               | <p>Actuation of the button to increase the set temperature in the<br>visualization</p>                                                                                    |
| Input Const | `xVisuPresence`         | `BOOL`                                    | FALSE                                               | Actuation of the presence button in the visualization                                                                                                                     |
| Input Const | `eDisplAutoDim`         | SPLUSS\_RYMASKON\_2XX\_DISPL\_AUTO\_DIM   | SPLUSS\_RYMASKON\_2XX\_DISPL\_AUTO\_DIM.PERCENT\_10 | <p>Definition of the 'dim display' functionality after approx. 2<br>minutes without button operation (OFF, 50% brightness, 10%<br>brightness, 0% brightness)</p>          |
| Input Const | `eShadeOutpMode`        | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE | SPLUSS\_RYMASKON\_2XX\_BUTTON\_OUTP\_MODE.RAW       | <p>Operating mode of the outputs 'xButtonShadeUp' and<br>'xButtonShadeDwn' ( 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 'xButtonLightOn' and<br>'xButtonLightOff' ( 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 'xButtonFanUp' and 'xButtonFanDwn'<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                                               | <p>Enable / disable display of the left bargraph (<br>FALSE = no display )</p>                                                                                            |
| Input Const | `xDispBargrFanLev`      | `BOOL`                                    | FALSE                                               | <p>Enable / disable display of the right bargraph (<br>FALSE = no display )</p>                                                                                           |
| 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                                                | <p>PIN code for the user level ( 0 = no code, 0001 - 9999<br>valid code )</p>                                                                                             |
| Input Const | `wPinCodeAdmin`         | `WORD`                                    | 7458                                                | <p>PIN code for the administrator level ( 0 = no code, 0001 -<br>9999 valid code )</p>                                                                                    |
| Input Const | `rSetpFanLevelMaxPara`  | `REAL`                                    | 3.0                                                 | <p>Setpoint - absolute maximum value - set fan level in<br>day mode (only integer setpoints!!!)</p>                                                                       |
| Input Const | `rSetpFanLevelMinPara`  | `REAL`                                    | 0.0                                                 | <p>Setpoint - absolute minimum value - set fan level in<br>day mode (only integer setpoints!!!)</p>                                                                       |
| Input Const | `rSetpTempOffMax`       | `REAL`                                    | 3.0                                                 | <p>Absolute maximum value of the target temperature offset in<br>day operation ( Kelvin )</p>                                                                             |
| Input Const | `rSetpTempOffMin`       | `REAL`                                    | -3.0                                                | <p>Absolute minimum value of the target temperature offset in<br>day operation ( Kelvin )</p>                                                                             |
| Input Const | `tTimeButtonPulse`      | `TIME`                                    | TIME#1s0ms                                          | <p>Duration of the pulse at the output if the assigned<br>button was pressed briefly</p>                                                                                  |
| Input Const | `tPCTimeShort`          | `TIME`                                    | TIME#5s0ms                                          | <p>Interval duration of the scan process to determine the<br>product code ( short duration, device not yet recognized )</p>                                               |
| Input Const | `tPCTimeLong`           | `TIME`                                    | TIME#1m0s0ms                                        | <p>Interval duration of the scan process to determine the<br>product code ( long duration, device recognized )</p>                                                        |
| Input Const | `tTimeUpdateConfig`     | `TIME`                                    | TIME#0ms                                            | <p>Update interval for the processes influenced by the input<br>‘xUpdateConfig’</p>                                                                                       |
| Input Const | `tTimeUpdateSetp`       | `TIME`                                    | TIME#45s0ms                                         | <p>Update interval for operations influenced by the input<br>'xUpdateSetp'</p>                                                                                            |
| Input Const | `tTimeUpdateStates`     | `TIME`                                    | TIME#500ms                                          | <p>Update interval for the processes influenced by the input<br>‘xUpdateStates’</p>                                                                                       |
| Input Const | `tTimeUpdateActual`     | `TIME`                                    | TIME#3s0ms                                          | <p>Update interval for operations influenced by the input<br>'xUpdateActual'</p>                                                                                          |
