Übersicht ADS-Geräte

Ein Objekt, welches die ADS-Schnittstelle implementiert hat (somit via ADS erreichbar ist) und "Server-Dienste" anbietet, wird als ADS-Gerät (ADS-Device) bezeichnet.
Die inhaltliche Bedeutung eines ADS-Dienstes ist spezifisch für jedes ADS-Gerät (ADS-Device) und in den jeweiligen ADS-Device-Dokumentationen beschrieben:

  • TwinCAT ADS Interface SPS
  • TwinCAT ADS Interface NC
  • TwinCAT ADS Device CAM (Nockenschaltwerk)
  • TwinCAT ADS-COM Server für ControlNET (mit SST 5136-CN-PC-Karte)
  • .....


TwinCAT System Service

Allgemein

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


TwinCAT ADS INterface : Scope

TwinCAT ADS Interface Scope

Das Scope bietet ein ADS-Interface an und agiert somit als ADS-Server. Die Bedienung des Scope ist mit den hier beschriebenen Kommandos möglich.

Da hierfür ein fester ADS Port erforderlich ist, kann nur die erste Instanz des Scopes per ADS bedient werden.

ADS Port Scope: 14000 (dezimal)

Index-Group ( Hex ) | Beschreibung | Anmerkung
0x00001000 | Scope Root States |
0x00002000 | Scope Root Functions |
0x00003000 | Scope View |

Scope Root States

Index-Offset ( Hex ) | Zugriff | Datentyp | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Read | BYTE |  |  | Get Online Mode 0: Scope ist Offline 1: Scope ist Online |
0x00000001 | Write | void |  |  | Set Scope to Online Mode |
0x00000002 | Write | void |  |  | Set Scope to Offline Mode |

Scope Root Functions

Index-Offset ( Hex ) | Zugriff | Datentyp | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000001 | Write | char[] |  |  | Lade *.scp File ( Scope Configuration Project ) | D:\\TwinCAT\\scope\\achse2.scp

Scope View

Index-Offset ( Hex ) | Zugriff | Datentyp | Phys. Einheit | Definitions- bereich | Beschreibung | Anmerkung
0x00000100 + Id | Write | void |  |  | Manual Trigger | Beim Absetzen dieses Kommandos wird das Scope getriggert. Dazu muss es allerdings online sein.
0x00000200 + Id | Read / Write | Real64 |  |  | Record Length | legt die Aufnahmedauer fest
0x00001000 + Id | Write | char[] |  |  | Exportiere Daten als ASCII File | D:\\TwinCAT\\Scope\\Data\\Test.dat
0x00001010 + Id | Write | char[] |  |  | Exportiere ScopeView |

Hinweis:

Die Scope View Eigenschaften können z.Zt. nur genutzt werden, wenn nur ein View in der Applikation aktiv ist. D.h. die Id ist immer 1.