REST API · HTTP & JSON · S7-1500 WEB API · PYTHON CLIENTS & SERVICES · MES / ERP

REST API Integration Training for Industrial Automation

The course for automation engineers who are told to “just send the data to MES”. Start with HTTP methods, status codes and JSON payload design, configure and use the S7-1500 web API with token authentication, then build real clients and services in Python with timeouts, retries and logging that hold up on a plant network. Finish by writing results into SQL Server, serving dashboards, choosing honestly between REST, OPC UA and MQTT, and tracing a failed call with a packet capture.

01Module 01 — Foundation: HTTP Methods, Status Codes, JSON Payloads & Python Setup
02Module 02 — Controller Side: S7-1500 Web API, Tokens & the OPC UA Comparison
03Module 03 — Clients & Services: Consuming MES / ERP and Exposing Plant Data
04Module 04 — Integration: SQL Server, Dashboards, Protocol Choice & Troubleshooting

Classroom day batches · Online 7:30 PM–9:00 PM · Sunday 11:00 AM–5:00 PM

REST API Integration Training Contents
MODULE 01 · FOUNDATIONHTTP, REST & JSONGET / POST / PUT / DELETE · status codes · headers · JSON structure · venv · requests3 training topics
MODULE 02 · CONTROLLER SIDES7-1500 Web API & OPC UAWeb server · API users · login token · read / write tags over HTTPS · side-by-side comparison2 training topics
MODULE 03 · CLIENTS & SERVICESPython Integration Coderequests · auth & tokens · retries · timeouts · logging · SQL to JSON · module structure4 training topics
MODULE 04 · INTEGRATIONMES, ERP, Dashboards & DiagnosisSQL writes · REST vs OPC UA vs MQTT · KPI dashboards · TLS and proxy failures6 training topics
15practical topics from first HTTP call to a working plant integration
Tools · Protocols · Integration Skills

Skills & Tools You Will Use

See the tools, controller features and practical topics used at each stage of the REST API integration path. Select a module to view exactly what you will work with.

MODULE01
FOUNDATION

HTTP, REST & JSON for Automation Engineers

METHODS + PAYLOADS + SETUP

Software & Engineering Tools

Python 3VS Coderequestsvenv / pipPostman or curlJSON formatter

Core Practical Topics

Request, response and stateless designGET, POST, PUT, PATCH and DELETEStatus codes 200, 201, 400, 401, 404, 500Headers, query parameters and bodyJSON objects, arrays and nestingTimestamp format and time zone offsetDecimals, nulls and unit conventionsTesting an endpoint with curl or PostmanVirtual environment per integrationReproducing the environment on a plant server

Working Environment

Python 3Client and service code
VS CodeEditing and debugging
Postman / curlEndpoint testing
JSONThe integration contract

Training progression: Module 01 gives you the HTTP and JSON vocabulary and a working Python environment, Module 02 uses the controller’s own web API and compares it with OPC UA, Module 03 builds the client and service code that runs in production, and Module 04 connects it to MES, ERP, SQL Server and dashboards — including what to do when a call fails only on the plant network.

View Detailed REST Training Contents →
REFERENCE ARCHITECTURES · BUILT AND DEMONSTRATED IN THE SESSIONS

Three Working Routes From Plant Data to a REST API

The course builds all three end to end. The first takes data out of the controller itself with Python in the middle; the second uses the SCADA server’s own IT connectivity, with no custom code at all; the third is the energy management variant, feeding an on-site SQL Server historian and a cloud EMS platform from the same collector. Which one fits depends on whether you already run WinCC, where the data has to end up, and who will maintain the integration after handover.

01

S7-1500 → OPC UA → Python → REST API & JSON

Controller-direct. A Python service subscribes to the CPU’s OPC UA server, builds the JSON payload and posts it to the business system — the flexible route when there is no SCADA layer in between, or when the payload has to be shaped exactly to someone else’s API contract.

S7-1500 OPC UA to Python to REST API and JSON architectureAn S7-1500 with its OPC UA server enabled is read by a Python edge service using an asyncua client. The service validates and scales the values, builds a JSON payload, posts it to an MES or ERP REST endpoint over HTTPS with a bearer token, and stores the same values in SQL Server for dashboards.SIMATIC S7-1500OPC UA server enabledTyped tags, subscriptionsSignAndEncrypt + certificateopc.tcp://10.10.5.11:4840LEVEL 1 · CONTROLOPC UA · 4840monitored itemsPython edge serviceasyncua — subscribe to node IDsValidate, scale, quality flagpandas — shape the recordBuild the JSON payloadrequests — POST with retrylogging — every call recordedvenv · requirements.txtEDGE / DMZ · CONVERT ONCEJSON payload{ "line": "ML-01",  "ts": "2026-09-19T14:32+05:30",  "kWh": 148237.45,  "qty": 812, "quality": "good" }HTTPS 443 · POSTMES / ERP / cloud applicationREST endpoint over HTTPSBearer token, refreshed on expiry201 Created / 4xx handled in codePOST /api/v1/productionTDS 1433 · pyodbcSQL Server + dashboardSame record stored on siteShift, energy and batch tablesKPI dashboard and Power BIINSERT … parameterisedresponse / order data back
Data path: OPC UA subscription → validation and scaling in Python → JSON → HTTPS POST to MES or ERP, with the same record written to SQL Server for local dashboards.
Where it fitsMachines with no SCADA server, OEM lines, or an API contract that needs custom payload shaping and business logic before sending.
What you configureOPC UA server on the CPU with security policy and certificate, a Python service with asyncua, requests, pyodbc and logging, and a scheduled or always-on runtime.
StrengthsTotal control of the payload, retries and buffering; no SCADA licence involved; the same service can feed SQL Server, MQTT and REST at once.
Watch out forSomeone has to own the code. Credentials, certificate renewal and the plant’s Python runtime all become maintenance items, which is why the handover file matters.
02

WinCC Explorer V8.1 → REST API, REST Connector & MQTT

SCADA-direct. WinCC V8 ships the IT/OT connectivity in the product: a REST API that IT applications query, a REST Connector that pushes runtime and archive values outward, and MQTT publishing for broker-based consumers — all configured rather than coded.

WinCC Explorer V8.1 IT connectivity with REST API, REST Connector and MQTTControllers feed WinCC Explorer V8.1 tag management and tag logging. WinCC exposes a REST API that IT applications query, pushes runtime values outward through the REST Connector, and publishes to an MQTT broker, from where dashboards, analytics and cloud services subscribe.SIMATIC S7-1500S7 channel or OPC UATCP 102 / 4840S7-300 / S7-400S7 channelTCP 102Third-party PLCOPC UA or Modbus TCP4840 / 502CONTROL LAYERWinCC Explorer V8.1SCADA server · Level 2Tag Managementprocess, internal and structure tagsTag Logging archivesfast / slow archives, trendsIT connectivity optionsREST API — apps query WinCCREST Connector — WinCC pushes outMQTT / Cloud Connect — publishOPC UA server — typed accessHTTPS · token / basic auth · TLS 8883GET / POST tag valuesIT application · REST API (inbound)Reads tag configuration and runtime valuesWrites setpoints where permittedGET /WinCCRestService/… · HTTPSREST Connector · JSONMES / ERP endpoint · REST Connector (outbound)WinCC pushes runtime and archive valuesCyclic or event-driven, JSON bodyPOST https://mes.plant.local/apiMQTT publish · TLS 8883MQTT broker · Cloud ConnectReport by exception to many consumersTopic namespace agreed with ITmqtts://broker:8883 · plant/line1/#Consumers — dashboards, analytics, cloud and reportingPower BI · web dashboard · Python analytics · SQL Server historian · shop-floor display
Controllers feed WinCC tag management and archives; the REST API answers inbound queries, the REST Connector posts JSON outward, and MQTT publishes to the broker for dashboards, analytics and cloud services.
Where it fitsPlants already running WinCC, where the tags, archives and alarms are configured and the IT side simply needs access to them.
What you configureWinCC users and permissions for API access, HTTPS certificates, the REST Connector target endpoint and cycle, and MQTT broker address, topics and TLS credentials.
StrengthsNo custom code to maintain, archive values available as well as live tags, and the engineering stays inside the SCADA project your team already supports.
Watch out forLicensing and version. The REST Connector and MQTT options depend on your WinCC V8 licence package, so confirm what is enabled on your station before designing around it.
03

EMS project — S7-1500 → OPC UA → Python → JSON → SQL Server & cloud REST

The energy management variant, and the one customers ask for most often. Meters are read by the controller, the Python collector builds interval records with tariff windows and kWh per tonne, and the same JSON goes two ways — into a SQL Server historian on site for reports, and out to a corporate or cloud EMS platform over a REST API with a local buffer so nothing is lost when the link drops.

Energy management system architecture from meters through S7-1500 and OPC UA to Python, SQL Server and cloud REST APIEnergy meters on Modbus, HT metering and a production counter feed an S7-1500. A Python collector subscribes over OPC UA, builds interval energy records with tariff windows and kWh per tonne, writes them to SQL Server on site and posts the same JSON to a cloud or corporate EMS REST endpoint, with a local store-and-forward buffer and demand alerts.LEVEL 0 · METERINGEnergy meters (MFM)Feeders, transformers, DGCompressors, major drivesModbus RTU · RS485HT / PQ meteringIncomer, PF and demandModbus TCP · 61850 MMSProduction counterWeighbridge or line counttonnage for kWh/tonneModbusSIMATIC S7-1500Modbus master blocksInterval kWh and demand calcMeter health and quality bitsOPC UA server enabledopc.tcp://10.10.5.11:4840OPC UAPython EMS collectorasyncua — subscribe to metersBuild 1 / 5 / 15 min intervalsTag tariff window and shiftNormalise kWh per tonneValidate against meter readingBuild JSON, sign the requestpandas · pyodbc · requestsEDGE / DMZ · CONVERT ONCEStore-and-forward bufferLocal queue when the link drops{"meter":"FDR-07","kWh":148237.45, "ts":"2026-09-19T14:30+05:30"}Demand & PF alertsAlert before contracteddemand is crossedemail · SMS · dashboardHTTPS 443 · JSONCloud / corporate EMS · REST APIBearer token, retried on failureGroup energy portal or IoT platformBuffered records replayed after outagePOST /ems/v1/intervalTDS 1433 · pyodbcSQL Server on siteInterval energy and demand tablesProduction tonnage for normalisationRetention, indexing and backupINSERT … parameterisedReports & dashboardskWh per tonne, feeder-wise costShift, daily and monthly packsPower BI, Excel, PDF and emailscheduled at shift endacknowledgement → buffer cleared only after 2xxDesign rule for EMS dataTime sync (NTP) across meter, PLC, collector and server — otherwise an interval on the meter will not reconcile with the utility bill.
Metering to management: Modbus meters and production count into the S7-1500, OPC UA to the Python collector, interval JSON records written to SQL Server and posted to the cloud EMS endpoint, with demand alerts and store-and-forward buffering.
Where it fitsPlant or group energy monitoring where the site needs its own reports and head office or a cloud platform needs the same interval data — steel, heat treatment, process and multi-plant groups.
What you configureModbus master blocks and register maps per meter make, interval and demand calculation in the CPU, OPC UA server and certificates, then the Python collector with interval build, tariff tagging, SQL writes and the REST client.
StrengthsOne collection layer feeds both destinations, the site keeps its data even if the cloud contract ends, and buffered records replay automatically after a WAN outage so billing intervals stay complete.
Watch out forScaling and word order differ by meter make, and NTP time sync across meter, PLC, collector and server is not optional — both are commissioning checklist items, not afterthoughts.

How we choose on site: if WinCC is already the system of record, we use its own connectivity and keep the integration configurable. If the data has to leave a controller with no SCADA in front of it, or the payload needs logic the SCADA cannot express, the Python service is the honest answer. Either way the rule holds — convert once inside the plant, and never let a business system poll the controller directly.

REST API INTEGRATION TRAINING · DETAILED COURSE CONTENTS

Detailed REST API Training Contents — Module 01, 02, 03 & 04

The course is organised as four practical modules covering 15 hands-on topics. Every topic below is a written guide with working code you can open before or after the session — from HTTP and JSON basics through the S7-1500 web API to Python clients, services and full MES or ERP integration.

04Practical Modules
15Training Topics
S7-1500Web API Platform
REST / UA / MQTTCompared in Practice
MODULE01
FOUNDATION

HTTP, REST & JSON for Automation Engineers

Start with the vocabulary the IT side already uses: requests and responses, methods and status codes, JSON payload structure and data type mapping, and a clean Python environment to test all of it from.

03Training
Topics
HTTP + JSON + ENVIRONMENT
MODULE02
CONTROLLER SIDE

The S7-1500 Web API and When REST Belongs on the PLC

Modern Siemens controllers expose a REST web API of their own. This module configures it, reads and writes tags through it, and compares it honestly with the OPC UA route on the same CPU.

02Training
Topics
WEB API + OPC UA COMPARISON
MODULE03
CLIENTS & SERVICES

Building REST Clients and Services in Python

Write the code that actually runs in a plant: a client that consumes an MES or ERP endpoint, a small service that exposes plant data, structured into modules with real error handling and logging.

04Training
Topics
REQUESTS + STRUCTURE + LOGGING
MODULE04
INTEGRATION & DELIVERY

Plant Data to MES, ERP, Brokers and Dashboards

Complete the loop: write API results back to the database, compare REST against MQTT and OPC UA per requirement, publish to dashboards, and troubleshoot an HTTPS call when it silently fails on a plant network.

06Training
Topics
MES + ERP + DASHBOARD
Recommended learning order: Module 01 → Module 02 → Module 03 → Module 04. The sequence moves from HTTP, JSON and environment setup into the controller’s own web API, then into Python client and service development, and finishes with MES, ERP and dashboard integration, protocol choice and network-level troubleshooting.

Frequently Asked Questions About REST API Integration Training

What is a REST API and where does it fit in a plant?

REST is the request and response style used by almost every business application: a client asks an endpoint over HTTP or HTTPS and receives a JSON answer. In a plant it is the natural way to exchange records with MES, ERP, quality systems and web dashboards — production orders, material data, batch results and shift summaries.

Can a PLC really serve a REST API?

Yes on modern controllers. The S7-1500 web API is configured and used in this course: you log in for a token and then read and write tags over HTTPS. It is useful for low-rate, record-style exchange, and the course is equally clear about where OPC UA is the better choice on the same CPU.

Should I use REST, OPC UA or MQTT?

REST for request and response record exchange with business systems, OPC UA for typed and secured access to controller data, MQTT for high-rate telemetry to many consumers over an unreliable link. Most working architectures use more than one, and the course builds each so the decision comes from experience rather than a vendor slide.

Do I need to know Python before joining?

No. The first module sets up the environment and the later modules introduce the code step by step. If you have already done a Python course, you will move faster through the client and service building, but it is not assumed.

How is an API secured on a plant network?

HTTPS with valid certificates, authentication by API key or bearer token with proper expiry handling, credentials kept out of the script, and the controller never exposed directly to an outside network. The gateway or application in the DMZ holds the connection, and the zone rules are written down for the IT team.

Will API calls slow down my PLC?

They can if the design is wrong. Controllers cap concurrent sessions and every request costs CPU time, so the course covers request rate, caching and the pattern that avoids the problem entirely — a service reading the plant database rather than every consumer polling the controller.

Do we build APIs or only consume them?

Both. You consume an MES or ERP endpoint as a client, and you expose plant data as a small service so a dashboard or another system can query it. In practice most integrations need the two directions.

What if an API call works on my laptop but fails on the plant network?

That is a normal situation and it has a method: check proxy interception, TLS handshake failure, blocked ports and the actual status code returned. The final module traces exactly this with a packet capture so the answer comes from evidence rather than guesswork.

What are the batch timings for this program?

Classroom sessions run in the day batches and live online sessions run from 7:30 PM to 9:00 PM on weekdays, with a Sunday batch from 11:00 AM to 5:00 PM. Corporate and in-plant groups can request a different schedule.

Request REST API Training Syllabus, Fees & Batch Details

Send your requirement for REST API integration training. Mention the system you have to exchange data with (MES, ERP, quality or a web platform), your controller, and whether you need to consume an endpoint, expose one or both, so the labs match your integration. Online batch runs 7:30 PM to 9:00 PM on weekdays and 11:00 AM to 5:00 PM on Sunday.

Online TrainingCorporate TrainingIn-Plant TrainingProject SupportWeekend Batch
Verified learning pathway

Discuss the REST API Integration Course

Explore the four modules, the controller and Python setup used in the labs, the integration targets covered and classroom or online batch options.

Content reviewed: 18 September 2026

☎ Call WhatsApp ✉ Email Enquire Now