Supported platforms and toolchains
Operating systems and architectures
Section titled “Operating systems and architectures”| Product | Windows x64 | Linux x86_64 | macOS arm64 (Apple silicon) |
|---|---|---|---|
| SECS/GEM SDK and simulator | Package (.zip) |
Package (.tar.gz) |
Development only (no package) |
| Modbus SDK and simulator | Package | Package | Package |
| OPC UA SDK and simulator | Package (.zip) |
Package (.tar.gz) |
Package (.tar.gz) |
| Virtual serial ports | MSI (port driver) | .deb (DKMS kernel module, amd64 and arm64) |
Pseudo terminal mode |
Docs CLI (pdcomm-docs) |
Supported | Supported | Supported |
macOS is provided for development and testing. Run your final tests on the operating system and architecture you deploy to, and don’t assume that a result on one platform holds on another.
Build tools
Section titled “Build tools”| Item | Requirement |
|---|---|
| CMake | 3.20 or later; 3.21 or later for the OPC UA examples |
| C/C++ standards | C11 and C++14; C++17 for the Modbus and OPC UA examples |
| Windows compiler | MSVC (x64) from Visual Studio 2022. For the MFC helpers, install Visual Studio’s MFC component. |
| Linux compiler | GCC (g++). Customer packages are verified on Ubuntu 24.04. |
| macOS compiler | Xcode Command Line Tools (Apple clang) |
Build with tools for the same architecture as the package, such as the x64 developer command prompt on Windows. Don’t mix Windows x64 DLLs, Linux libraries, and arm64 libraries.
| Binding | Target framework | What you need |
|---|---|---|
SECS/GEM (PDComm.dll) |
net10.0 |
The .NET 10 runtime; the .NET 10 SDK to build it yourself |
Modbus (PDComm.Modbus) |
net8.0 |
The .NET 8 runtime and a .NET SDK that builds net8.0 |
OPC UA (PDComm.OpcUa.dll) |
net8.0 |
The .NET 8 runtime and a .NET SDK |
Check the installed runtimes with dotnet --list-runtimes and the SDKs with dotnet --list-sdks. The packages don’t include .NET. You reference the bindings as assemblies or source projects in the SDK folder, not as NuGet packages.
- The simulator GUIs are built with Qt 6, and the simulator packages include the Qt libraries and plugins they need.
- The Qt helper headers and examples for Modbus and OPC UA use Qt 6 Core. Qt isn’t included for them; you build with your own Qt and its license.
OpenSSL
Section titled “OpenSSL”Modbus/TCP Security and OPC UA use OpenSSL 3. Packages that use OpenSSL include the OpenSSL 3 runtime in their lib/ folder. To create OPC UA certificates yourself, you need the OpenSSL 3 command-line tool.
- Python 3, for some example helper scripts and for
python3 -m http.serverto open the offline docs. - To build the Linux virtual serial driver,
dkmsand the headers of the running kernel.