[s7]

Einstellungen für den S7 Treiber

[s7] AliveInterval

Typ
unsigned
Default
30
Wertebereich
0..65535
Intervall [s] nachdem eine Status-Überprüfung an die SPS(en) über alle Verbindungen gesendet wird. Wenn das AliveInterval auf 0 gesetzt ist, werden keine regelmäßigen Alive-Überprüfungen durchgeführt. Aber es gibt mindestens eine Alive-Überprüfung immer wenn eine Verbindung hergestellt wird.

[s7] AutoGQ

Typ
string
Default
Y
Wertebereich
Y/N
Gibt an, ob General-Abfragen automatisch durchgeführt werden sollen.

[s7] AutoTimeSyncFactor

Typ
unsigned
Default
0
Wertebereich
0..x
Der Wert gibt an, in welchen Alive-Abständen eine automatische Zeitsynchronisation ausgeführt werden soll. Der Defaultwert ist 0. Das bedeutet keine automatische Synchronisation. Wenn das Alive-Intervall z.B. 10 Sekunden ist und AutoTimeSyncFactor 10, wird eine Zeitsynchronisation alle 100 Sekunden ausgeführt.

[s7] CheckPollReqPending

Typ
bool
Default
1
Wertebereich
0|1
Wenn der Eintrag aktiviert ist, wird geprüft ob noch ein identischer Pollauftrag aussteht bevor der neue in die AGLink Queue hineingestellt wird.

[s7] diagnosticsRefreshTime

Typ
unsigned
Default
60 [sec]
Intervall [sec] für die Aktualisierung der Diagnosedaten. Beim Wert 0 gibt es keine Aktualisierung. wird.

[s7] HighPrioBlock

Typ
int
Default
-1
Wertebereich
>-1
Die Datenblocknummer der Hochprio-Adressen. Wenn ein Schreib-Request mit einer Adresse, die zu diesem Block gehört, ansteht, wird dieser vor dem ersten Request mit einer normalen Priorität hinzugefügt.

[s7] LimitedTSPPAliveCheck

Typ
string
Default
N
Wertebereich
Y|N
Mit dem Config-Eintrag LimitedTSPPAliveCheck = "Yes" kann der Alive-Check für redundante TSPP- Verbindungen ausgeschaltet werden. Es wird dann nur noch geprüft, ob Telegramme über eine Verbindung empfangen werden (und nicht über alle).

[s7] MaxAGLinkQueueSize

Typ
int
Default
1
Wertebereich
1..32
Die maximale Anzahl von anstehenden Requests für die AGLink-Bibliothek. Wenn dieser Wert überschritten wird, wird die Anforderung zu einer internen Lese- oder Schreib-Queue hinzugefügt. Wenn der Wert 0 ist, wird keine interne Queue verwendet. D.h. altes Verhalten vor der Implementierung der Queue.

[s7] MaxGap

Typ
unsigned
Default
10
Wertebereich
1..50
Der maximale Unterschied in Bytes zwischen zwei Adressen bis die Daten in Polling-Anfragen gruppiert werden. Wenn der Adressenbereich zwischen zwei nebeneinanderliegenden Adressen größer ist als der Wert in MaxGap, wird eine neue Gruppe erstellt (z.B. Parametrierung von Adressen 1.100, 1.101, 1.102, 1.103, 1.115, 1.116 würde die Adressen in zwei Polling-Anforderungen gruppieren. Der Defaultwert ist 10.) Dieser Config-Eintrag wird nur auf Eingangsadressen angewendet.

[s7] maxPollBlockSize

Typ
uint
Default
65535
Wertebereich
32..65535
Maximale Größe der Pollblöcke durch Optimierung in Bytes. Dieser Eintrag kann beim Modus "Poll On Use" dazu verwendet werden um Pollblöcke zu limitieren, damit der Modus PollOnUse auch bei aufeinanderfolgenden Adressen, die sonst in sehr großen Blöcken zusammengepackt werden, optimal ausgenutzt werden kann

[s7] MaxReadRequestSize

Typ
int
Default
0
Wertebereich
0,1, >50
Auf Grund von Polloptimierung kann es sein dass Multi-Byte Datenelemente (z.B. word oder double word) in zwei aufeinander folgenden Low-Level-Read-Requests gelesen werden. In seltenen Fällen kann dies jedoch einem verfälschten Zwischenergebnis führen. Dieses Verhalten kann durch Ändern der Polloptimierung auf die maximale PDU Größe der PLC verhindert werden. 0...Volle Optimierung, Defaultverhalten 1...Änderung der Optimierung auf die maximale PDU Größe der PLC >50...Änderung der Optimierung auf eine explizit festgelegte Größe Hinweis Diese Änderung verursacht eine geringe Verringerung des Datendurchsatzes, da die Polloptimierung limitiert wird. Das bedeutet, dass zum Lesen der gleichen Menge an Daten möglicherweise mehr Low-Level-Read-Requests notwendig sind.

[s7] MaxRequestQueueSize

Typ
int
Default
200
Wertebereich
0..1000
Maximale Größe der internen Schreib- und Lese-Queue (Jede Queue kann diese Größe haben). Wenn die Schreib- und Lese-Queue voll ist, wird der Request verworfen und eine Fehlermeldung (Error Code 56) auf das DPE _S7_Conn.LastError geschrieben. Zudem können Lese-, Schreib- und AGLink Queue-Größen über _S7_Conn.State.ReadQueue und _S7_Conn.State.AGLinkQueue DPEs überwacht werden.

Anmerkung:
Die neuen Werte werden auf das DPE in dem Intervall das über den Config-Eintrag "StatCheckInterval" definiert wurde, geschrieben.

[s7] MaxTsppAnswerListSize

Typ
int
Default
200
Gibt die maximale Größe der TSPP-Antwortliste an. Wenn der Wert überschritten wird, werden die Daten gelöscht und eine Fehlermeldung angezeigt.

[s7] MaxTsppRequestQueue

Typ
unsigned
Default
4
Wertebereich
1..64
Anzahl von Anforderungen in Queue für asynchrone Kommunikation. Das wird nur zu Testzwecken verwendet.

[s7] MaxTsppVcPerLoop

Typ
int
Default
1000
Gibt die maximalen Wertänderungen pro Treiber-Zyklus an. Wenn der Wert überschritten wird, werden die nächsten Wertänderungen im nächsten Treiber-Zyklus abarbeitet.

[s7] MaxWriteBlockLen

Typ
int
Default
0
Wertebereich
0..240
Write Requests werden als Block gesendet, wenn die Adressen fortlaufend sind und es keine Lücken gibt. Der Defaultwert des Eintrags ist 0. Das bedeutet, dass die Requests nicht als Block gesendet werden. Um sicherzustellen, dass die fortlaufenden Adressen als Block gesendet werden, müssen die entsprechenden Datenpunkte über dpSet() gesetzt werden. Zum Beispiel Schreiben der Adressen:

DB10.DBW0
DB10.DBB3
DB10.DBX4.0
DB10.DBX4.1
DB10.DBX4.2
DB10.DBX4.3
DB10.DBX4.4
DB10.DBX4.5
DB10.DBX4.6
DB10.DBX4.7
werden als Block gesendet da die Adressen fortlaufend sind (es gibt keine Lücke). Wenn z.B. das letzte Bit fehlt, werden nur die ersten 2 Adressen als Block gesendet und die Bits werden einzeln gesendet da das letzte Byte nicht voll ist. maximumWriteBlockLen hängt von dem verwendeten SPS-Typ ab. Wenn der Wert unter 240 Bytes ist, ist sichergestellt, dass die generierte Anforderung (Request) nicht von der verwendeten S7-Kommunikationsbibliothek aufgeteilt wird.

[s7] MaxWriteGroupSize

Typ
int
Default
16
Wertebereich
1..64
Maximale Größe eines einzelnen Schreib-Requests, der in einem mehrfachen Request zusammengefasst werden kann, wenn Request aus der Schreib Request-Queue bearbeitet wird.

[s7] mpiDevice

Typ
{serial interface} {pc address} {Baudrate}

mpiDevice = <serial interface> <pc address> <baud rate>
Der Config-Eintrag definiert die Parameter für eine serielle Schnittstelle/für einen Adapter. Um mit einer SPS zu kommunizieren, definieren Sie das MPI-Gerät in der Config-Datei wie folgt:

mpiDevice = "COM1" 15 38400.
In diesem Fall ist ein Siemens-Adapter mit einem COM1 und 15 verbunden und soll als MPI-Adresse für den Adapter verwendet werden. Der Eintrag des COM-Ports im Parametrierpanel muss mit dem Gerät, welches in der Config-Datei definiert ist, übereinstimmen.

Hinweis:
Die MPI-Adresse und die SPS Adresse dürfen nicht gleich sein! Die einzugebende MPI-Adresse ist die des Adapters. Z.B. wenn die MPI-Adresse der SPS "5" ist, dann darf die Adresse des Adapters nicht ebenfalls auf "5" eingestellt werden. In der Config-Datei darf in diesem Fall folgendes nicht stehen:

mpiDevice = "COM1" 5 38400

[s7] onlyActivePolls

Typ
string
Default
N
Wertebereich
Y/N
onlyActivePolls = "Y" gibt an, dass nur der aktive Treiber in einem redundanten System pollt. Der Defaultwert ist "N" (beide Treiber pollen die SPS).

[s7] plcCodePage

Typ
string
Default
<langgt;.iso88591

Wenn Strings innerhalb der SPS eine spezielle Encodierung verwenden, dann kann mit diesem Config-Eintrag festgelegt werden, welches Encoding für eine Konvertierung nach UTF-8 herangezogen werden soll.

Alle gültigen Encodierungswerte können in der Datei <Installationverzeichnis>/nls/lang.dir gefunden werden.

Beispiel

[s7]
plcCodePage = "el_GR.iso88597"

[s7] ReadOpState

Typ
uint
Default
15
Wertebereich
>=0
Mit diesem Eintrag kann man angeben ob und in welchem Intervall der Betriebszustand der SPS gelesen werden soll. Die Zeit wird in Sekunden angegeben. Der Wert 0 bedeutet kein lesen des Betriebszustandes. Ein periodischen Lesen wird nur dann durchgeführt, wenn der die ereignisgesteuerte Betriebszustandsübertragung fehlschlägt. Letztere erlaubt eine schnellere Erkennung einer Betriebszustandsänderung. Der Betriebszustand wird auf dem internen Datenpunkt _S7_Conn.OpState des Treibers gezeigt und für die Umschaltung bei redundanten SPSen herangezogen.

Die verschiedenen Zustände sind:

  • 0 STOP
  • 1 START-UP
  • 2 RUN
  • 3 UNDEFINED
Für eine redundante SPS gibt es zusätzlich:
  • 8 RUN SOLO (nur eine SPS läuft)
  • 9 RUN REDU (beide SPSen laufen)
  • 10 HALT
  • 11 CONNECTING
  • 12 UPDATING
Hinweis: Bei symbolischer Adressierung wird dieser Config-Eintrag nicht unterstützt.

[s7] ReadPLCTime

Typ
string
Default
N
Wertebereich
Y/N
Wenn der Config-Eintrag ReadPLCTime auf "Yes" gesetzt ist (Default ist "No") wird die SPS-Zeit in Alive-Überprüfungsabständen gelesen und der Wert auf das DPE _S7_Conn.Time.Value. geschrieben. Dieser Wert soll verwendet werden, wenn die WinCC OA-Zeit auf die SPS-Zeit synchronisiert werden soll.

[s7] reduModeTSPP

Typ
bool
Default
0
Wertebereich
0|1
Legt fest welche TSPP Telegramme bei der Verwendung redundanter SPSen / Verbindungen verarbeitet werden sollen: 0 => Es werden nur die Telegramme der aktiven Verbindung verarbeitet (Default) 1 => Es werden Telegramme von allen Verbindungen verarbeitet. 2 => Es werden Telegramme von allen Verbindungen verarbeitet und zusätzlich doppelte Telegramme ausgefiltert.

[s7] refreshPollBlocksOnUse

Typ
string
Default
N
Wertebereich
Y|N
Wird dieser Config-Eintrag auf "Y" gesetzt, berechnet der Treiber die Pollblöcke bei Bedarf neu und berücksichtigt dafür nur noch die aktuell benötigten Eingangsadressen. Im Fall von "Poll on Use" ergibt sich daraus eine erhebliche Optimierung. Für leistungsschwache S7 Steuerungen empfiehlt sich zusätzlich der Config-Eintrag "maxGap" mit einem niedrigen Wert, z.B. 1, damit die Kommunikationslast weiter reduziert wird.

[s7] setInvalidForConnLoss

Typ
uint
Default
1
Wertebereich
0 - 2
Mittels des Config Eintrages kann bestimmt werden ob die Werte welche der Treiber liefert bei einem Verbindungsverlust auf ungültig gesetzt werden. Optional kann ebenfalls der Zeitstempel angepasst werden. Folgende Optionen stehen zur Verfügung: 0 => Invalid Bit wird nicht gesetzt 1 => Invalid Bit wird gesetzt (und der Zeitstempel wird an die Zeit des Verbindungsverlustes angepasst) 2 => Invalid Bit wird gesetzt (ohne den Zeitstempel anzupassen)

[s7] StatCheckInterval

Typ
unsigned
Default
20 [sec]
Wertebereich
5..100
Intervall [sec] nach dem das DPE ".State" des Verbindungsdatenpunkts aktualisiert wird.

[s7] TimeSyncUTC

Typ
string
Default
N
Wertebereich
Y/N
Mit dem Config-Eintrag TimeSyncUTC = "Yes" kann eingestellt werden, dass der Treiber die SPS auf UTC-Zeit synchronisiert. Ohne Config-Eintrag bzw. wenn der Config-Eintrag auf "No" gesetzt wurde, synchronisiert der Treiber die SPS auf die lokale Zeit.

[s7] UseConnections

Typ
int
Default
2
Wertebereich
1,2,3
Wenn die erste Verbindung zu der SPS aufgebaut wird, versucht der Treiber keine weitere Verbindungen aufzubauen. Mit dem Config-Eintrag "UseConnections" versucht der Treiber weitere Verbindungen aufzubauen obwohl die erste Verbindung schon aufgebaut ist. Die Anzahl der Verbindungen hängt von der Nummer des Config-Eintrags ab. Der Default-Wert ist 2.

[s7] useStringLengthInfo

Typ
string
Wertebereich
Y|N
Wird dieser Config-Eintrag auf "Y" gesetzt, berücksichtigt der Treiber die im S7-String enthaltenen Längeninformationen. In diesem Fall kann die tatsächliche Adresse parametriert werden, da die beiden Bytes mit der Längeninformation weggeschnitten werden.