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 |