Details zum S7-Treiber

Dieses Kapitel ist für fortgeschrittene WinCC OA Anwender. Es beschreibt ausführlich die Debugmöglichkeiten, Fehler-Codes von ACCON-AGLink und bietet detaillierte Information über den S7-Treiber.

Debug-Levels

Um mögliche Fehlerquellen bei einem laufenden Treiber zu erkennen, können die Kommandozeile-Optionen für die Fehlersuche verwendet werden. Verwenden Sie -helpdbg um mehr Information über alle anderen Optionen anzuzeigen (siehe auch Manageroptionen).

Debug Level Beschreibung
-dbg 2 Beschreibt detailliert, was der Treiber momentan macht. Es wird empfohlen, diese Option nur zu verwenden, wenn die Treiber-Last niedrig ist um das Zeit-Verhalten vom Treiber nicht zu beeinflussen.
-dbg 10 Informationen zur Job-Nummer des S7-Treibers.
-dbg 11 Informationen zum Aufbau des Abfragegruppen des S7-Treibers.
-dbg 12 S7 Verbindungsinformationen.
-dbg 25 Debug-Ausgaben von " low level" (niedrige Stufe) Funktionen und von Daten der internen Datenstrukturen (z.B. wenn ein ACCON-AGLink Fehler auftritt, die detaillierte Fehlernummer und konstanter Name).
-dbg 26 Debug-Ausgaben vom Schreibe/Lese-Datenverkehr bei "single query" und "write"-Anforderungen.
-dbg 27 Debug-Ausgaben von spontanen Daten und Alive-Überprüfungen.
-dbg conn Debug-Ausgabe der Umschaltungen und des Betriebszustandes für alle Verbindungen beim Statuswechsel einer SPS (Nur innerhalb eines 2x2 Redundanz Systems).

Transformationen

Eine Transformation konvertiert Hardware-Daten in ein WinCC OA Format. Der Transformationstyp eines Datenpunktelements kann mit der Hilfe von Integer-Konstanten abgefragt und gesetzt werden. Wenn Sie dpGet() oder dpSet() verwenden, muss das Attribut _address.._datatype verwendet werden. Detaillierte Information über die Integer-Konstanten, die für die Transformationen mit dem S7-Treiber verwendet werden, finden Sie im Kapitel _address.

Fehlermeldungen

ACCON-AGLink bietet eine Reihe von Fehler-Codes, wenn ein Vorgang scheitert. Die Fehler-Codes können vom Treiber verwendet werden und an den WinCC OA Log Viewer übergeben werden. Die folgenden Fehler sind die wichtigsten. Der Fehler-Text wird in die WinCC OA Log-Datei (und in den Log Viewer) geschrieben. Die ACCON-AGLink-Konstante und der Wert werden in die Log-Datei des Treibers (und in den Log Viewer) geschrieben, wenn die Debug-Level "-dbg 25" aktiviert ist.

Konstante in ACCON-AGLink Wert Hexadezimal-Wert Fehlertext
AGL40_SUCCESS 0 0 No error. (Kein Fehler)
AGL40_PENDING 1 1 Request is pending. (Abfrage steht an).
AGL40_PARAMETER_ERROR -1048575

-FFFFF

Parameter range error. (Fehler im Parameter-Bereich).
AGL40_INVALID_DEV_NUMBER -1048574

-FFFFE

Referred Device is not properly opened. (das genannte Gerät ist nicht richtig geöffnet).
AGL40_DEVICE_OPEN -1048570

-FFFFA

Device already in use - it cannot be opened.

(Gerät bereits in Verwendung - kann nicht geöffnet werden).

AGL40_DEVICE_NOT_OPEN -1048569

-FFFF9

Device is not open.

(Gerät ist nicht offen.)

AGL40_INVALID_JOB -1048567

-FFFF7

Invalid job number used.

(Ungültige Job-Nummer verwendet.)

AGL40_NO_QUEUE -720896

-B0000

No space left in the order queue.

(Kein Platz in der Queue)

AGL40_NOT_CONNECTED -720894

-AFFFE

PLC is not connected. (SPS nicht verbunden)
AGL40_CONNECTION_CLOSED -720893

-AFFFD

Connection has been closed. (Verbindung beendet)
AGL40_TIMEOUT -720892

-AFFFC

No data from PLC. (keine Daten von der SPS)
AGL40_PLC_MEMORY_ERROR -720890

-AFFFA

The requested memory could not be allocated.

(Der angeforderte Speicher konnte nicht belegt werden.)

AGL40_WRONG_OP_STATE -720889

-AFFF9

Wrong operating state of PLC.

(Falscher Funktionsmodus der SPS.)

AGL40_WRONG_ADDRESS -720888

-AFFF8

Wrong address in PLC. (falsche Adresse in der SPS).
AG_LINK_ERROR -720877

-AFFED

If the wrong slot was specified for the cpu. (Wenn der falsche Slot für die Cpu angegeben wurde).

Unter Linux hat diese Fehlermeldung eine andere Bedeutung:

AGL40_UNKNOWN_PLC_ERROR

wenn der Treiber keine Verbindung mehr zu der SPS aufbauen kann.

AGL40_HARDWARE_ERROR -720876

-AFFEC

PLC hardware error. (SPS Hardware-Fehler).
AGL40_PLC_NOT_FOUND -720868

-AFFE4

PLC not found.
Anmerkung:

Folgender Fehler innerhalb des LogViewers weißt darauf hin, dass beim Versuch eine neue Verbindung aufzubauen keine SPS gefunden wurde:

WCCOAs7 (1), 2012.04.20 10:25:35.496, SYS, SEVERE, 13/s7, Allgemeiner AGLink-Fehler (0xfff5001c) für s7(1/1)
WCCOAs7 (1), 2012.04.20 10:25:35.496, SYS, SEVERE, 13/s7, Allgemeiner AGLink-Fehler (0xfff5001c) für s7(1/2)

Polling

Der S7-Treiber soll nicht einen Lesezugriff für jede einzelne WinCC OA Adresse, für die ein Eingang und ein Polling parametriert sind, starten. Das würde die Leistung zu stark beeinflussen. Die SPS-Tags, die gepollt werden sollen, werden vom Treiber gemäß des Config-Eintrags MaxGap und gemäß der Pollgruppen-Zugehörigkeit gruppiert.

ACCON-AGLink unterstützt asynchrone Lesezugriffe. Das bedeutet, dass ein Lesezugriff gestartet werden kann und der Treiber nicht auf die Antwort dieses Zugriffs warten muss. Es wird eine Rückfrage geben, wenn der Zugriff beendet worden ist oder wenn der gescheitert ist.

Da es sinnvoll ist, Anfragen für die SPS zu parallelisieren, gibt es eine Queue für die Schreib-Anfragen (diese müssen sobald wie möglich an die SPS gesendet werden) und zwei Queues für die Lese-Anfragen. Die Verbindungen für diese Queues werden automatisch vom Treiber konfiguriert.

Wenn der Config-Eintrag UseConnections aktiviert ist, wird nur eine Verbindung für das Lesen und Schreiben verwendet. Letztere könnte besser für altes S7-300-Equipment, bei dem die vorhandenen Verbindungen limitiert sind, sein.

Polling bei Verwendung

"Polling bei Verwendung" dient dazu, Werte von der Peripherie nur dann abzufragen, wenn diese auch wirklich benötigt werden, d.h. wenn ein User Interface die Werte gerade anzeigt, oder ein Ctrl-Manager sich darauf verbunden hat. Dadurch kommt es zu einer Verminderung des Kommunikationsaufwandes zwischen SPS und Treiber. Weitere Informationen finden Sie im Kapitel Treiberspezifische Funktionen - Polling bei Verwendung.

Einschränkungen und Hinweise

Anzahl an Polladressen

Um einen möglichst hohen Nutzen aus der Verwendung von "Polling bei Verwendung" zu erzielen, sollte die Anzahl der permanenten Polladressen wesentlich kleiner sein, als jene "Polling bei Verwendung" Adressen. Ein Verhältnis von kleiner 1:10 wäre hier als Richtwert anzustreben. Da der Simatic Treiber eine spezielle Optimierung der Pollanfragen ausführt (die Pollanfragen werden in zusammenhängende, sogenannte PollGroupBlöcke unterteilt, wobei der MaxGap Parameter steuert wie viele Bytes leer sein dürfen um den zusammenhängenden Block noch nicht zu unterbrechen) wird immer nur ein gesamter PollGroupBlock aktiv oder inaktiv geschalten. Sobald auch nur eine Adresse aus einem solchen Block benötigt wird, wird der gesamte Block abgefragt. Werden diese PollGroupBlöcke zu groß und/oder das Verhältnis zwischen konstant gepollten und "in Verwendung" gepollten Adressen ist viel schlechter als 1:10, wird sich kein Nutzen durch "Polling bei Verwendung" ergeben.

Anmerkung:
Bitte beachten Sie, dass der Wert für [s7] MaxGap nicht zu groß sein sollte, da große Werte in weniger optimalen Blöcken resultieren.

Große Pollblöcke

Um eine optimale Konfiguration zur Benutzung von "Polling bei Verwendung" zu ermöglichen, ist es möglich, mit dem config File Eintrag maxPollBlockSize die Größe der PollGroupBlöcke zu limitieren. Damit kann man verhindern, dass zu viele Adressen in einem Block zusammengefasst werden und somit der Block oft gelesen wird weil es immer zumindest ein paar aktive Adressen im Block gibt.

Unterstützte CPUs für die Verwendung der S7 Symbolik

Folgende Auflistung enthält alle durch den WinCC OA S7 Treiber unterstützten CPUs für die Verwendung der S7 Symbolik.