SampleDriver
Dieses Beispiel zeigt einen WinCC OA Treiber, der mittels "named Pipes“ kommuniziert. Getestet wird indem man zwei Treiber miteinander kommunizieren lässt. Einer ist dabei der Server, welcher die "named Pipe“ öffnet und nur Meldungen schickt. Der zweite ist der Client, welcher sich zum Server verbindet und Meldungen empfängt.
Den Treiber herrichten
-
Setzen Sie Ihre Umgebungsvariablen für das API und PLATFORM wie im Kapitel Installation API bzw. beschrieben.
Anmerkung: Wenn Sie das API bei der Installation von WinCC OA mitinstalliert haben, sind diese Umgebungsvariablen bereits gesetzt! -
Kopieren Sie das Verzeichnis SampleDriver aus $API_ROOT.
-
Erstellen Sie das Buildverzeichnis und kompilieren Sie den Treiber wie im Kapitel Getting Started - Setup der Build-Umgebung beschrieben.
-
Die ausführbaren Programme liegen in den Unterverzeichnissen "Release" oder "Debug".
-
Wenn sie den Treiber aus der WinCC OA Konsole starten wollen, dann kopieren Sie ihn in das /bin Verzeichnis Ihres WinCC OA Projektes (PROJ_PATH//bin).
Wichtig: Der Name des Executables muss mitWCCOA
beginnen, damit es in der Liste der Manager aufscheint.
Die Projekteinstellungen
Bevor Sie den SampleDriver verwenden, müssen Sie die internen Datenpunkte anlegen.
-
Starten Sie in der Konsole zwei Treiber Simulatoren mit -num 1 und -num 2.
-
Importieren Sie das File "SampleDriver.asc" mit dem ASCII Manager. Sie brauchen zwei Simulatoren, weil Peripherieadressen für den Treiber mit der Nummer 1 und mit der Nummer 2 in dieser Datei parametriert sind.
-
Die Datei "SampleDriver.asc" muss um den Eintrag "StartValue 20" erweitert werden, damit der Datenpunkttyp vollständig definiert ist:
# DpType TypeName _SampleDriver._SampleDriver 1 Counter 20 ResetCounter 23 StartValue 20
-
Stoppen Sie die Simulatoren
Den Treiber verwenden
-
Starten Sie den Treiber mit "-num 1" (defaultmäßig der Server), um die Verbindung aufzubauen.
-
Starten Sie den Client.
-
Es gibt zwei Beispielsdatenpunkte "SampleTest_1" und "SampleTest_2" mit denen Sie Nachrichten vom Server ( -num 1) zum Client ( -num 2) schicken können. Es ist nur diese Richtung möglich!
-
Der Client zählt alle empfangenen Meldungen und zeigt im internen Datenpunkt "_SampleDriver_2.Counter die Anzahl.
-
Über "_SampleDriver_2.ResetCounter" machen Sie ein Reset des Zählers auf 0.
Die Config-Einstellungen
Alle Einstellungen sind optional, es gibt Defaulteinstellungen dafür.
Die Einträge des folgenden Abschnittes gelten für alle SampleDriver:
Für Windows-Systeme:
[sample]
pipeName = "\\\\.\\pipe\\SampleDriver"
Für Linux:
[sample]
pipeName = "/tmp/SampleDriver"
Hier setzen Sie den Namen der Verbindung fest. Da beide Treiber den gleichen Namen verwenden, muss er im Abschnitt für beide angegeben werden.
Das ist der Abschnitt für Treiber -num 1
[sample_1]
server = "Yes"
sampleDpName = "_SampleDriver_1"
- Setzen Sie den Treiber als Server (Verbindungsaufbau). Mögliche Werte sind "Yes" und "No".
- Geben Sie den Namen für die Internen Datenpunkte an. Default ist
_SampleDriver_1
. -
Für ein redundantes System müssen Sie das durch
_SampleDriver_1_2
für host2 ersetzen
Das ist der Abschnitt für Treiber -num 2
[sample_2]
server = "No"
sampleDpName = "_SampleDriver_2"
- Setzen Sie Treiber 2 als Client (verbindet sich). mögliche Werte sind "Yes" und "No"
- Geben Sie den Namen für die Internen Datenpunkte an. Default ist "_SampleDriver_2".
- Für ein redundantes System müssen Sie das durch "_SampleDriver_2_2" für host2 ersetzen.