Skip to content
Start free evaluation

SECS/GEM tutorials

These tutorials teach SECS/GEM with the PDComm SDK and simulator alone; you don’t need real equipment. Every step runs on one computer over the loopback address 127.0.0.1. Each page lists the background it relies on, the commands to run, the output to expect, common errors and how to clean up.

If you’re new, run the quickstart first to see one exchange end to end. If the terms are unfamiliar, start with the background.

Step Tutorial What you do
1 Set up your environment Learn the SDK bundle layout, set variables on Windows, Linux or macOS, and build the C++ and C# examples
2 First communication Run C++ and C# hosts and equipment, establish communication, switch online and offline, and connect to the simulator GUI
3 Data collection Read status variables, data variables and equipment constants; query directories and reports
4 Reports and events Define reports, link them to events and receive event reports (S6F11)
5 Alarms Send alarm reports (S5F1), enable alarms and list them
6 Remote commands Send host commands (S2F41) and enhanced remote commands (S2F49)
7 Process programs Transfer, query, verify and run unformatted and formatted process programs
8 Spooling Keep messages while communication is down and send them later
9 Automate the simulator and reproduce errors Drive the GUI simulator, headless scenarios and the MCP server, and reproduce failures on purpose
10 Diagnose failures and ask for help Turn on PDCOMM_LOG diagnostics, build a minimal reproduction and collect what support needs

Do steps 1 and 2 in order. You can take steps 3 to 8 in any order, starting with the capability you need.

Example Location Language
Tutorial peers examples/tutorial in the SDK C++, C#
.NET capability demos dotnet/ in the examples bundle C#
Qt integration examples qt/ in the examples bundle C++ (Qt 6)
Diagnostics logging examples diagnostics/ in the examples bundle C++, C#

The examples walk through SEMI message flows. When you connect real equipment, build each message to the equipment’s interface specification.