# KAMSTRUP\_MULTICAL\_XX3\_DEFAULT

## `KAMSTRUP_MULTICAL_XX3_DEFAULT` (FB)

`FUNCTION_BLOCK` KAMSTRUP\_MULTICAL\_XX3\_DEFAULT

### Representation

<figure><img src="https://2592874069-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQR4vCFzt6ixgsqlR3pdR%2Fuploads%2FvCRmNzzRJm8241zQiqVm%2FKAMSTRUP_MULTICAL_XX3_DEFAULT.png?alt=media&#x26;token=99797208-1f28-4bc3-84bf-5a9634d2eddb" alt=""><figcaption></figcaption></figure>

### Guidelines - Software creation

The following function codes (FC) are supported: 3, 4, 8, 16, 43, 65 and 66

This function block can be used when employing the following communication modules:

1. HC-003-67: Modbus RTU with meter inputs In-A and In-B (slot 1) or In-A2 and In-B2 (slot 2)
2. HC-003-82: Modbus TCP with meter inputs In-A and In-B (slot 1) or In-A2 and In-B2 (slot 2)

These modules can be used in the following meters:

1\) MULTICAL 403 2) MULTICAL 603 3) MULTICAL 803

The data is read according to the profile `Default` read (default datagram = xx-yy-300)

Unused registers contain the following contents depending on the data type:

1\) Signed integer (16 bit): 0x00000000 2) Integer (32 bit): 0xFFFFFFFF 3) Signed integer (32 bit): 0x7FFFFFFF 4) Float (32 bit): 0x4F800000

The calibration of the temperature sensors must be carried out in the device; however, no adjustment is possible via Modbus.

The Modbus addresses 1 - 247 can be set using suitable Kamstrup tools.

Measured values - adjustment: Class ???

InOut:

| Scope       | Name                    | Type                                    | Initial                                          | Comment                                                                                                                                                             |
| ----------- | ----------------------- | --------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Input       | `xEn`                   | `BOOL`                                  | TRUE                                             | Enable / disable communication (TRUE = enable)                                                                                                                      |
| Input       | `byUnitId`              | `BYTE`                                  | 1                                                | Device address (1 .. 247)                                                                                                                                           |
| Input       | `xUpdateActual`         | `BOOL`                                  | FALSE                                            | <p>Update of actual values (on every rising edge<br>)</p>                                                                                                           |
| Input       | `xUpdateConfig`         | `BOOL`                                  | FALSE                                            | Configuration update (on every rising edge) (write and read access)                                                                                                 |
| Input       | `xUpdateInfo`           | `BOOL`                                  | FALSE                                            | Update of the information (on every rising edge)                                                                                                                    |
| Input       | `xResError`             | `BOOL`                                  | FALSE                                            | <p>Reinitialization of the outputs <code>eErrorCodeCom</code> or<br><code>xErrorCodeDev</code> to the fault-free state (on every rising edge)</p>                   |
| Inout       | `ModbusClient`          | `ModbusClientBase`                      |                                                  | Client of the device                                                                                                                                                |
| Output      | `rVolFlowV1`            | `REAL`                                  | 0.0                                              | Measured value 'Current volume flow V1'                                                                                                                             |
| Output      | `eUnitVolFlowV1`        | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current volume flow V1'                                                                                                                 |
| Output      | `rVolFlowV2`            | `REAL`                                  | 0.0                                              | Measured value 'Current volume flow V2'                                                                                                                             |
| Output      | `eUnitVolFlowV2`        | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current volume flow V2'                                                                                                                 |
| Output      | `rPower`                | `REAL`                                  | 0.0                                              | Measured value 'Current power'                                                                                                                                      |
| Output      | `eUnitPower`            | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current power'                                                                                                                          |
| Output      | `rT1`                   | `REAL`                                  | 0.0                                              | Measured value 'Current temperature T1'                                                                                                                             |
| Output      | `eUnitT1`               | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current temperature T1'                                                                                                                 |
| Output      | `rT2`                   | `REAL`                                  | 0.0                                              | Measured value 'Current temperature T2'                                                                                                                             |
| Output      | `eUnitT2`               | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current temperature T2'                                                                                                                 |
| Output      | `rT3`                   | `REAL`                                  | 0.0                                              | Measured value 'Current temperature T3'                                                                                                                             |
| Output      | `eUnitT3`               | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current temperature T3'                                                                                                                 |
| Output      | `rT4`                   | `REAL`                                  | 0.0                                              | Measured value 'Current temperature T4'                                                                                                                             |
| Output      | `eUnitT4`               | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current temperature T4'                                                                                                                 |
| Output      | `rDeltaT1_T2`           | `REAL`                                  | 0.0                                              | Measured value 'Current temperature difference T1-T2'                                                                                                               |
| Output      | `eUnitDeltaT1_T2`       | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current temperature difference T1-T2'                                                                                                   |
| Output      | `rPowerP1`              | `REAL`                                  | 0.0                                              | Measured value 'Current power P1'                                                                                                                                   |
| Output      | `eUnitPowerP1`          | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current power P1'                                                                                                                       |
| Output      | `rPowerP2`              | `REAL`                                  | 0.0                                              | Measured value 'Current power P2'                                                                                                                                   |
| Output      | `eUnitPowerP2`          | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current power P2'                                                                                                                       |
| Output      | `rHeatEnergyE1`         | `REAL`                                  | 0.0                                              | Measured value 'Current heat energy E1'                                                                                                                             |
| Output      | `eUnitHeatEnergyE1`     | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current heat energy E1'                                                                                                                 |
| Output      | `rHeatEnergyE2`         | `REAL`                                  | 0.0                                              | Measured value 'Current heat energy E2'                                                                                                                             |
| Output      | `eUnitHeatEnergyE2`     | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current heat energy E2'                                                                                                                 |
| Output      | `rCoolingEnergyE3`      | `REAL`                                  | 0.0                                              | Measured value 'Current cooling energy E3'                                                                                                                          |
| Output      | `eUnitCoolingEnergyE3`  | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current cooling energy E3'                                                                                                              |
| Output      | `rInletEnergyE4`        | `REAL`                                  | 0.0                                              | Measured value 'Current energy at input E4'                                                                                                                         |
| Output      | `eUnitInletEnergyE4`    | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current energy at input E4'                                                                                                             |
| Output      | `rOutletEnergyE5`       | `REAL`                                  | 0.0                                              | Measured value 'Current energy at output E5'                                                                                                                        |
| Output      | `eUnitOutletEnergyE5`   | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Current energy at output E5'                                                                                                            |
| Output      | `rVolumeV1`             | `REAL`                                  | 0.0                                              | Measured value 'Cumulative volume V1'                                                                                                                               |
| Output      | `eUnitVolumeV1`         | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Cumulative volume V1'                                                                                                                   |
| Output      | `rVolumeV2`             | `REAL`                                  | 0.0                                              | Measured value 'Cumulative volume V2'                                                                                                                               |
| Output      | `eUnitVolumeV2`         | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Cumulative volume V2'                                                                                                                   |
| Output      | `rPulseInputA1`         | `REAL`                                  | 0.0                                              | Measured value 'Cumulative pulse count input A1'                                                                                                                    |
| Output      | `eUnitPulseInputA1`     | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Cumulative pulse count input A1'                                                                                                        |
| Output      | `rPulseInputB1`         | `REAL`                                  | 0.0                                              | Measured value 'Cumulative pulse count input B1'                                                                                                                    |
| Output      | `eUnitPulseInputB1`     | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Cumulative pulse count input B1'                                                                                                        |
| Output      | `rPulseInputA2`         | `REAL`                                  | 0.0                                              | Measured value 'Cumulative pulse count input A2'                                                                                                                    |
| Output      | `eUnitPulseInputA2`     | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Cumulative pulse count input A2'                                                                                                        |
| Output      | `rPulseInputB2`         | `REAL`                                  | 0.0                                              | Measured value 'Cumulative pulse count input B2'                                                                                                                    |
| Output      | `eUnitPulseInputB2`     | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Cumulative pulse count input B2'                                                                                                        |
| Output      | `rMassM1`               | `REAL`                                  | 0.0                                              | Measured value 'Cumulative total mass M1'                                                                                                                           |
| Output      | `eUnitMassM1`           | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Cumulative total mass M1'                                                                                                               |
| Output      | `rMassM2`               | `REAL`                                  | 0.0                                              | Measured value 'Cumulative total mass M2'                                                                                                                           |
| Output      | `eUnitMassM2`           | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS | KAMSTRUP\_MULTICAL\_XX3\_DEFAULT\_UNITS.No\_unit | Unit of the measured value 'Cumulative total mass M2'                                                                                                               |
| Output      | `dwOperatingHours`      | `DWORD`                                 | 0                                                | Operating hours                                                                                                                                                     |
| Output      | `dwErrorHours`          | `DWORD`                                 | 0                                                | Operating hours with active fault                                                                                                                                   |
| Output      | `dwDate`                | `DWORD`                                 | 0                                                | Date in the format YY.MM.DD                                                                                                                                         |
| Output      | `dwTime`                | `DWORD`                                 | 0                                                | Time in the format HH.MM.SS                                                                                                                                         |
| Output      | `sSerialNum`            | `STRING`                                | ''                                               | Serial number                                                                                                                                                       |
| Output      | `dwMeterType`           | `DWORD`                                 | 0                                                | Device type and firmware version                                                                                                                                    |
| Output      | `dwMainSubType`         | `DWORD`                                 | 0                                                | Device main version and subversion                                                                                                                                  |
| Output      | `dwFirmwareVer`         | `DWORD`                                 | 0                                                | Firmware version                                                                                                                                                    |
| Output      | `xSensorOffsetInDevice` | `BOOL`                                  | FALSE                                            | <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      | `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      | `stErrorCodeDev_1`      | `STRING`                                | ''                                               | <p>String 1 with the numbers of the active device errors (<br>error bits 0 - 15)</p>                                                                                |
| Output      | `stErrorCodeDev_2`      | `STRING`                                | ''                                               | <p>String 2 with the numbers of the active device errors (<br>error bits 16 - 31)</p>                                                                               |
| Output      | `xBusy`                 | `BOOL`                                  | FALSE                                            | Communication indicator (TRUE = communication)                                                                                                                      |
| Input Const | `tTimeUpdateInfo`       | `TIME`                                  | TIME#0ms                                         | <p>Update interval for the processes influenced by the input<br><code>xUpdateInfo</code> influenced</p>                                                             |
| Input Const | `tTimeUpdateConfig`     | `TIME`                                  | TIME#0ms                                         | <p>Update interval for the processes influenced by the input<br><code>xUpdateConfig</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>                                                           |
