ADS Server Interface
Der ADS-Server des HMI-Servers
Wenn der HMI-Server als Dienst gestartet wird, öffnet der Service Manager einen ADS-Server an Port 19800. Dieser ADS-Server kann verwendet werden, um den Status von HMI-Server-Instanzen, die vom Service Manager verwaltet werden, zu ermitteln und abzurufen.
Index Groups und Index Offsets
![]() | Read-Write Requests Der Wert "RW" in der Spalte "Zugriff" zeigt an, dass für diese Index Group/Index Offset-Kombination nur Read-Write Requests unterstützt werden. Alle Index-Offsets der Index Group |
Die folgende Tabelle enthält alle unterstützten Index-Groups:
Index Group | Name | Beschreibung | Anmerkungen |
---|---|---|---|
0x00000001 | INDEXGROUP_SERVERSTATES | Enthält Index-Offsets für den Zustand der verwalteten Server-Instanzen. |
|
0x00000002 | INDEXGROUP_INSTANCES | Enthält Index-Offsets, die den Zugriff auf die Namen der verwalteten Server-Instanzen ermöglichen. |
|
Die folgende Tabelle enthält alle unterstützten Index-Offsets für die Index-Group INDEXGROUP_SERVERSTATES
:
Index Group | Index Offset | Zugriff | Datentyp | Offset-Name | Beschreibung |
---|---|---|---|---|---|
0x00000001 | 0x00000001 | RW | W: STRING R: STRING | INDEXOFFSET_SERVERSTATE_JSON | Der vollständige Status einer konkreten verwalteten Server-Instanz als JSON-Objekt. |
0x0000001 | 0x00000002 | RW | W: STRING R: STRING | INDEXOFFSET_SERVERSTATE_ARCHITECTURE | Der Name der Architektur, auf der eine konkrete verwaltete Server-Instanz ausgeführt wird. |
0x00000001 | 0x00000003 | RW | W: STRING R: BOOL | INDEXOFFSET_SERVERSTATE_CREATOR_MODE | True, wenn die verwaltete Server-Instanz ein Engineering-Server ist (mit "--creator" gestartet). |
0x00000001 | 0x00000004 | RW | W: STRING R: UINT64 | INDEXOFFSET_SERVERSTATE_PID | Die Prozess-ID einer konkreten verwalteten Server-Instanz. |
0x00000001 | 0x00000005 | RW | W: STRING R: HMIVERSION | INDEXOFFSET_SERVERSTATE_PRODUCT_VERSION | Die Produktversion einer konkreten verwalteten Server-Instanz. |
0x00000001 | 0x00000006 | RW | W: STRING R: STRING | INDEXOFFSET_SERVERSTATE_PROJECT_NAME | Der konfigurierte Projektname einer konkreten verwalteten Server-Instanz. |
0x00000001 | 0x00000007 | RW | W: STRING R: HMIVERSION | INDEXOFFSET_SERVERSTATE_PROJECT_VERSION | Die konfigurierte Projektversion einer konkreten verwalteten Server-Instanz. |
0x00000001 | 0x00000008 | RW | W: STRING R: BOOL | INDEXOFFSET_SERVERSTATE_PUBLISH_IN_PROGRESS | True, wenn ein Projekt auf der konkreten verwalteten Server-Instanz veröffentlicht wird. |
0x00000001 | 0x00000009 | RW | W: STRING R: BOOL | INDEXOFFSET_SERVERSTATE_SERVICE_MODE | Immer True, denn alle verwalteten Server-Instanzen werden vom Service Manager gestartet. |
0x00000001 | 0x0000000A | RW | W: STRING R: STRING | INDEXOFFSET_SERVERSTATE_SERVICE_NAME | Der eindeutige Instanz-Name einer konkreten verwalteten Server-Instanz. Das ist ziemlich nutzlos, weil man es wissen muss, um es zu anzufordern. |
0x00000001 | 0x0000000B | RW | W: STRING R: INT32 | INDEXOFFSET_SERVERSTATE_STATE | Der Betriebszustand einer konkreten verwalteten Server-Instanz. |
0x00000001 | 0x0000000C | RW | W: STRING R: HMIVERSION | INDEXOFFSET_SERVERSTATE_VERSION | Die Version einer konkreten verwalteten Server-Instanz. |
0x00000001 | 0x0000000D | RW | W: STRING R: UINT8[n] | INDEXOFFSET_SERVERSTATE_ENDPOINTS | Die Anzahl der zurückgegebenen Strings als UINT32, gefolgt von allen konfigurierten Endpunkten einer konkreten verwalteten Server-Instanz, die jeweils durch ein 0x00-Byte getrennt sind. |
0x00000001 | 0x0000000E | RW | W: STRING R: UINT8[n] | INDEXOFFSET_SERVERSTATE_FORCEAUTHENDPOINTS | Die erzwungenen Authentifizierungsendpunkte einer konkreten verwalteten Server-Instanz. |
0x00000001 | 0x0000000F | RW | W: STRING R: STRING | INDEXOFFSET_SERVERSTATE_SERVERTIME | Der aktuelle ISO-8601-Zeitstempel einer konkreten verwalteten Server-Instanz. |
0x00000001 | 0x0000001F | RW | W: STRING R: INT64 | INDEXOFFSET_SERVERSTATE_SERVERTIME_NS | Der aktuelle Zeitstempel einer konkreten verwalteten Server-Instanz in Nanosekunden seit der Unix-Epoche. |
Die folgende Tabelle enthält alle unterstützten Index-Offsets für die Index-Group INDEXGROUP_INSTANCES
:
Index Group | Index Offset | Zugriff | Datentyp | Offset-Name | Beschreibung |
---|---|---|---|---|---|
0x00000002 | 0x00000001 | R | STRING | INDEXOFFSET_INSTANCE_NAMES_JSON | Die Namen der verwalteten Server-Instanzen in Form eines JSON-Arrays von Strings. |
0x00000002 | 0x00000002 | R | UINT8[n] | INDEXOFFSET_INSTANCE_NAMES | Die Anzahl der zurückgegebenen Strings als UINT32, gefolgt von den Namen der verwalteten Server-Instanzen, die jeweils durch ein 0x00-Byte getrennt sind. |
Der Typ HMIVERSION
Normalerweise verwendet ADS dreiteilige Versionsnummern, die aus einer Hauptversion, einer Revisionsnummer und einer Buildnummer bestehen. Die TwinCAT HMI verwendet stattdessen vierteilige Versionsnummern. Um dieses Problem zu lösen, wurde der Typ HMIVERSION
eingeführt. Er wird von Anfragen an die folgenden Index Group/Index Offset-Kombinationen zurückgegeben:
INDEXGROUP_SERVERSTATES:INDEXOFFSET_SERVERSTATE_PRODUCT_VERSION
INDEXGROUP_SERVERSTATES:INDEXOFFSET_SERVERSTATE_VERSION
INDEXGROUP_SERVERSTATES:INDEXOFFSET_SERVERSTATE_PRODUCT_VERSION
INDEXGROUP_SERVERSTATES:INDEXOFFSET_SERVERSTATE_PROJECT_VERSION
Typdefinition in Strukturiertem Text (ST):
TYPE HMIVERSION :STRUCT one : UDINT;
two : UDINT;
three : UDINT;
four : UDINT;
END_STRUCTEND_TYPE
Typdefinition in C:
struct HMIVERSION
{
uint32_t one;
uint32_t two;
uint32_t three;
uint32_t four;
};
Beispiel für das JSON-Objekt, das von INDEXGROUP_SERVERSTATES:INDEXOFFSET_SERVERSTATE_JSON zurückgegeben wird
{
"architecture": "win-x64",
"creatorMode": false,
"endpoints": ["http://127.0.0.1:59150"],
"forceAuthEndpoints": [],
"pid": 31756,
"productVersion": "0.0.0.0",
"projectName": "",
"projectVersion": "",
"publishInProgress": false,
"serviceMode": true,
"serviceName": "ServerInstanceOne",
"state": 1,
"version": "0.0.0.0"
}
Beispiel für das JSON-Array, das von INDEXGROUP_INSTANCES:INDEXOFFSET_INSTANCE_NAMES_JSON zurückgegeben wird
["ServerInstanceOne", "ServerInstanceTwo"]