# Technical specifications

> Technical specifications of the IO module: digital inputs, relay outputs and what they can switch, network and Modbus details, power, environmental limits, certifications and failsafe behaviour.

Source: https://voltmasters.io/en/docs/dso-rtu/io-module/technical-specifications/

This page lists the technical data of the **IO module** used by the Voltmasters EMS: what the digital inputs accept, **what the relay outputs can switch**, and the electrical, network and environmental limits you need when designing and wiring the cabinet.

For what the IO module is and how it is configured, see [IO module](https://voltmasters.io/en/docs/dso-rtu/io-module/). For placement and cabling, see [Placement and cabling](https://voltmasters.io/en/docs/dso-rtu/io-module/placement-and-cabling/).

### At a glance

| Item | Specification |
| --- | --- |
| **Channels** | 6 digital inputs (DI) + 6 relay outputs (DO) per module |
| **Relay switching, max** | **5 A resistive / 2 A inductive per channel, at 250 VAC or 30 VDC** |
| **Contact type** | Form A (normally open) power relay, potential-free |
| **Communication** | Modbus TCP (server/slave) over Ethernet, TCP port 502 |
| **Ethernet** | 2 × 10/100 Mbps RJ45 switch ports (daisy chain), 1 MAC address |
| **Power supply** | 24 VDC nominal (12–36 VDC), 188 mA @ 24 VDC (≈ 4.5 W) |
| **Mounting** | DIN-rail or wall, 27.8 × 124 × 84 mm, < 200 g |
| **Ambient temperature** | −10 to 60 °C (standard) or −40 to 75 °C (wide-temperature model) |
| **Isolation** | 3 kVDC / 2 kVrms, field to logic |

### Relay outputs and maximum switching capacity

Each of the six outputs is a **potential-free Form A (normally open) contact** with two screw terminals of its own: `R0_NO` and `R0_C` up to `R5_NO` and `R5_C` (see [Terminal block](https://voltmasters.io/en/docs/dso-rtu/io-module/technical-specifications/#terminal-block)). There is **no NC terminal**, so the actuation modes that assume normally-closed contacts (`NC-ON`, `NC-OFF`) only describe an installation where an interposing relay provides that contact. This is the hard limit of what one output can switch:

| Parameter | Value |
| --- | --- |
| **Maximum switching current** | **5 A resistive**, **2 A inductive**, per channel |
| **Maximum switching voltage** | **250 VAC** or **30 VDC** (also rated at 110 VAC) |
| **Maximum switching power** | ≈ **1150 W at 230 VAC** or **150 W at 30 VDC** (5 A resistive) |
| Contact type | Form A (N.O.) power relay, potential-free |
| Contact resistance | 100 mΩ (max.); 30 mΩ initial |
| Breakdown voltage (open contact) | 500 VAC |
| Initial insulation resistance | 1000 MΩ (min.) @ 500 VDC |
| Isolation (field to logic) | 3 kVDC or 2 kVrms |
| Relay on/off time | 1500 ms (max.) |
| Maximum switching rate | 0.3 Hz at rated load (pulse mode) |
| Mechanical endurance | 5,000,000 operations |
| Electrical endurance | 100,000 operations @ 5 A resistive load |
| Field wiring | I/O cable max. 14 AWG (≈ 2.5 mm²), screw terminal block |

> **Warning**
>
> **These ratings are per channel, not a budget for the module, and they are switching limits, not continuous-duty design targets.** The inductive rating (2 A) is less than half the resistive one, and motors, pumps, fans, transformers, contactor coils, capacitor banks and LED drivers draw an inrush current several times their nominal current, which erodes the contacts quickly. Size on inrush, not on nominal power, and switch anything substantial through an interposing contactor.

**What you can wire directly, and what needs a contactor**

| Load | Directly on the relay output? |
| --- | --- |
| 230 VAC resistive load ≤ 5 A (≈ 1.1 kW), e.g. small heater | Yes |
| 230 VAC resistive load > 5 A (> ≈ 1.1 kW) | No, switch an interposing **contactor** |
| 400 VAC (three-phase) load, any size | No, contacts are rated **250 VAC max**; use a contactor |
| Inductive AC load ≤ 2 A (small coil, small pump) | Possible; add an RC snubber across the contact |
| Inductive AC load > 2 A (motor, fan, transformer) | No, use a contactor, sized for the load's inrush |
| DC load ≤ 30 VDC and ≤ 5 A resistive (≤ 150 W) | Yes, for inductive DC loads keep to 2 A and add a flyback diode |
| DC load above 30 VDC | No, outside the contact rating |

In practice: use the relay output as a **command contact** for switchgear (contactor coil circuit, an EPO/stop input, an enable input) rather than as the power switch of the load itself. A separate contactor also keeps the cabinet's power wiring away from the module.

> **Note**
>
> Because the contacts are **normally open**, all outputs open when the module loses power. Combined with a *de-energize-to-stop* actuation mode, losing the module's supply therefore drives the installation to its stop state on its own. Losing the **network** does not: the module holds its last relay state unless the communication watchdog is enabled. See [Emergency stop](https://voltmasters.io/en/docs/dso-rtu/io-module/emergency-stop/#safety-and-requirements).

### Digital inputs (DI)

| Parameter | Value |
| --- | --- |
| Channels | 6, sharing one common (6 points per COM) |
| Sensor type | Dry contact, or wet contact (NPN or PNP) |
| Dry contact | On = short to GND, Off = open |
| Wet contact (DI to COM) | On = 10–30 VDC, Off = 0–3 VDC |
| Input mode | Digital input or event counter |
| Counter frequency | 250 Hz (max.), counter value retained on power loss |
| Digital filtering | Software selectable filter time |
| Isolation | 3 kVDC or 2 kVrms |
| Field wiring | I/O cable max. 14 AWG (≈ 2.5 mm²), screw terminal block |

The EMS reads every input each control cycle and logs its transitions, so the contact position is always visible on the platform. It is **acted on** in exactly two places: as an [emergency-stop trigger](https://voltmasters.io/en/docs/dso-rtu/io-module/emergency-stop/#triggering-an-emergency-stop-digital-input), and as a **breaker position** that the EMS reports to the grid operator as DSO RTU telemetry. An input assigned to neither is monitoring only.

An input is never the feedback of something the EMS itself switches. The on/off state of a [controllable load](https://voltmasters.io/en/docs/device-integrations/controllable-loads/) comes from reading the **relay output** back and mapping it through that port's actuation mode, not from a digital input.

A trigger input has to read **high** in normal operation and **low** for an emergency stop. The most predictable arrangement is a **wet contact**: a normally-closed contact feeds 10–30 VDC to the input, measured against the shared COM 0 terminal, and opening that contact drops the input to 0 V. Whichever arrangement you use, verify on the platform that the input reads back as expected in both positions before relying on it.

### Terminal block

The inputs and relays share one removable 20-pin screw terminal block, numbered top to bottom:

| Pin | Signal | Pin | Signal |
| --- | --- | --- | --- |
| 1 | COM 0 | 11 | R1\_NO |
| 2 | DI0 | 12 | R1\_C |
| 3 | DI1 | 13 | R2\_NO |
| 4 | DI2 | 14 | R2\_C |
| 5 | DI3 | 15 | R3\_NO |
| 6 | DI4 | 16 | R3\_C |
| 7 | DI5 | 17 | R4\_NO |
| 8 | GND | 18 | R4\_C |
| 9 | R0\_NO | 19 | R5\_NO |
| 10 | R0\_C | 20 | R5\_C |

Each relay channel has exactly two terminals, `NO` and `C` (common), and no NC terminal. The 24 VDC supply and the ground pin sit on a separate terminal block on the top panel. Screw torque 3 lb-inch.

### Network and protocol

| Parameter | Value |
| --- | --- |
| Ethernet ports | 2 × 10/100BaseT(X) RJ45, built-in switch (daisy chain), 1 MAC address |
| Ethernet protection | 1.5 kV magnetic isolation |
| Protocol used by the EMS | **Modbus TCP** (the module is the server/slave), TCP port **502** |
| Other protocols | TCP/IP, UDP, DHCP, BOOTP, HTTP (web console), SNMPv1/v2c |
| Addressing | **Fixed (static) IP address required**; note IP, port and Modbus slave ID |
| Factory default | IP 192.168.127.254, netmask 255.255.255.0, no gateway |
| Configuration | Browser-based web console on the module's IP address |

The two Ethernet ports form a small switch, so modules can be **daisy-chained** instead of each needing its own switch port. Keep in mind that a daisy chain is a single path: a module that loses power interrupts the modules behind it.

**Default Modbus mapping**

The EMS reads and writes the module every control cycle (≈ 1 second) using the default address map:

| Data | Function code | Address |
| --- | --- | --- |
| DI value, channel 0–5 | FC 2 (read discrete inputs) | 0x0000–0x0005 (ref. 10001–10006) |
| DI value, all 6 channels in one word | FC 4 (read input registers) | 0x0030 (ref. 30049), bit 0–5 |
| DI counter value, channel 0–5 | FC 4 (read input registers) | 0x0010–0x001B (2 words per channel) |
| Relay output value, channel 0–5 | FC 1 (read), FC 5 / FC 15 (write) | 0x0000–0x0005 (ref. 00001–00006) |
| Relay output, all 6 in one word | FC 3 (read), FC 6 / FC 16 (write) | 0x0020 (ref. 40033), bit 0–5 |
| Watchdog alarm flag | FC 1 (read), FC 5 (write 1 to clear) | 0x1030 (ref. 04145) |

> **Note**
>
> Leave the module on its **default Modbus addressing**. The module also supports user-defined addressing; changing it will break the EMS integration.

### Failsafe behaviour and watchdog

| Function | Behaviour |
| --- | --- |
| **Power loss** | All relays de-energize; the normally-open contacts open. This needs no configuration: the contacts cannot stay closed without coil power. |
| **Communication loss, watchdog disabled (factory default)** | Every output **holds** the last value the EMS gave it. A controller crash or a broken network therefore changes no relay at all, as long as the module stays powered. |
| **Communication watchdog** | Optional, **disabled by default**. When enabled with a timeout, the module enters *safe mode* after that long without Modbus TCP communication. The EMS polls the module every control cycle, which keeps the watchdog satisfied while the controller is alive. |
| **Safe status per output** | Each output has its own safe state (`Hold Last`, `ON` or `OFF`), applied when the module enters safe mode. It has **no effect at all** while the communication watchdog is disabled. |
| **Safe status latch** | Once a channel has entered safe mode, its safe status stays latched until it is cleared. The EMS polls the module's watchdog alarm flag, reports it as a device error and clears it once the module is reachable again. |
| **Idle connection timeout** | The module releases an idle Modbus TCP connection after a configurable interval, freeing the socket for a new one. |

Enable the communication watchdog **and** the per-channel safe status for every output that carries an emergency stop, whatever its actuation mode. Without them, only a loss of the module's own supply drives the relay to a defined state; a controller or network failure simply leaves the relay where it was. Set the channel's safe status to the value that means stop: `OFF` for a *de-energize-to-stop* mode (`NO-ON`, `NC-OFF`), `ON` for an *energize-to-stop* mode (`NO-OFF`, `NC-ON`). With an energize-to-stop mode the watchdog is the only thing that can enforce the stop when the link is down. See [Safety and requirements](https://voltmasters.io/en/docs/dso-rtu/io-module/emergency-stop/#safety-and-requirements).

> **Danger**
>
> The module is **not a certified functional-safety device**: it carries no SIL or performance-level (PL) rating, and its relays are not safety relays. Where a rated safety circuit is required, the relay output should command a **safety relay or contactor** that provides that rating, and the safety function must be assessed against the applicable standards (for example EN 60204-1 and EN ISO 13850).

### Power supply

| Parameter | Value |
| --- | --- |
| Power input | 24 VDC nominal, 12 to 36 VDC |
| Power consumption | 188 mA @ 24 VDC (≈ 4.5 W) |
| Connection | Screw terminal block on the top panel, with ground pin |
| Earthing | Connect the ground pin to the cabinet earth |

Size the 24 VDC supply for all modules in the cabinet, and keep the emergency-stop chain in mind: if the stop relies on the module being powered, the supply is part of that chain.

### Mechanical and environmental

| Parameter | Value |
| --- | --- |
| Dimensions (W × H × D) | 27.8 × 124 × 84 mm |
| Weight | < 200 g |
| Housing | Plastic |
| Installation | DIN-rail or wall mounting |
| Operating temperature | −10 to 60 °C (standard model) |
|  | −40 to 75 °C (wide-temperature model) |
| Storage temperature | −40 to 85 °C |
| Ambient relative humidity | 5 to 95%, non-condensing |
| Altitude | Up to 4000 m |

> **Warning**
>
> The relays may malfunction in **condensing environments below 0 °C**. In unheated or outdoor cabinets, provide heating or dehumidification, and choose the wide-temperature model.

### Standards, certifications and reliability

| Item | Specification |
| --- | --- |
| Safety | UL 508 |
| EMC (EMI/EMS) | EN 61000-6-2, EN 61000-6-4, EN 55032/EN 55024, FCC Part 15 Subpart B Class A |
| Immunity | EN 61000-4-2/-4-3/-4-4/-4-5/-4-6/-4-8/-4-11 |
| Shock / vibration / freefall | IEC 60068-2-27 / IEC 60068-2-6 / IEC 60068-2-32 |
| Hazardous locations | Class I Division 2 / ATEX Zone 2 (variant-dependent, verify for the model supplied) |
| Environmental | RoHS, CRoHS, WEEE |
| MTBF | 808,744 hours (Telcordia SR-332) |

### Sizing and design notes

-   **6 in, 6 out per module.** Need more channels, or channels in another cabinet? Add a module, see [Placement and cabling](https://voltmasters.io/en/docs/dso-rtu/io-module/placement-and-cabling/).
-   **Switching latency.** The EMS re-evaluates outputs every control cycle (≈ 1 s) and the relay itself takes up to 1500 ms, so allow roughly 2.5 s from decision to contact change. The outputs are not suitable for fast or continuous cycling: the maximum switching rate is 0.3 Hz at rated load.
-   **Contact life.** 100,000 operations at full load is the electrical limit. For a load that is cycled often (a controllable load following PV surplus), the **minimum runtime per activation** setting protects the relay as much as it protects the load. See [Controllable loads](https://voltmasters.io/en/docs/device-integrations/controllable-loads/).
-   **Keep the relay a command contact.** Interposing contactors keep load current, inductive loads and 400 V circuits out of the module.
-   **One fixed IP per module**, and record IP, port and Modbus slave ID: you need them when adding the device on the platform.

### Next steps

-   [IO module](https://voltmasters.io/en/docs/dso-rtu/io-module/): adding the module on the platform and configuring its ports.
-   [Placement and cabling](https://voltmasters.io/en/docs/dso-rtu/io-module/placement-and-cabling/): placement and cabling across cabinets.
-   [Emergency stop](https://voltmasters.io/en/docs/dso-rtu/io-module/emergency-stop/): wiring and configuring a hardware emergency stop.
-   [Controllable loads](https://voltmasters.io/en/docs/device-integrations/controllable-loads/): switching an on/off load through a relay output.
