🔌 IT/OT Integration

How do you connect a Siemens PLC
to Power BI?

Taking plant floor data all the way to management reports in Power BI. Complete architecture: S7 PLC → OPC UA → Node-RED → InfluxDB → Power BI, with a technical guide and alternatives.

Why connect a PLC to Power BI?

Power BI is the most widely used Business Intelligence tool in Latin American companies. The classic Industry 4.0 challenge is precisely this: production process data stays trapped on the plant floor and never reaches the management dashboards where business decisions are made.

Connecting the PLC to Power BI closes that gap: production, energy efficiency, OEE and quality KPIs appear in the same reports alongside financial and sales data.

⚠️
Important: Power BI is not a SCADA system or a Historian. It should not replace plant supervision. Its role is historical analysis and executive reporting, not control or critical real-time visualization.

Recommended architecture

Complete IT/OT stack
Siemens S7-1500 PLC (OPC UA Server) → Node-RED (OPC UA client, transformation) → InfluxDB (Historian, time series) → Power BI (InfluxDB connector or REST API)

This architecture has several advantages: the PLC is not directly exposed to the IT network, the Historian acts as a buffer and single source of truth, and Power BI can run a scheduled refresh (every 15-60 minutes) without affecting PLC performance.

Step 1: Enable OPC UA on the Siemens PLC

In TIA Portal, S7-1500 and ET200SP PLCs come with a built-in OPC UA server in recent firmware versions. The steps are:

  1. In the CPU properties, enable "OPC UA Server"
  2. Define the endpoint (port 4840 by default)
  3. Configure the security policy (recommended: Basic256Sha256)
  4. Create the Server Interfaces: drag in the DB variables you want to expose
  5. Compile and download the program
💡
S7-300 and S7-400: They do not have native OPC UA. For these PLCs, the alternative is an OPC gateway (such as Grupo Salba's OPC Server) that translates the S7 protocol to OPC UA.

Step 2: Node-RED as the OPC UA client

In Node-RED, the node-red-contrib-opcua node acts as the client and connects to the PLC's server. The configuration includes the endpoint URL, credentials and subscriptions to the nodes of interest. Node-RED receives the value changes and sends them to InfluxDB with the correct timestamp.

Step 3: InfluxDB as the Historian

Node-RED writes to InfluxDB using Line Protocol or the native HTTP client. Data is stored with a measurement (data type), tags (equipment identifiers) and fields (numeric values or strings). Data retention is configured according to the company's historical analysis needs.

Step 4: Power BI connected to InfluxDB

Power BI can connect to InfluxDB in two ways:

For executive reports with a daily or weekly refresh, both options work well. For dashboards closer to real time (15-minute refresh), the REST API is more stable.

Alternatives to consider

CaseRecommendation
Real-time visualization in the control roomGrafana (better suited than Power BI)
Automatic reports to managementPower BI with scheduled refresh
Ad hoc analysis by engineersGrafana or Jupyter Notebook with Python
Integration with SAP ERPInfluxDB → API REST → SAP Analytics Cloud
🏭
AJAY SQM project: We implemented exactly this architecture — Fatek PLCs (Modbus protocol), Node-RED, InfluxDB and Power BI — for corporate reporting. Chemical process data now appears in board reports in near real time.

Want to connect your plant to Power BI?

We implement the complete IT/OT architecture, from the PLC connection to the Power BI dashboards, with training for your team.

See Industrial Data →