> ## Documentation Index
> Fetch the complete documentation index at: https://wiki.codeandcompile.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Advantech ADAM-250PN Remote I/O

> Your companion guide to the ADAM-250PN deep-dive: why remote I/O beats cabinet I/O, M12 wiring, built-in diagnostics, PROFINET in TIA Portal, Modbus TCP into Node-RED, and MQTT to the cloud, all from

## Stop wiring everything into the cabinet.

In a classic setup, every sensor wire starts on the machine and ends up in the control cabinet. One sensor, one cable, all the way back. Multiply that by 50 or 200 sensors, and you get hours of wiring, kilos of copper, and one very unhappy person doing the troubleshooting.

The **Advantech ADAM-250PN** flips that around. It's a rugged **IP-rated remote I/O module** that you mount **directly on the machine**, and you run **one network cable** back instead.

> [!TIP]
>
> Even better: it speaks **PROFINET and Modbus TCP at the same time**, so your **Siemens PLC controls the I/O while an edge device reads the same I/O for the cloud**, with no gateway in between.

This article is your companion guide to the full video. Here you'll find the hardware, wiring, diagnostics, the live-demo architecture, and every step to rebuild this on your own bench.

## The Full Video

[YouTube video player](https://www.youtube.com/embed/jCwVA5uPpss)

## **Why Classic Modular PLC I/O Holds You Back**

Let's be fair: modular PLC I/O has served us well for decades. But it comes with four limitations that don't fit how modern factories want to work.

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/AVgt2ILUleJ-6Ioq/images/image-146.png?fit=max\&auto=format\&n=AVgt2ILUleJ-6Ioq\&q=85\&s=37b0671a8b937b237309724fc8e1fa9e)

1. **Locked inside the enclosure.** The cards need a cabinet, a DIN rail and protection from the environment. They can't live on the machine.
2. **Separate cards for inputs and outputs.** Need two more outputs? Buy another card. More part numbers, more spares on the shelf.
3. **Talks only to your PLC.** Your IT team, your dashboard, your cloud are locked out.
4. **The expensive one.** Want the data out anyway? Now you're buying a gateway, an OPC UA license, extra hardware and somebody's time to set it up.

None of this is broken. It just takes more time and money than it needs to.

## The New Approach: I/O on the Machine

Instead of every sensor wire running back to the cabinet, you mount a **remote I/O unit directly on the machine**, for example, one module per conveyor section. Power (24 VDC) and PROFINET are **daisy-chained** from module to module, and only **one cable goes back to the PLC**. Adding another conveyor? Bolt on another module and plug it into the chain.

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/AVgt2ILUleJ-6Ioq/images/image-147.png?fit=max\&auto=format\&n=AVgt2ILUleJ-6Ioq\&q=85\&s=9e8204c70e9ea5523f09a8fdbf1d12bb)

> [!TIP]
>
> **What you gain:**
>
> * **Easily scalable**: add a module, extend the chain
>
> * **Rugged and reliable**: built to sit on the machine, not in a cabinet
>
> * **Protocol versatility**: PROFINET and Modbus TCP/IP on the same module
>
> * **User-friendly operation**: M12 plug-and-play wiring, configuration in software

## The Hardware

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/vyZWkkrmhHGreXPC/images/image-149.png?fit=max\&auto=format\&n=vyZWkkrmhHGreXPC\&q=85\&s=f7adcd82039f70915a876d944c0ff7d2)

Here's what matters on the module:

* **2 network ports (E1/E2)** on top for PROFINET or Modbus TCP, so you can daisy-chain modules.
* **8 M12 ports (X1–X8)**, each carrying **two channels**: **16 channels in total**.
* **Every channel can be a digital input OR a digital output.** You decide per channel in software. No separate input and output cards: one part number covers 16 DI, 8 DI + 8 DO, 10 DI + 6 DO, whatever your machine needs.
* **Built-in 24 V sensor supply on every port**: sensors are powered straight from the M12 cable, no extra PSU in the field.
* **Two power groups:** ports X1–X4 run on **sensor power (Us, 1L core)**, ports X5–X8 on **actuator power (Ua, 2L core)** for higher loads.
* **2 power ports** at the bottom.

<table><thead><tr><th>Port</th><th>Channels</th><th>Power group</th></tr></thead><tbody><tr><td>X1</td><td>DIO 0 / DIO 8</td><td>Us</td></tr><tr><td>X2</td><td>DIO 1 / DIO 9</td><td>Us</td></tr><tr><td>X3</td><td>DIO 2 / DIO 10</td><td>Us</td></tr><tr><td>X4</td><td>DIO 3 / DIO 11</td><td>Us</td></tr><tr><td>X5</td><td>DIO 4 / DIO 12</td><td>Ua</td></tr><tr><td>X6</td><td>DIO 5 / DIO 13</td><td>Ua</td></tr><tr><td>X7</td><td>DIO 6 / DIO 14</td><td>Ua</td></tr><tr><td>X8</td><td>DIO 7 / DIO 15</td><td>Ua</td></tr></tbody></table>

## Wiring the I/Os

### Wiring an input (Sink / NPN)

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/vyZWkkrmhHGreXPC/images/image-150.png?fit=max\&auto=format\&n=vyZWkkrmhHGreXPC\&q=85\&s=28116c402103f22315c40a6916d4f7b0)

* **M12 connection**: most sensors today ship with an M12 connector, so you plug them straight in.
* **IEC 61131-2 Type 3, sink (NPN) type** inputs:
  * Logic 0: **0–5 V**
  * Logic 1: **11–30 V**
* On **X1**: **pin 1 = Us (+24 V)**, **pin 4 = CH0 (DIO 0)**, **pin 2 = CH8 (DIO 8)**. One M12 cable can bring in two signals.
* Examples: switches, photoelectric sensors.

### Wiring an output (Source type)

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/vyZWkkrmhHGreXPC/images/image-151.png?fit=max\&auto=format\&n=vyZWkkrmhHGreXPC\&q=85\&s=17f63bee9f6fb73481325f45a0697098)

* **Source-type digital outputs**: the module provides the 24 V to the load.
  * **Us group: 0.5 A per channel**
  * **Ua group: 2 A per channel** (solenoid valves, relays)
* On **X2**: **pin 4 = DIO 1**, **pin 2 = DIO 9**, **pin 3 = Us GND** (common to both outputs).
* **Per-channel short-circuit and diagnostic protection**: a shorted load costs you one channel, not the whole module.
* Examples: indicator lamps, tower lights, valves, relays.

## Built-in Diagnostics

The module tells you **which channel** failed and how, via LEDs and the network, so your PLC or dashboard can react.

* **Digital inputs:** wire-break detection
* **Digital outputs:** over-current, short to ground / short to power
* **Power:** over-voltage, under-voltage, over-current

You can also monitor and configure everything in the free **Advantech I/O Module Utility**: scan the network, find the module by IP, set each channel to DI or DO, watch live I/O states and read the diagnostics (for example `Ch2: Wire-Break Fault`).

## The Live Demo Architecture

The core idea of the demo: **the PLC controls, the edge reads.**

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/vyZWkkrmhHGreXPC/images/image-152.png?fit=max\&auto=format\&n=vyZWkkrmhHGreXPC\&q=85\&s=f51246a243ae6617105183c36f4b2df5)

> [!NOTE]
>
> **Photoelectric sensors + input switches + tower light** → **ADAM-250PN** → **PROFINET** → **Siemens S7-1500 (CPU 1516)** reads inputs and writes outputs
>
> In parallel: **ADAM-250PN** → **Modbus TCP (read-only)** → **reComputer 2100 edge device (Node-RED)** → **MQTT** → **HiveMQ Cloud**

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/vyZWkkrmhHGreXPC/images/image-153.png?fit=max\&auto=format\&n=vyZWkkrmhHGreXPC\&q=85\&s=a1dd0c2b4fc7efb2fd340a2568f5966c)

> [!WARNING]
>
> The IoT side **only reads**. It never touches the outputs. That keeps the OT team (deterministic control) and the IT team (data access) happy at the same time.

## Demo 1: PROFINET Setup in TIA Portal

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/vyZWkkrmhHGreXPC/images/image-154.png?fit=max\&auto=format\&n=vyZWkkrmhHGreXPC\&q=85\&s=141aa228d6b82476694477be14f651cb)

1. **Download the GSDML file** for the ADAM-250PN from the Advantech product page (Technical downloads). The latest firmware is there too.
2. In TIA Portal: **Options → Manage general station description files (GSD)** → install the GSDML.
3. In the **hardware catalog**, search for **ADAM**, then drag the **ADAM-250PN** into the network view.
4. Assign it to the PLC: click **Not assigned** → **PLC\_1.PROFINET interface\_1**.
5. Set the **IP address** in the device properties, and check the **PROFINET device name**. It must match the name on the device; otherwise, the PLC can't connect.
6. Open the device view → **16DIO module → General parameters** and set the **operating mode** of each channel (DI or DO). Here you can also enable diagnostics and input delays.
7. Write your **PLC tags** and a small program, download, and go online.

> [!NOTE]
>
> In the demo, channels **0–3 and 8–11 are inputs**, channels **4–7 and 12–15 are outputs**: 8 DI + 8 DO from one module.

### I/O addressing explained

The module occupies **2 input bytes and 2 output bytes** (address 0–1). Channels 0–7 map to byte 0, channels 8–15 to byte 1:

| Channel | Address (input) | Address (output) |
| :-: | :-: | :-: |
| 0 – 7 | %I0.0 – %I0.7 | %Q0.0 – %Q0.7 |
| 8 – 15 | %I1.0 – %I1.7 | %Q1.0 – %Q1.7 |

**Demo tags as an example:**

| Tag | Channel | Address |
| :-: | :-: | :-: |
| Sensor 0 | 0 | %I0.0 |
| Sensor 1 | 1 | %I0.1 |
| Switch 1 | 2 | %I0.2 |
| Switch 2 | 10 | %I1.2 |
| Green indicator | 4 | %Q0.4 |
| Red indicator | 12 | %Q1.4 |

> [!NOTE]
>
> An input channel still "occupies" its bit in the output byte and vice versa. Always count by **channel number**, not by "the n-th input".

> [!NOTE]
>
> The demo logic: **Sensor 0 AND Sensor 1 → green indicator**, **Switch 1 AND Switch 2 → red indicator**. Two networks, no rocket science.

## Demo 2: Modbus TCP + Node-RED Dashboard

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/vyZWkkrmhHGreXPC/images/image-155.png?fit=max\&auto=format\&n=vyZWkkrmhHGreXPC\&q=85\&s=d747aa86f800b76c7f8d8ccbd783d639)

While the PLC is running, read the same module over **Modbus TCP** without stopping the PLC.

1. In the **Advantech I/O Module Utility**, check the **Modbus** tab. **PROFINET and Modbus are both enabled by default.** You can disable either if you like.
2. Read the **coils** in a Modbus simulator, or from your edge device with Node-RED.
3. In Node-RED, use a **Modbus Read** node: module IP, port **502**, **coil status**, address **0**, quantity **32**.
4. Split the result with a small function node: coils 0–15 are inputs, 16–31 are outputs, and drive the dashboard LEDs.

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/vyZWkkrmhHGreXPC/images/image-158.png?fit=max\&auto=format\&n=vyZWkkrmhHGreXPC\&q=85\&s=2ae6db4cf95509ff82d0b56d10a5fe37)

| Modbus address | Type | Mode | Description |
| :-: | :-: | :-: | :-: |
| 00001 – 00016 | Bit | DI | DI 0 – DI 15 |
| 00017 – 00032 | Bit | DO | DO 0 – DO 15 |

The result: **flip a switch on the bench and in TIA Portal, the utility and the Node-RED dashboard all update at the same moment.** One module, two masters, no gateway.

## Demo 3: Node-RED → MQTT (Cloud)

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/vyZWkkrmhHGreXPC/images/image-156.png?fit=max\&auto=format\&n=vyZWkkrmhHGreXPC\&q=85\&s=6dc0f0431d24cc6ef9ed40aad732855c)

The module doesn't publish MQTT itself, so the edge device does it:

1. **Node-RED polls the module** (Modbus Read, see above).
2. A **filter node** (report by exception) only passes values that **changed**, so you don't spam the broker.
3. A **function node** formats the payload and sets one topic per signal, e.g. `lab/adam250pn/DI/0`.
4. An **MQTT out** node publishes to **HiveMQ Cloud** (broker URL, username, password).
5. Open the **HiveMQ web client** or MQTT Explorer and watch `true` / `false` arrive live as you trigger a sensor.

From a sensor on the machine, through a PLC, to the cloud, all **without touching the PLC code**.

## Source Code & Resources

> [!TIP]
>
> **TIA Portal project** (ADAM-250PN configuration + demo logic):
>
> > [card] [Advantech\_250PN\_demo.zap18](https://raw.githubusercontent.com/Code-and-Compile/wiki-docs/main/wiki/.gitbook/assets/Advantech_250PN_demo.zap18)
>
> **Node-RED flow export** (Modbus read → dashboard → MQTT publish):
>
> > [card] [Advantech 250-PN demo.json](https://raw.githubusercontent.com/Code-and-Compile/wiki-docs/main/wiki/.gitbook/assets/Advantech%20250-PN%20demo.json)
>
> **GSDML file, firmware, and manual:** [Advantech ADAM-250PN product page](https://bit.ly/4rXPZFi)

**Quick-reference details from the demo:**

* Modbus TCP port: `502`
* Coils `0–15` = DI 0–15, coils `16–31` = DO 0–15 (Node-RED uses 0-based addresses)
* PLC: Siemens S7-1500, CPU 1516-3 PN/DP, TIA Portal
* Edge device: reComputer 2100 running Node-RED
* Broker: HiveMQ Cloud

> [!WARNING]
>
> **Gotchas:**
>
> * **PROFINET device name:** If the PLC doesn't connect, assign the device name online in TIA Portal. It must match the name in your project.
> * **Keep the edge read-only.** Don't let Modbus write outputs the PLC also controls, or the two masters will fight over the same channel.
> * **Use a filter (RBE) node** before MQTT. Polling without it publishes every cycle.

## Where Does This Make Sense?

![Advantech ADAM-250PN Remote I/O](https://mintcdn.com/code-and-compile/vyZWkkrmhHGreXPC/images/image-157.png?fit=max\&auto=format\&n=vyZWkkrmhHGreXPC\&q=85\&s=6b49bdcc5d3e546dea5d9d2d5b7f08cc)

Anywhere the machine is **big, rough, or spread out**:

* **Harbor tower cranes**: the cabinet is 50 meters away from the sensors.
* **Mining infrastructure**: conveyors covered in dust and vibration.
* **Oil & gas**: pipelines spread across huge sites.
* **Railway wayside equipment**: out in the weather, far from any control room.

## The Verdict

The ADAM-250PN does three things really well: it gets the **I/O out of the cabinet and onto the machine**, it gives you **16 channels that can be input or output, and it supports PROFINET for the PLC and Modbus TCP for the edge at the same time**. Add diagnostics that tell you exactly what broke, and it's a strong option for any distributed machine or IIoT retrofit.

## Where to Buy

The ADAM-250PN is available online at **IoTMart**, Advantech's official marketplace:

* [Advantech IoT Mart](https://www.iotmart.com/en-eu/en/product-details?productSku=01tfS000000Lf1oQAC\&utm_source=linkedin\&utm_medium=paid_social\&utm_campaign=2026_adam-250Pn\&utm_content=rajvir_singh)
* Learn more: [advantech.com/en-eu](https://www.advantech.com/en-eu)

> [!NOTE]
>
> This review was sponsored by **Advantech** and **IoTMart**. All opinions are my own.

## Key notes:

> [card] [Canva presentation](https://canva.link/fro3sxnol9dydsr)
>
> canva.link

## Work With Me

I regularly test **industrial automation and IIoT devices**. If you'd like me to **review your product** or showcase it in my courses and YouTube channel:

Email: [rajvir@codeandcompile.com](mailto:rajvir@codeandcompile.com) or drop me a message on [LinkedIn](https://www.linkedin.com/in/singhrajvir/)


## Related topics

- [Smart Devices](https://wiki.codeandcompile.com/product-reviews/smart-devices/index.md)
- [Remote App Deployment](https://wiki.codeandcompile.com/product-reviews/smart-platforms/wago/remote-app-deployment.md)
- [thin-edge.io](https://wiki.codeandcompile.com/product-reviews/smart-platforms/thin-edge.io.md)
- [Analog or Digital Signal to IO-Link](https://wiki.codeandcompile.com/product-reviews/smart-devices/analog-or-digital-signal-to-io-link.md)
- [Snap Signal- Bridge OT with IT](https://wiki.codeandcompile.com/product-reviews/smart-devices/snap-signal-bridge-ot-with-it.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.