---
title: "Evikon PluraSens E2618-CO-DM-24VDC"
description: "Duct-mount CO transmitter over Modbus RTU on RS-485: CO in ppm, sensor-absent error, stale-data warning. Wire A/B to the bus; default 9600 8N1, slave ID 1."
url: "https://taphome.com/en/compatibility/plurasens-e2618-co-dm-24vdc-modbus-rtu/"
language: en
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","sensor","gas-sensor","carbon-monoxide","duct-mount","air-quality"]
  questions: ["How to integrate the PluraSens E2618-CO-DM with TapHome?","What does the PluraSens E2618-CO-DM TapHome template measure?","How to wire the E2618-CO-DM to the TapHome RS-485 bus?","What are the default Modbus settings of the E2618-CO transmitter?","How to reset the slave ID and baud rate of the E2618-CO with the X6 jumper?","Why does TapHome show a Sensor absent error for the E2618-CO-DM?","What does the Stale measurement warning of the E2618-CO-DM mean?","How long does the E2618-CO need to warm up after power-on?"]
---

# Evikon PluraSens E2618-CO-DM-24VDC

Communication: Modbus RTU

## Integration guide

The PluraSens E2618-CO-DM is the duct-mount version of the E2618-CO carbon monoxide transmitter made by Evikon MCI OÜ (Estonia). It measures CO with an electrochemical cell (sensor lifetime over 10 years, signal update every second, resolution 1 ppm) and communicates with TapHome over Modbus RTU on its RS-485 interface. The manufacturer lists two detection ranges, 0…300 ppm and 0…1000 ppm.

TapHome reads the CO concentration every 5 seconds, raises an error when the sensor is missing and a warning when the measurement stops updating, and shows the device configuration as service attributes. The transmitter also provides two analog outputs (4-20 mA / 0-10 V) proportional to the gas concentration.

## Hardware connection

### Mounting in the duct

The duct-mount option (order code E2618-CO-DM) has a sensor stem of Ø35 × 230 mm and is delivered with a square rubber flange.

1. Cut a hole of 36…45 mm diameter in the air duct at the chosen place.
2. Place the rubber flange so that its holes line up with the duct and fix it with four self-tapping screws.
3. Pass the sensor probe through the flange and adjust it to the appropriate depth.
4. Unscrew the four lid screws and remove the lid of the transmitter to reach the terminals.

The transmitter is meant for explosion-safe indoor areas with a non-aggressive atmosphere, at −20…+50 °C and 0…90 % RH without condensation. Keep it accessible for maintenance and away from direct sunlight.

### Wiring

Let the power and bus cables in through the M16 cable gland and connect them to the X4 spring terminal block on the circuit board. Connect the power cable without switching the power on.

![E2618-CO circuit board with the X4 terminal block (OUT1, OUT2, 0V, A, B, +U), jumpers J1, J2 and the X6 Modbus reset jumper, with a table of terminal functions.](https://taphome.com/images/compatibility/plurasens-e2618-co-dm-24vdc-modbus-rtu/wiring-rs485_hu_9a7b5693e230e387.jpg)

| Terminal | Function |
|----------|----------|
| A | RS-485 A / Data+ |
| B | RS-485 B / Data− |
| 0V | 0 V (24 VAC neutral with the optional AC supply) |
| +U | Supply positive — the manufacturer's terminal table labels it +24 VDC (24 VAC phase with the optional AC supply) |
| OUT1 | Analog output 1, 4-20 mA or 0-10 V |
| OUT2 | Analog output 2, 4-20 mA or 0-10 V |

- **Power supply:** the specifications give 12…36 VDC as the default supply, power consumption below 2 VA. 24 VAC is only available with the integrated 24 VAC power supply module (order code E2618-CO-24VAC).
- **RS-485:** use a twisted-pair cable, for example LiYY TP 2×2×0.5 mm² or CAT 5. Polarity must be respected: A is Data+, B is Data−. The RS-485 interface has no galvanic isolation.
- **Terminals:** the screwless spring terminals take wires of 0.2…1.5 mm². Strip 8…9 mm and use wire end sleeves. To release a wire, push the terminal lever.
- **Analog outputs (optional):** jumper J1 sets OUT1 and J2 sets OUT2 — open is 4-20 mA, closed is 0-10 V. Restart the power after moving a jumper.

> [!WARNING]
> Connect and disconnect wires only with the power off. Connecting or disconnecting live wires can corrupt the device firmware. Do not remove the circuit board from the enclosure — that voids the warranty.

### First power-on

Switch the power on. The instrument warms up in about 1 minute; the sensor needs about 30 minutes to reach its full accuracy. Check the LEDs on the circuit board:

| LED state | Meaning |
|-----------|---------|
| Green power LED on | Power supply is connected |
| Red control LED blinks at 0.5 Hz | Calibration mode or sensor heating period (if activated) |
| Red control LED gives short on-off pulses | Modbus communication is running |
| Red control LED continuously on or off | Normal operation |

When the transmitter is mounted, the bus is connected and the LEDs are in normal state, put the lid back and fix it with the four screws.

## Configuration

### Modbus communication

Modbus RTU is the built-in digital interface of the transmitter and needs no enable step. The factory settings are:

| Parameter | Default | Permitted values |
|-----------|---------|------------------|
| Slave ID | 1 | 1…247 |
| Baud rate | 9600 bps | 1200, 2400, 4800, 9600, 19200, 38400, 57600 |
| Data bits | 8 | 8 |
| Parity | None | None, odd, even |
| Stop bits | 1 | 1, 2 |
| Response delay | 10 ms | 1…255 ms |

The device supports Modbus functions 03 (read holding registers) and 06 (write single register). Odd and even parity are available from software version 0x218 (decimal 536).

In TapHome, add the template on a Modbus RTU bus set to the same serial parameters (the template suggests 9600 bps, 8 data bits, no parity, 1 stop bit) and enter the device address in the **Modbus Slave ID** import parameter.

### Changing the slave ID or serial parameters

With more than one device on the bus, each one needs its own slave ID. Slave ID, baud rate and parity / stop bits are holding registers 0x0004, 0x0005 and 0x0007, written with function 06. A new value takes effect only after the transmitter restarts. The manufacturer offers a configuration kit for this (USB-RS485 converter, gas tubing, fixed flow regulator and configuration software, through the seller).

If the current slave ID is unknown, the broadcast address 0 can be used to assign a new ID. The transmitter must then be the only Modbus device on the bus, and it does not answer commands sent to address 0.

> [!NOTE]
> After changing the slave ID or baud rate, change the TapHome bus settings and the **Modbus Slave ID** import parameter to match — otherwise communication stops after the restart.

### Resetting the communication parameters

If the slave ID or baud rate is unknown, the X6 jumper on the circuit board restores the factory communication settings:

1. Switch the power off.
2. Connect the X6 jumper.
3. Switch the power on.
4. Switch the power off.
5. Disconnect the X6 jumper.
6. Switch the power on.

After the reset the transmitter uses slave ID 1, 9600 bps, no parity and 1 stop bit.

## Device capabilities

### CO Concentration

**CO Concentration** reads the gas concentration in ppm from holding register 0x0103 (decimal 259) as an unsigned 16-bit value with 1 ppm resolution. TapHome polls it every 5 seconds. Both detection ranges use the same register and the same template; the version of the transmitter is marked on its package.

With every read the device also checks two registers:

- **Sensor absent** (error) — bit 0 of the status register 0x00FF is set: the electrochemical sensor is missing or not detected.
- **Stale measurement** (warning) — register 0x0011 reports that the last measurement is older than 60 seconds.

Its service attributes show whether the analog outputs are activated, the output type detected on OUT1 and OUT2 (4-20 mA or 0-10 V), the LED state, the raw sensor data (ADC), the data age in seconds, the change rate limit and the integrating filter time.

### Module service attributes

The module reads the transmitter configuration every 30 seconds and shows it read-only:

- Hardware version, software version and serial number
- Current slave ID, baud rate, response delay, parity and stop bits
- Zero and slope calibration values
- OUT1 and OUT2 assignment (none, gas concentration, forced Modbus control) and forced values
- OUT1 and OUT2 scale values for 0 % and 100 % in ppm

### Service action

**Restart instrument** writes 42330 to register 0x0011, which restarts the transmitter. Use it after a configuration change that takes effect only after a restart.

## Troubleshooting

### No CO reading in TapHome

- Check the RS-485 polarity: A is Data+, B is Data−.
- Check that the TapHome bus runs at the transmitter's serial settings (factory default 9600 8N1) and that the **Modbus Slave ID** import parameter matches the device. If the settings are unknown, reset them with the X6 jumper.
- Check the supply voltage at +U and 0V and that the green power LED is on. Allow about 1 minute for warm-up.
- Watch the red control LED: short pulses show Modbus traffic.

### "Sensor absent" error

Switch the power off and check that the electrochemical sensor is seated in the sensor head (cap, PTFE filter, O-ring, sensor). Never stab or press the filter near its centre, where the sensor sits, and do not run the transmitter without the filter. Replace the PTFE filter if it is strongly contaminated.

### "Stale measurement" warning

The transmitter answers but its last measurement is older than 60 seconds. Run the **Restart instrument** service action; if the warning returns, check the sensor.

### Unexpected CO readings

- The sensor may react to acetylene, ethylene, hydrogen and nitric oxide.
- Sudden changes of temperature or humidity can affect the sensor sensitivity.
- After power-on, the sensor needs about 30 minutes to reach full accuracy.
- The transmitter is factory-calibrated; the recommended field recalibration interval is 12 months. Contact the dealer for recalibration.

## Available devices 1

These devices appear in TapHome after import.

E2618-CO-DM Module Module

Service Attributes

|                        |
|------------------------|
| Hardware version       |
| Software version       |
| Serial number          |
| Slave ID - current     |
| Baud rate - current    |
| Response delay \[ms]   |
| Parity / stop bits     |
| Zero calibration (ADC) |
| Slope calibration      |
| OUT1 assignment        |
| OUT2 assignment        |
| OUT1 forced value \[%] |
| OUT2 forced value \[%] |
| OUT1 scale 0% \[ppm]   |
| OUT1 scale 100% \[ppm] |
| OUT2 scale 0% \[ppm]   |
| OUT2 scale 100% \[ppm] |

Service Actions

|                    |
|--------------------|
| Restart instrument |

Service Attributes

Hardware version

```taphome
MODBUSR(H, 1, UInt16)
```

Software version

```taphome
MODBUSR(H, 2, UInt16)
```

Serial number

```taphome
MODBUSR(H, 3, UInt16)
```

Slave ID - current

```taphome
MODBUSR(H, 4, UInt16)
```

Baud rate - current

```taphome
MODBUSR(H, 5, UInt16)
```

Response delay \[ms]

```taphome
MODBUSR(H, 6, UInt16)
```

Parity / stop bits

```taphome
SWITCH(MODBUSR(H, 7, UInt16), 1, "None / 1 stop", 2, "None / 2 stops", 3, "Odd / 1 stop", 4, "Even / 1 stop", "?")
```

Zero calibration (ADC)

```taphome
MODBUSR(H, 165, Int16)
```

Slope calibration

```taphome
MODBUSR(H, 166, UInt16)
```

OUT1 assignment

```taphome
SWITCH(MODBUSR(H, 201, UInt16), 0, "None", 2, "Gas concentration", 9, "Forced Modbus control", "?")
```

OUT2 assignment

```taphome
SWITCH(MODBUSR(H, 202, UInt16), 0, "None", 2, "Gas concentration", 9, "Forced Modbus control", "?")
```

OUT1 forced value \[%]

```taphome
MODBUSR(H, 203, UInt16) / 10
```

OUT2 forced value \[%]

```taphome
MODBUSR(H, 204, UInt16) / 10
```

OUT1 scale 0% \[ppm]

```taphome
MODBUSR(H, 261, Int16)
```

OUT1 scale 100% \[ppm]

```taphome
MODBUSR(H, 262, Int16)
```

OUT2 scale 0% \[ppm]

```taphome
MODBUSR(H, 263, Int16)
```

OUT2 scale 100% \[ppm]

```taphome
MODBUSR(H, 264, Int16)
```

Service Actions

Restart instrument

```taphome
MODBUSW(SH, 17, UInt16, 42330);
```

CO Concentration Variable

Service Attributes

|                                        |
|----------------------------------------|
| Status: Analog outputs                 |
| Status: OUT1 type detected             |
| Status: OUT2 type detected             |
| Status: LED                            |
| Raw ADC sensor data                    |
| Data age \[s]                          |
| Change rate limit (units/s; 0 = off)   |
| Integrating filter time \[s] (0 = off) |

Read

```taphome
MODBUSR(H, 259, UInt16)
```

Read (module)

```taphome
var statusBits := MODBUSR(H, 255, UInt16); var dataAge := MODBUSR(H, 17, UInt16); IF(GETBIT(statusBits, 0), ADDERROR(0, "Sensor absent")); IF(dataAge > 60, ADDWARNING(3, "Stale measurement: " + dataAge + "s old"));
```

Service Attributes

Status: Analog outputs

```taphome
IF(GETBIT(MODBUSR(H, 255, UInt16), 1), "Activated", "Deactivated")
```

Status: OUT1 type detected

```taphome
IF(GETBIT(MODBUSR(H, 255, UInt16), 6), "Voltage (0-10 V)", "Current (4-20 mA)")
```

Status: OUT2 type detected

```taphome
IF(GETBIT(MODBUSR(H, 255, UInt16), 7), "Voltage (0-10 V)", "Current (4-20 mA)")
```

Status: LED

```taphome
IF(GETBIT(MODBUSR(H, 255, UInt16), 8), "On", "Off")
```

Raw ADC sensor data

```taphome
MODBUSR(H, 257, UInt16)
```

Data age \[s]

```taphome
MODBUSR(H, 17, UInt16)
```

Change rate limit (units/s; 0 = off)

```taphome
MODBUSR(H, 167, UInt16)
```

Integrating filter time \[s] (0 = off)

```taphome
MODBUSR(H, 168, UInt16)
```

**Connection:** Modbus RTU • 9600 baud• 8N1 • Slave ID: $\[SlaveId]

## Import parameters

Enter these values when you import the XML.

| Asked in the app | Default |
|------------------|---------|
| Modbus Slave ID  | `1`     |

## Related Documentation

- [Modbus Integration](https://taphome.com/en/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/en/docs/integration/modbus/)
- [Simple configuration using templates](https://taphome.com/en/docs/integration/modbus/templates/)
- [Modbus scripts and prefetch](https://taphome.com/en/docs/script/modbus-scripts/)
- [Modbus functions](https://taphome.com/en/docs/script/modbus/)
- [Modbus data types](https://taphome.com/en/docs/script/modbus-data-types/)

