TwinCAT System Service

Der TwinCAT System Service bietet für TwinCAT Server ein Interface zu Windows NT Diensten an. Derzeit wird Dateizugriff und "System Shutdown" unterstützt. Nähere Erläuterungen zu ADS Diensten sind den Dokumentationen TwinCAT ADS DLL bzw. TwinCAT ADS OCX zu entnehmen.

Dateizugriff

Über ADS-Indexgroup und ADS-Indexoffset können Dateien geöffnet, geschlossen, gelesen und geschrieben werden. Die Indexgroups bzw. Indexoffsets werden im Folgenden beschrieben.

Vorgang

Beschreibung

Datei öffnen/erzeugen

 

Indexgroup:

SYSTEMSERVICE_OPENCREATE= 100

Indexoffset:

SYSTEMSERVICE_OPENGENERIC = 1

Die angegebene Datei wird für lesenden und schreibenden Zugriff geöffnet. Falls die Datei nicht existiert, wird eine Datei erzeugt und geöffnet. Ist die Datei vorhanden, so wird sie geöffnet und der Inhalt wird gelöscht.

ADS Dienst: ADS Write

Parameter: Länge des Pfadnamens

Pfadname als Character String

Return Wert:

Bei Erfolg: File Handle zur geöffneten Datei

Im Fehlerfall: -1

Datei zum Lesen öffnen

 

Indexgroup:

SYSTEMSERVICE_OPENREAD = 101

Indexoffset:

SYSTEMSERVICE_OPENGENERIC = 1

Die angegebene Datei wird für lesenden Zugriff geöffnet. Falls die Datei nicht existiert, liefert der Dienst den Wert -1 zurück.

ADS Dienst: ADS Write

Parameter: Länge des Pfadnamens

Pfadname als Character String

Return Wert:

Bei Erfolg: File Handle zur geöffneten Datei

Im Fehlerfall: -1

Datei zum Schreiben öffnen

 

Indexgroup:

SYSTEMSERVICE_OPENWRITE = 102

Indexoffset:

SYSTEMSERVICE_OPENGENERIC = 1

Die angegebene Datei wird für lesenden und schreibenden Zugriff geöffnet. Falls die Datei nicht existiert, liefert der Dienst den Wert -1 zurück. Ist die Datei vorhanden, so wird sie geöffnet und der Inhalt wird gelöscht.

ADS Dienst: ADS Write

Parameter: Länge des Pfadnamens

Pfadname als Character String

Return Wert:

Bei Erfolg: File Handle zur geöffneten Datei

Im Fehlerfall: -1

Datei schließen

Indexgroup:

File Handle

Indexoffset:

SYSTEMSERVICE_NOSEEK = -1

Die zu dem File Handle gehörige Datei wird geschlossen. Zu beachten ist, dass die Datenlänge für diesen Dienst 0 sein muss!

ADS Dienst: ADS Write

Datenlänge: 0

Daten in Datei schreiben

Indexgroup:

File Handle

Indexoffset:

SYSTEMSERVICE_NOSEEK = -1 oder

Seek Offset in Byte

Es wird die in der Datenlänge angegebene Anzahl Bytes in die Datei geschrieben. Bei einem Indexoffset ungleich -1, wird der Indexoffset als Offset in der Datei interpretiert.

Die Anzahl von geschriebenen Bytes wird in der Antwort von diesem Dienst zurückgeliefert. Im Fehlerfall liefert der Dienst den Wert -1 zurück.

ADS Dienst: ADS Write

Datenlänge: Anzahl Bytes, die geschrieben werden sollen.

Daten aus Datei lesen

Indexgroup:

File Handle

Indexoffset:

SYSTEMSERVICE_NOSEEK = -1 oder

Seek Offset in Byte

Es wird die in der Datenlänge angegebene Anzahl Bytes aus der Datei gelesen. Bei einem Indexoffset ungleich -1, wird der Indexoffset als Offset in der Datei interpretiert. Mit einer Datenlänge 0 wird nur der Dateizeiger in der Datei um den Wert in Indexoffset versetzt.

Die Anzahl von gelesenen Bytes wird in der Antwort von diesem Dienst zurückgeliefert. Im Fehlerfall liefert der Dienst den Wert -1 zurück.

ADS Dienst: ADS Read

Datenlänge: Anzahl Bytes, die gelesen werden sollen.

System Shutdown

Mit ADS WriteControl kann der TwinCAT System Service veranlasst werden das Betriebssystem herunterzufahren.

ADS Dienst: ADS WriteControl

AdsState: ADSSTATE_SHUTDOWN = 12

DeviceState: Shutdown von Windows NT mit DEVICESTATE = 0, Restart von Windows NT mit DEVICESTATE = 1

DeviceData: Timeout in Sekunden bis zum System Shutdown

Datenlänge: 4 Bytes