# BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD

## `BELIMO_EPXXXR2_BAC_FW_4_2_0_MOD` (FB)

FUNCTION\_BLOCK BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD

### Guidelines - Software creation

The following function codes (FC) are supported: 3, 4 (additionally: 2, 4, 16)\
\
For write operations on 32-bit data points (2 consecutive Modbus registers) FC16 must be used. No other registers may be written in that telegram.\
Format of 32-bit data points:\
Register+0 (LSW): H-byte L-byte\
Register+1 (MSW): H-byte L-byte\\

FC02 may only be used for register 105 (Malfunction and service information, start address = 1664). | | Address values (not register addresses) must be used for addressing. | | For unused registers the value 65535 (dec.) is read/written. | | Modbus addresses 1 - 247 can be set with the known Belimo tools. | | All writable register addresses > 100 are persistent and must not be written cyclically | | The device firmware cannot currently (06.09.2024) be read from address 103. The value 0 is always read. | | Measurement values - calibration: Class ??? | | There are no calibratable measured variables available. |

InOut:

| Scope       | Name                    | Type                                                       | Initial                                                                  | Comment                                                                                                                                                                 |
| ----------- | ----------------------- | ---------------------------------------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Input       | `xEn`                   | `BOOL`                                                     | TRUE                                                                     | Enable / disable communication ( TRUE = enabled )                                                                                                                       |
| Input       | `byUnitId`              | `BYTE`                                                     | 1                                                                        | Device address (1 .. 247)                                                                                                                                               |
| Input       | `xUpdateActual`         | `BOOL`                                                     | FALSE                                                                    | <p>Update of actual values (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 configuration (on every rising<br>edge) (write access)</p>                                                                                                 |
| Input       | `xUpdateInfo`           | `BOOL`                                                     | FALSE                                                                    | <p>Update of information (on every rising<br>edge)</p>                                                                                                                  |
| Input       | `xResError`             | `BOOL`                                                     | FALSE                                                                    | Reinitialization of the outputs 'eErrorCodeCom' and 'xErrorCodeDev' to the error-free state (on each rising edge)                                                       |
| Input       | `rRelSetp`              | `REAL`                                                     | 0.0                                                                      | <p>Relative setpoint - position/volume flow in % (0.0% =<br>rAbsVolFlowLimitMinFb, 100.0% = rAbsVolFlowLimitMaxFb)</p>                                                  |
| Input       | `eCommand`              | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_COMMAND            | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_COMMAND.None                     | Command for service functions (0 = None)                                                                                                                                |
| Input       | `eOverrideCon`          | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_OVERRIDE\_CONTROL  | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_OVERRIDE\_CONTROL.None           | <p>Forced override of the control signal - position/volume flow<br>(0 = None)</p>                                                                                       |
| Inout       | `ModbusClient`          | `ModbusClientBase`                                         |                                                                          | Client of the device                                                                                                                                                    |
| Output      | `eSetpSourceFb`         | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_SETPOINT\_SOURCE   |                                                                          | <p>Actual values\_1: Feedback - source for the setpoint -<br>position/volume flow (1 = Modbus)</p>                                                                      |
| Output      | `eControlModeFb`        | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_CONTROL\_MODE      |                                                                          | <p>Actual values\_1: Feedback - operating mode of the control (1 =<br>volume flow)</p>                                                                                  |
| Output      | `rRelSetpFb`            | `REAL`                                                     |                                                                          | <p>Actual values\_0: Feedback - relative setpoint -<br>position/volume flow in % (0.0 - 100.0%)</p>                                                                     |
| Output      | `rRelSetpAnalog`        | `REAL`                                                     |                                                                          | <p>Actual values\_0: Relative setpoint - position/volume flow in %<br>(0.0 - 100.0%) from input 0 - 10V (address 118 = 0 =<br>analog)</p>                               |
| Output      | `rRelPos`               | `REAL`                                                     |                                                                          | Actual values\_0: Relative position in XXX.X %                                                                                                                          |
| Output      | `rAbsPos`               | `REAL`                                                     |                                                                          | <p>Actual values\_0: Absolute position in XXX degrees (rotation) or<br>mm (linear movement)</p>                                                                         |
| Output      | `rRelVolFlow`           | `REAL`                                                     |                                                                          | <p>Actual values\_0: Relative volume flow in % (0.0 - 150.0%) (<br>relative to 'Maximum volumetric flow Limit' - address 106)</p>                                       |
| Output      | `rRelVolFlowLimitMin`   | `REAL`                                                     |                                                                          | <p>Actual values\_1: Limit - minimum percentage volume flow<br>(reference: Vnom) (Control\_Mode = Flow Control) (2.5% Vnom - 100.0% Vmax)</p>                           |
| Output      | `rRelVolFlowLimitMax`   | `REAL`                                                     |                                                                          | <p>Actual values\_1: Limit - maximum percentage volume flow<br>(reference: Vnom) (Control\_Mode = Flow Control) (25.0% Vnom - 100.0% Vnom)</p>                          |
| Output      | `rNomAbsVolFlowUnit`    | `REAL`                                                     |                                                                          | <p>Nominal volume flow in the selected unit (addresses<br>112 and 113) (unit selection in address 147)</p>                                                              |
| Output      | `rSetpAbsVolFlowUnit`   | `REAL`                                                     |                                                                          | <p>Actual values\_0: Setpoint for the absolute volume flow in the<br>selected unit (unit selection in address 147)</p>                                                  |
| Output      | `rAbsVolFlowUnit`       | `REAL`                                                     |                                                                          | <p>Actual values\_0: Absolute volume flow in the selected unit<br>(unit selection in address 147)</p>                                                                   |
| Output      | `eVolFlowUnitFb`        | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_VOLUME\_FLOW\_UNIT |                                                                          | <p>Actual values\_1: Feedback - unit for the absolute<br>volume flow (unit selection in address 147)</p>                                                                |
| Output      | `rAbsVolFlowLimitMinFb` | `REAL`                                                     |                                                                          | <p>Actual values\_1: Feedback - limit - minimum absolute<br>volume flow (reference: Vnom) (Control\_Mode = Flow<br>Control) (2.5% Vnom - 100.0% Vmax)</p>               |
| Output      | `rAbsVolFlowLimitMaxFb` | `REAL`                                                     |                                                                          | <p>Actual values\_1: Feedback - limit - maximum absolute<br>volume flow (reference: Vnom) (Control\_Mode = Flow<br>Control) (25.0% Vnom - 100.0% Vnom)</p>              |
| Output      | `rTemp_Deg`             | `REAL`                                                     |                                                                          | Actual values\_0: Current temperature in degrees Celsius                                                                                                                |
| Output      | `rTemp_Fah`             | `REAL`                                                     |                                                                          | Actual values\_0: Current temperature in degrees Fahrenheit                                                                                                             |
| Output      | `rRelGlycolCon`         | `REAL`                                                     |                                                                          | Actual values\_0: Current glycol concentration in percent                                                                                                               |
| Output      | `dwTotalWaterVolume`    | `DWORD`                                                    |                                                                          | <p>Actual values\_0: Total water volume in the selected unit (<br>unit selection in address 149)</p>                                                                    |
| Output      | `eVolumeUnitFb`         | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_VOLUME\_UNIT       |                                                                          | <p>Actual values\_1: Feedback - unit of the total water volume (<br>unit selection in address 149)</p>                                                                  |
| Output      | `eOverrideConFb`        | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_OVERRIDE\_CONTROL  |                                                                          | <p>Actual values\_0: Current state - forced override of the<br>control signal - position/volume flow (0 = None)</p>                                                     |
| Output      | `rSensor1ValueUnit`     | `REAL`                                                     |                                                                          | <p>Actual values\_0: Current value of sensor 1 in the selected<br>unit (address 120: sensor type)</p>                                                                   |
| Output      | `eSensor1TypeFb`        | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_SENSOR\_1\_TYPE    |                                                                          | <p>Active: 0 - 65535 mV // Switch: 0.0 or 1.0<br>Actual values\_1: Feedback - sensor type (address 120: sensor type)</p>                                                |
| Output      | `eCommandFb`            | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_COMMAND            |                                                                          | <p>Actual values\_0: Current state - command for service functions<br>(0 = None)</p>                                                                                    |
| Output      | `eDeviceType`           | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_DEVICE\_TYPE       |                                                                          | <p>Actual values\_0: Current state - device type (0 = Device<br>not connected)</p>                                                                                      |
| Output      | `eBusTermin`            | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_BUS\_TERMINATION   |                                                                          | <p>Information\_0: State of the Modbus termination resistor (<br>Active = Enabled)</p>                                                                                  |
| Output      | `sSerialNum`            | `STRING`                                                   |                                                                          | Information\_0: Serial number of the device                                                                                                                             |
| Output      | `wFirmwareVer`          | `WORD`                                                     |                                                                          | Information\_0: Firmware version of the device                                                                                                                          |
| Output      | `eAO`                   | eManNum                                                    | eManNum.Auto                                                             | Indicator - manual override on the device (actuator decoupled) ( 0 = Automatic )                                                                                        |
| 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      | `stErrorCodeDev`        | `STRING`                                                   |                                                                          | <p>String with the numbers of active device errors (error bits<br>0 - 15)</p>                                                                                           |
| Output      | `xBusy`                 | `BOOL`                                                     |                                                                          | Communication indicator ( TRUE = communication )                                                                                                                        |
| Input Const | `eVolumeUnit`           | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_VOLUME\_UNIT       | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_VOLUME\_UNIT.m3                  | <p>Unit of the total water volume (unit selection in<br>address 149)</p>                                                                                                |
| Input Const | `eVolFlowUnit`          | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_VOLUME\_FLOW\_UNIT | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_VOLUME\_FLOW\_UNIT.m3\_per\_hour | <p>Unit for the absolute volume flow (unit selection in<br>address 147)</p>                                                                                             |
| Input Const | `rMaxAbsVolFlowUnit`    | `REAL`                                                     | 40.0                                                                     | <p>Maximum value for the absolute volume flow in the selected<br>unit (0.25<em>rNomAbsVolFlowUnit … 1.0</em>rNomAbsVolFlowUnit<br>) (unit selection in address 147)</p> |
| Input Const | `rMinAbsVolFlowUnit`    | `REAL`                                                     | 20.0                                                                     | <p>Minimum value for the absolute volume flow in the selected<br>unit (0 … rMaxAbsVolFlowUnit) (unit selection in<br>address 147)</p>                                   |
| Input Const | `eSensor_1_Type`        | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_SENSOR\_1\_TYPE    | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_SENSOR\_1\_TYPE.None             | Definition of the type of sensor 1 (0 = None)                                                                                                                           |
| Input Const | `eSetpSource`           | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_SETPOINT\_SOURCE   | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_SETPOINT\_SOURCE.Bus             | <p>Source for the setpoint - position/volume flow (1 = Modbus<br>)</p>                                                                                                  |
| Input Const | `eControlMode`          | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_CONTROL\_MODE      | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_CONTROL\_MODE.Flow\_Control      | Operating mode of the control (1 = volume flow)                                                                                                                         |
| Input Const | `tBusFailTimeout`       | `TIME`                                                     | TIME#2m0s0ms                                                             | Time duration for evaluating a communication error                                                                                                                      |
| Input Const | `eBusFailAction`        | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_BUS\_FAIL\_ACTION  | BELIMO\_EPXXXR2\_BAC\_FW\_4\_2\_0\_MOD\_BUS\_FAIL\_ACTION.None           | <p>Action when a communication error occurs (0 =<br>none)</p>                                                                                                           |
| Input Const | `tTimeUpdateInfo`       | `TIME`                                                     | TIME#0ms                                                                 | <p>Update interval for the operations influenced by the input<br>'xUpdateInfo'</p>                                                                                      |
| Input Const | `tTimeUpdateConfig`     | `TIME`                                                     | TIME#0ms                                                                 | <p>Update interval for the operations 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 | `tTimeUpdateActual`     | `TIME`                                                     | TIME#3s0ms                                                               | <p>Update interval for operations influenced by the input<br>'xUpdateActual'</p>                                                                                        |
