NODE-RED VIDEO
Node-RED PLC Dashboard: Read Live Data and Build an Operator Page (Video)
How to read live values from a PLC or controller in Node-RED and put them on a browser dashboard, with the Modbus, OPC UA and MQTT options, and ACC Automation's dashboard lesson to follow.

A Node-RED PLC dashboard takes three pieces: a protocol node that polls the PLC (Modbus TCP, OPC UA or the Siemens S7 protocol), a few function or change nodes that turn raw values into engineering units, and dashboard widgets (gauges, charts, switches) that show them in any browser on the network. A first working version takes an afternoon.
Checked 1 October 2026. Package names and the dashboard's deprecation status come from the projects' own pages, listed under Sources.
In this lesson by ACC Automation, a live dashboard is built on top of a Node-RED flow that already reads a Solo process temperature controller over Modbus, alongside a Click PLC. The dashboard shows the process value and setpoint as text and on a two-minute chart, a switch chooses whether the setpoint comes from the PLC's analog input or from the dashboard, and a slider sets it locally. It is one of the lessons in our free Node-RED for Industrial IoT course, in the module on dashboards.
One thing to know before you start: the video installs node-red-dashboard, which serves at /ui. That package was declared deprecated on 27 June 2024. It still installs and the video's ideas carry straight over, but for a new project use FlowFuse Dashboard, which serves at /dashboard. The walkthrough below uses it.
What you will build

Step 1: install Node-RED
Node-RED runs on Node.js on Windows, Linux, macOS or a Raspberry Pi. The official instructions install it globally with npm (the npm package is node-red) or run it in Docker with port 1880 mapped. Start it, then open http://localhost:1880 in a browser to get the editor.
Step 2: choose how to talk to the PLC

Modbus TCP works with almost every PLC, drive, meter and controller made in the last 25 years, which is why the course spends two modules on it. The node-red-contrib-modbus palette gives you a Modbus-Read node for periodic polling with function codes 1 to 4, a Modbus-Write node for function codes 5, 6, 15 and 16, getters for reads on demand, and a client configuration node with a queue and reconnect logic. You will need the PLC's IP address, port 502, the unit ID and the register map. If registers are new to you, read our Modbus TCP hands-on walkthrough first; the zero-based addressing trips up most first attempts.
OPC UA is the better choice when the PLC has a server built in, as an S7-1500 does. node-red-contrib-opcua (built on node-opcua) provides client, item, browser and server nodes, so you can browse the PLC's address space and pick tags by name instead of by register number. Expect to deal with security policies and certificates. Our OPC UA explainer covers the concepts.
The Siemens S7 protocol through node-red-contrib-s7 reads S7 PLCs and LOGO! 8 directly. On an S7-1200 or S7-1500 its own documentation says you must tick "Permit access with PUT/GET" in the CPU's protection settings and switch off optimised block access for the data blocks you read, because the node speaks the basic version of the protocol. Both are security trade-offs, so agree them with whoever owns the PLC.
Step 3: poll, check, then scale
Wire your read node to a debug node before you build any screen. Poll a handful of values, say every second, and watch them in the Debug sidebar. Change a value in the PLC and make sure the matching number changes. Only then move on.
Most values arrive as raw integers. A temperature might be in tenths of a degree (so 235 means 23.5 °C), a 4-20 mA analog input might be a raw count, and a 32-bit float arrives as two 16-bit registers you need to combine in the right word order. Do the scaling in one function or change node straight after the read, so every widget downstream gets engineering units. In the video, the slider runs 0 to 1000 and represents 0.0 to 100.0 °C, the same idea in reverse.
Step 4: lay out the dashboard
Install @flowfuse/node-red-dashboard from Manage palette. FlowFuse's documentation describes four levels: a base (the URL), pages, groups on a page and widgets in a group. For a first page:
- One gauge for the most important live value, with the range and units the operator expects.
- One chart of the same value over the last ten minutes, so the operator can see a trend, not just a number.
- A text widget for the state (running, stopped, fault) coming from a PLC status word.
- One two-way widget, a switch or slider, that writes back. Read the next section before you wire it.
Deploy, then open http://localhost:1880/dashboard. Open the same address with the PC's IP from a phone on the same network; that is the moment that sells dashboards to a plant manager.
Step 5: writing back safely
The video's switch and slider write a setpoint. That is useful and also where dashboards cause trouble, because a browser is not a control panel.

The rule is that a dashboard asks and the PLC decides. Write to request bits (Start_Request, Setpoint_Request) and let the PLC program check its interlocks, clamp the value and act. Never write directly to an output or bypass a permissive. If Node-RED stops polling, the PLC should notice through a heartbeat and fall back to a safe state.
Step 6: publish onwards with MQTT
Once Node-RED holds clean, scaled values, the built-in mqtt out node can publish them to a broker such as Mosquitto, under topics like site/line1/oven/temperature. Other systems then subscribe without each one polling the PLC: a historian, a cloud service or another dashboard. This is the core of most IIoT architectures and the subject of the course's MQTT module. Our IIoT training guide shows where it fits in the bigger picture.
Common mistakes
- Polling too fast. Reading 200 registers every 100 ms loads the PLC's communication for no benefit on a screen people look at once a second.
- Off-by-one register addresses. Register 40001 is address 0 in most Modbus nodes.
- Wrong word order on 32-bit values, giving readings that are wildly wrong but plausible-looking.
- Building on the deprecated dashboard for a new project, then having to migrate later.
- Exposing the editor. By default anyone who can reach port 1880 can change the flows. Turn on admin authentication in settings.js before the PC goes near a plant network.
What to do after watching
The dashboards module ends with a practice task: build a dashboard with a gauge and a ten-minute chart for a simulated pressure, and a start/stop switch that drives a simulated pump bit through a confirmation step. You are done when the chart updates live, the switch changes the pump state only after confirmation, and the page opens from a second device on the network.
No PLC? A free Modbus simulator on the same PC works for every step above. The course's later modules connect Node-RED to Click, Productivity and BRX PLCs, a Siemens S7-1500 over OPC UA and Modbus, and an IOT2050 gateway, then log to SQL databases and send email alerts.
Learn it free
The full Node-RED for Industrial IoT course is free, with lessons from ACC Automation, Opto 22, FlowFuse, LEARNACON and others, credited on every lesson. Pair it with Industrial Communication for the protocols underneath, SQL for PLC and SCADA Engineers for logging, and OT and ICS Cybersecurity with ISA/IEC 62443 before anything goes on a live network. The three make up the IIoT and OT security path.
The certificate is optional: if you pass the final assessment and want one, it costs from US$2.99 for a beginner course. It is an EDWartens Certificate of Completion with a verification code, not a vendor qualification.
Take the free course

IIoT · Beginner · Free
Node-RED for Industrial IoT

Industrial networks · Intermediate · Free
Industrial Communication: Serial, Fieldbus, Ethernet, Modbus, PROFINET and OPC UA

Data and analytics · Beginner · Free
SQL for PLC and SCADA Engineers

Cybersecurity · Intermediate · Free
OT and ICS Cybersecurity with ISA/IEC 62443
Questions
Can Node-RED read data from a PLC?
Yes. Community palettes add the protocols: node-red-contrib-modbus for Modbus TCP and RTU, node-red-contrib-opcua for OPC UA, and node-red-contrib-s7 for Siemens S7 PLCs and LOGO! 8. Modbus TCP is the most universal; OPC UA is the better choice when the PLC has a server built in.
Which Node-RED dashboard should I use in 2026?
FlowFuse Dashboard (@flowfuse/node-red-dashboard), also called Dashboard 2.0. The original node-red-dashboard was declared deprecated on 27 June 2024; it can still be installed, but no new development is taking place. FlowFuse Dashboard serves at /dashboard by default; the old one served at /ui.
What does an S7-1200 need for Node-RED to read it?
With node-red-contrib-s7 you must enable 'Permit access with PUT/GET' in the CPU's protection settings and switch off optimised block access on the data blocks you want to read. On an S7-1500, OPC UA is an alternative that avoids both changes.
Is a Node-RED dashboard an HMI or SCADA?
It can do some of the same jobs, such as live values, trends and simple commands, and it is fine for monitoring and prototypes. It is not a safety system, and it lacks the alarm management, audit trail and redundancy of a SCADA package, so keep interlocks and permissives in the PLC.
Where does MQTT fit in a Node-RED dashboard project?
Once Node-RED has the PLC values, it can publish them to an MQTT broker with the built-in mqtt out node, so other systems (a cloud service, a historian, another dashboard) subscribe to them without polling the PLC again.
Sources
- Node-RED: Running Node-RED locally
- node-red-dashboard on GitHub (deprecation notice)
- FlowFuse Dashboard: Getting started
- Node-RED library: node-red-contrib-modbus
- Node-RED library: node-red-contrib-opcua
- Node-RED library: node-red-contrib-s7
- ACC Automation: Node-RED user interface dashboards (companion post)
Written by the EDWartens engineering team for general education. Product names are trademarks of their owners; mentioning them does not imply endorsement. Prices and terms of other providers were checked on the date shown and can change.


