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.
Learning path
Section titled “Learning path”| 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.
Examples used in the tutorials
Section titled “Examples used in the tutorials”| 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.