Dokumentation für OEMs:
CoDeSys SP RTE
Echtzeitlaufzeitsystem für Windows NT/2000/XP
Dokument Version 2.2
3S - Smart Software Solutions GmbH Seite 1 von 37
CoDeSys SP RTE.doc
tech_doc_d.dot / V1.1
Echtzeitlaufzeitsystem für Windows NT/2000/XP
INHALT
1
ÜBERBLICK 4
1.1 Was heißt Echtzeiterweiterung? 4
1.2 Das System im Detail 5
2 DIE BEDIENUNG ÜBER DAS SERVICE-ICON 6
2.1 Das Systemmenü 7
2.1.1 Diagnostic 7
2.1.2 Startup 9
2.1.3 Config 10
2.1.4 Ext. config 11
2.1.5 Access 12
2.1.6 IO Drivers 13
2.2 License ... 14
3 DIE STANDARD-IO-TREIBER VON 3S 15
3.1 IO-Treiber RTIOdrvHilscherDPM 15
3.1.1 Die SysLibDPV1.lib 17
3.2 IO-Treiber RTIOdrvFC310x.sys 17
3.2.1 Die Bibliothek SysLibFCDPV1.sys 18
3.2.2 Die Bibliothek FC_SlaveHandling.lib 19
3.2.3 Die FC310x Karte im Slavebetrieb 19
3.3 IO-Treiber RTIOdrvCP5613.sys 19
3.4 IO-Treiber RTIOdrvDAMP 20
3.5 IO-Treiber RTIOdrvApplicom 20
3.6 IO-Treiber RTIOdrvIBS (IBS = Interbus, ibpcimpm.sys) 21
3.7 IO-Treiber RTIOdrvSJA und RTIOwdmPCAN 21
3.8 IO-Treiber RTIOdrvAutomata und RTIOwdmAutomata 21
3.9 IO-Treiber RTIOdrvHMS und RTIOwdmHMS 22
3.10 IO-Treiber RTIOdrvAPIC 22
3.11 IO-Treiber RTIOwdmCANAutomata 23
3.12 IO-Treiber RTIOwdmSofting 23
4 KOMMUNIKATION 24
4.1 Shared Memory Treiber 24
4.2 TCP/IP Level2 Route Treiber 24
3S - Smart Software Solutions GmbH Seite 2 von 37
CoDeSys SP RTE.doc
tech_doc_d.dot / V1.1
5 SYSTEMDIAGNOSE 25
5.1 Busdiagnose der IO-Treiber 25
6 DIE TASKKONFIGURATION ZUSAMMEN MIT CODESYS 2.3 27
Echtzeitlaufzeitsystem für Windows NT/2000/XP
6.1 Allgemein 27
6.2 Taskspezifischer Watchdog 27
6.3 Microsekunden als Zeitbasis 27
6.4 Freilaufende Task 28
6.5 Systemereignisse 28
7 DIE SYSTEMBIBLIOTHEKEN 29
7.1 DllCall.lib mit SysLibSystemCall.lib 29
7.2 SysLibCallback.lib 29
7.3 SysLibCom.lib 29
7.4 SysLibFile.lib 30
7.5 SysLibPorts.lib 30
7.6 SysLibTime.lib 30
7.7 SysLibSockets.lib 31
7.8 SysLibShm.lib 31
7.9 SysLibPciCards.lib 31
8 VERHALTEN IM FEHLERFALL 32
9 ANHANG 33
9.1 Die vom Laufzeitsystem verwendeten Registry-Einträge. 33
ÄNDERUNGSHISTORIE 37
3S - Smart Software Solutions GmbH Seite 3 von 37
CoDeSys SP RTE.doc
tech_doc_d.dot / V1.1
Echtzeitlaufzeitsystem für Windows NT/2000/XP
1 Überblick
In diesem Dokument wird angenommen, dass der Leser mit dem prinzipiellen Verhalten und der
Funktion eines CoDeSys-Laufzeitsystems vertraut ist. Hier wird nur auf die Besonderheiten des
Laufzeitsystem zur Echtzeiterweiterung von Windows NT eingegangen.
Das Echtzeitsystem wird gestartet, indem im Windows-Startmenü aus dem CoDeSys-Menü heraus
‘Start CoDeSys SP Windows NT for Realtime’ gewählt wird. Das Icon
erscheint in der Taskleiste.
1.1 Was heißt Echtzeiterweiterung?
Ein Echtzeit-System ist gekennzeichnet durch ein voraussagbares (deterministisches) Zeitverhalten.
Wird also etwa einem Echtzeitsystem die Aufgabe erteilt (durch Konfiguration), bestimmte Routinen
innerhalb eines vorgegebenen Zeitrasters auszuführen, so wird dies innerhalb vorgegebener zeitlicher
Toleranzen passieren, ansonsten wird das als Versagen des Gesamtsystems angesehen.
Auf eine Steuerung, im Sinne von CoDeSys bezogen, heißt das, dass eine Task innerhalb gegebener
(vorher bekannter) Toleranzen aufgerufen wird.
Die Erfahrung hat gezeigt, dass diese Grenzen von Windows NT nicht eingehalten werden, NT also
kein echtes Echtzeitbetriebssystem ist.
Die Hardware in einem PC ist aber so beschaffen, dass es mit Mitteln der Software möglich ist, ein
verlässliches Task-Scheduling zustande zu bringen.
Die Echtzeiterweiterung von Windows NT ist ein NT-Treiber, der eine Interrupt-Service-Routine
installiert, die zyklisch vom Timertick der PC-Hardware aufgerufen wird.
Diese Routine übernimmt nun die Aufgabe, von CoDeSys definierte Tasks anzusprechen und/oder
die Ausführung des Betriebssystem weiter/wieder zuzulassen.
3S - Smart Software Solutions GmbH Seite 4 von 37
CoDeSys SP RTE.doc
tech_doc_d.dot / V1.1
Echtzeitlaufzeitsystem für Windows NT/2000/XP
1.2 Das System im Detail
NT-Kernel
CoDeSys
Gateway
Gatewaytreiber
(Sharedmemorytreiber)
RTService
Kerneltreiber
HAL
Applikationen
3S-RTE
(Kerneltreiber)
CPU
Sharedmemorykommunikation
+ DeviceIOControl
IO-Treiber
Funktionsaufrufe
Der Kernel der Echtzeiterweiterung (kurz RTE) von 3S besteht aus einem Applikationsteil und einem
Kernelmode-Treiber. In der Standardausführung wird der Timerchip (über den jeder AT-kompatible
PC verfügt), dazu benutzt, 2 Interrupts pro ms zu erzeugen und damit den Task-Scheduler der RTE
aufzurufen. Dieser benutzt jeden 2-ten Interrupt dazu, eigene Tasks aufzurufen und jeden 2-ten um
das Betriebssystem aufzurufen. Die Tasks der SPS werden also einmal pro Millisekunde vom
Betriebssystem unterbrochen, wobei die Aufteilung konfigurierbar ist (siehe Kap. 6).
Die IO-Treiber werden per Konfiguration in eine Liste eingetragen und müssen einer
Schnittstellenkonvention genügen (siehe dazu RTIOdrv-Toolkit). Sie tauschen mit der RTE beim
Starten Funktionszeigertabellen aus und können dann mit der RTE kommunizieren.
Es ist nicht notwendig, den Betriebssystem-Kernel zu verändern.
3S - Smart Software Solutions GmbH Seite 5 von 37
CoDeSys SP RTE.doc
tech_doc_d.dot / V1.1