This repository contains server extensions that showcase many features of the server extension API, as well as various aspects of the extension-server interaction.
Here is a list of all sample extensions:
- NetworkTime
- RandomValue
- Diagnostics
- InterExtensionCommunication
- MinimalAuthentication
- CustomUserManagement
- EventSystem
- EventListening
- ConfigListening
- DynamicSymbols
- ErrorHandling
- LetsEncrypt
The documentation for the API can be found in the Beckhoff Information System.
If the TE2000-HMI-Engineering is installed on your system, the documentation is also available at this path:
C:\TwinCAT\Functions\TE2000-HMI-Engineering\Infrastructure\TcHmiServer\docs\TcHmiSrvExtNet.Core.Documentation.chm
Our suggestion is to start with the NetworkTime or the RandomValue sample. Both are relatively short but contain many of the most commonly used features: Registering listeners, handling symbol requests, storing settings in the extension configuration.
Every extension can define its own set of error codes. The ErrorHandling showcases how this should be implemented.
The HMI server generates a configuration page for every server extension. If you want to display additional status information on your extension's configuration page, have a look at the Diagnostics sample.
- MinimalAuthentication: If you want to extend the authentication system of the HMI server, this sample extension is the best starting point.
- CustomUserManagement: A more realistic implementation of a user management extension that supports adding, removing, renaming, as well as enabling and disabling users.
- EventSystem: Use this sample as a starting point if you want to write an extension that sends messages or raises alarms.
- EventListening: If your server extension is going to listen for messages and alarms from other extensions or the HMI server, take a look at this sample.
- InterExtensionCommunication: This sample will give you an understanding of how multiple extensions can interact with each other, and with the HMI server.
- ConfigListening: If your server extension wants to listen for changes to its configuration, take a look at this sample.
- DynamicSymbols: All other samples provide a fixed list of symbols that clients can use to interact with the extension. This sample demonstrates how an extension can provide a dynamic list of symbols that changes at runtime.
- LetsEncrypt: This server extension generates an ssl certificate with Let's Encrypt.
Descriptions of small blocks of reusable code that showcase concepts or facilitate the development of a server extensions.
The following components must be installed to build the samples:
-
.NET Core SDK 3.1 or higher
-
Visual Studio 2019 version 16.4 or higher (see Install .NET on Windows for details)
Please also make sure that the required workloads for .NET development are installed.
-
TE1000 TwinCAT 3 Engineering version 3.1.4024.0 or higher
-
TE2000 TwinCAT 3 HMI Engineering version 1.12.746.0 or higher
-
TF2200 TwinCAT 3 HMI Extension SDK (standard or trial license)