SQL SERVER · PLC & WinCC LOGGING · PYTHON pyodbc / pandas · EXCEL, PDF & DASHBOARDS
A complete reporting course for automation engineers who are asked for production numbers and have nowhere to get them. Structure a SQL Server database for plant data and write the DDL, DML, DCL and TCL scripts that run it. Fill it from the PLC, from WinCC with ADODB and over OPC UA. Then work the data in Python with pyodbc and pandas and deliver formatted Excel and PDF reports by email on a schedule, ending with a KPI dashboard the plant will actually use.
Classroom day batches · Online 7:30 PM–9:00 PM · Sunday 11:00 AM–5:00 PM
See the database, scripting and reporting tools used at each stage of the SQL reporting path. Select a module to view exactly what you will work with.
Training progression: Module 01 builds the database and the SQL scripting behind it, Module 02 fills it with real PLC and SCADA data, Module 03 turns those records into results with pyodbc and pandas, and Module 04 delivers formatted Excel and PDF reports by email on a schedule, plus the KPI dashboard.
View Detailed Reporting Training Contents →The reporting course is organised as four practical modules covering 23 hands-on topics. Every topic below is a written guide with working script you can open before or after the session — from database structure and SQL scripting through PLC and WinCC logging to Python analysis and automated Excel, PDF and dashboard output.
Start with the database itself. Learn how plant data should be structured, then write the four script families an automation engineer actually needs — build the schema, move the data, control access and protect transactions.
What a SCADA or PLC engineer needs from SQL Server and what can be ignored: tables, queries, joins and the habits that keep a plant database fast.
View training topic →02Choose the right data type for tag values, timestamps and batch IDs, and set primary and foreign keys so reports never return duplicated rows.
View training topic →03Create and alter databases, tables, indexes and constraints with repeatable scripts instead of clicking through a wizard.
View training topic →04Insert, select, update and delete plant records, with joins, grouping and the aggregate queries every shift report is built on.
View training topic →05Grant and revoke rights so the SCADA account, the reporting account and the IT team each have exactly the access they should.
View training topic →06Commit, rollback and savepoints — how to keep a logging or batch write consistent when something fails halfway.
View training topic →Fill the database from the plant: log PLC values, write from WinCC with ADODB, export tag data to CSV and pull values over OPC UA, so the reporting layer always has real data behind it.
The data path from controller to database: what to log, at what interval, with which timestamp, and how to avoid a table that grows out of control.
View training topic →02Build the database and table structure straight from the SCADA station, with connection strings and authentication handled correctly.
View training topic →03Insert, read, update and delete records from WinCC runtime with recordset handling and connections that are always closed cleanly.
View training topic →04Write tag values to timestamped CSV with a fixed column layout for systems that take a file rather than a database connection.
View training topic →05Collect values over OPC UA in Python and insert them into SQL Server with subscriptions, error handling and reconnection.
View training topic →Build the layer that turns records into results: connect with pyodbc, run full CRUD, read query output into pandas and clean and filter the data before anything is reported.
Connection strings, drivers and authentication, then create the database and tables the reporting scripts will use.
View training topic →02Parameterised inserts, batch writes and commit behaviour so plant values land reliably without SQL injection risk.
View training topic →03Ten working scripts covering create, read, update and delete against real plant tables, ready to adapt to your own schema.
View training topic →04Pull query results straight into a DataFrame and handle dates, nulls and large result sets without running out of memory.
View training topic →05Filter by shift and equipment, clean bad records, resample time series and produce the summary figures a report needs.
View training topic →Deliver the output people actually ask for: formatted Excel and PDF reports, automatic email delivery, unattended scheduling, a packaged EXE for the SCADA station and a KPI dashboard the plant will use.
Generate a formatted shift or production workbook with headers, column widths, number formats and multiple sheets.
View training topic →02Drive Excel directly from the SCADA station where Python is not permitted, with controlled file naming and layout.
View training topic →03Build a print-ready PDF with title block, tables and totals for the reports management wants to sign and file.
View training topic →04Attach the generated report and send it to the shift list automatically, with SMTP settings and failure handling.
View training topic →05Run the report unattended at shift end: task setup, working directory, credentials and the logging that proves it ran.
View training topic →06Package the report script as an executable so the WinCC station can trigger it without a Python installation.
View training topic →07Choose KPIs that drive action, structure the queries behind them and lay out a dashboard operators and managers both read.
View training topic →The complete path from plant to report: structuring a SQL Server database for automation data, logging PLC and WinCC values into it, working with the data in Python using pyodbc and pandas, and producing Excel and PDF reports that are emailed and scheduled automatically, plus KPI dashboard design.
No. The first module starts from tables, data types and keys, then covers DDL, DML, DCL and TCL scripting specifically for automation data, so a PLC or SCADA engineer with no database background can follow it.
SQL Server with SSMS is used throughout, and the exercises work on the free Express edition, which is enough for most machine and line-level reporting. Where a feature needs a licensed edition, such as SQL Agent scheduling, the alternative approach is shown.
Yes. WinCC VBScript with ADODB can create tables, write records and drive Excel directly from the SCADA station, which matters on plants where Python is not permitted. Both routes are taught so you can use whichever your IT policy allows.
Through the routes used in real projects: PLC to SQL Server logging, WinCC VBScript writes with ADODB, CSV export where a file exchange is required, and a Python OPC UA client that subscribes to values and inserts them.
Automated. Reports are generated from query results, formatted in Excel or PDF, emailed to a distribution list, and scheduled to run unattended at shift end with logging that proves the run happened.
Yes. The final module covers selecting KPIs that drive action, structuring the queries behind them and laying out a dashboard that both operators and managers can read, rather than a screen full of unused charts.
SCADA and PLC engineers asked to produce shift and production reports, maintenance and production teams building plant data visibility, and automation engineers moving into Industry 4.0 and data roles.
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.
Send your requirement for SQL reporting training. Mention where your plant data comes from (PLC, WinCC, OPC UA or an existing historian), which reports you have to produce, and whether Python is permitted on the station, so the labs match your plant. Online batch runs 7:30 PM to 9:00 PM on weekdays and 11:00 AM to 5:00 PM on Sunday.
Explore the four modules, the database and Python setup used in the labs, the report formats produced and classroom or online batch options.
Content reviewed: 18 September 2026