Zusätzliche Konfigurationsparameter

Im folgenden Abschnitt werden zusätzliche Konfigurationen für Datenpunkte beschrieben, darunter Zustandstexte, Alarme, Objektmodelle usw.

Datentypen

Um das Konzept von Subindex besser zu verstehen, müssen Sie zunächst die möglichen Datentypen verstehen, die einem Datenpunkt zugeordnet werden können.

Das Modbus-Protokoll macht keine Angaben zum Datentyp von Zahlen. Es kümmert sich um das Lesen der Register, die jeweils aus einem Satz von zwei Byte bestehen. In einer Datenleseanforderung kann der Client ein oder mehrere Register vom Gerät abfragen. Diese Leseanforderungen enthalten zwei Schlüsselelemente, die Startadresse und die Anzahl der zu lesenden Register. Auf eine Anforderung zum Lesen eines analogen Registers (Funktionstyp 0x03 oder 0x04) wird mit zwei Byte an Daten reagiert. Analog dazu resultiert eine Anforderung zum Lesen von zwei Registern in einer Antwort mit vier Byte an Daten. Der Client, der diese Registerwerte oder Byte empfängt, muss die Byte als einen bestimmten numerischen Typ interpretieren. Folgende Datentypen sind möglich:

Datentyp

Syntax

Ganzzahl (2 Byte)

Int16

Vorzeichenlose Ganzzahl (2 Byte)

Uint16

Byte (1 Byte)

Byte

Boolesch (1 Byte)

Bool

Gleitkomma (4 Byte)

Float32

Aufzählung (2 Byte)

Enum

Doppelte Genauigkeit (8 Byte)

Float64

Ganzzahl, 32 Bit (4 Byte)

Int32

Vorzeichenlose Ganzzahl, 32 Bit (4 Byte)

Uint32

Blob (benutzerdefinierte Grösse)

Blob

Zeichenkette (benutzerdefinierte Grösse)

String

Bei der Definition eines Datenpunkts in der CSV-Datei müssen wir nur die Startadresse und den Datentyp angeben. Der Treiber liest anschliessend die entsprechende Anzahl von Registern und stellt den Wert korrekt dar. Wenn wir zum Beispiel Funktionstyp 3 und Offset 0 (Adresse 40001) zusammen mit dem Datentyp "float32" festlegen, liest der Treiber zwei Register (weil vier Byte benötigt werden) und interpretiert die zurückgegebenen Byte als IEEE-Gleitkommazahl mit 32 Bit.

Der Offsetwert von Punkten, für die als Richtung der Wert Ausgang konfiguriert ist, darf nicht der gleiche sein.

Die folgende Tabelle zeigt den Zusammenhang zwischen DPE-Typ, Richtung, Funktionscode und Transformation.

DPE-Typ

Richtung

Funktion

Transformation

PvssUint

Eingang

3

uint16

uint32

byte

4

uint16

uint32

byte

Ausgang

6

uint16

16

uint16

uint32

byte

PvssBool

Eingang

1

boolean

2

boolean

3

boolean

4

boolean

Ausgang

5

boolean_as_byte

6

boolean

15

boolean

16

boolean

PvssInt

Eingang

3

int16

int32

byte

4

int16

int32

byte

Ausgang

6

int16

16

int16

int32

byte

PvssFloat

Eingang

3

float

double

4

float

double

Ausgang

16

float

double

PvssChar

Eingang

3

byte

4

byte

Ausgang

16

byte

Darstellung vertauschter Gleitkommawerte

Die Modbus-Geräte einiger Drittanbieter sind mit der Standarddarstellung von Gleitkommawerten nicht kompatibel. Dies hat zur Folge, dass High- und Low-Words vor der Übertragung des Gleitkommawerts vertauscht werden. Damit der Modbus-Treiber diese Darstellung versteht, müssen Sie der Config-Datei im Verzeichnis [Installationslaufwerk:]\[Installationsordner]\[Projekt]\config die folgende Einstellung hinzufügen

[mod]

littleEndianRegister=0

Hierdurch kann der Modbus-Treiber die Reihenfolge des Datenwortes umkehren und somit den korrekten Wert ermitteln. Die Reihenfolge des Datenwortes ändert sich in diesem Fall auch, wenn Werte vom Treiber auf das Gerät geschrieben werden.

Nachdem Sie den Wert dieses Attributs festgelegt haben, müssen Sie alle Modbus-Treiber neu starten.

Wenn Sie möchten, dass diese Konfiguration nur für einen spezifischen Modbus-Treiber angewendet wird, müssen Sie das Attribut wie folgt hinzufügen:

[mod_<drivernumber>]

littleEndianRegister=0

Für einen Modbus-Treiber mit der Treibernummer 2 müssen Sie die Config-Datei beispielsweise wie folgt ändern:

[mod_2]

littleEndianRegister=0

In diesem Fall müssen Sie den Modbus-Treiber 2 neu starten.

Wenn Sie LittleEndianRegister = 1 einstellen, wird das Vertauschen der Wortreihenfolge deaktiviert.

info

Hinweis:
Diese können auf maximal 10 Treiber pro Server aufgeteilt werden. Maximal 35000 Datenpunkte können mit jedem Treiber verknüpft werden.

 

Big-Endian- und Little-Endian-Bytereihenfolgen

Datentypen, die mehr als ein Byte verwenden, können auf zwei Arten interpretiert werden:

Big-Endian: Das erste Byte in der Reihenfolge wird als High Byte (höchstwertiges Byte) und das letzte als Low Byte (kleinstwertiges Byte) betrachtet.

Little-Endian: Das erste Byte in der Reihenfolge wird als Low Byte (kleinstwertiges Byte) und das letzte als High Byte (höchstwertiges Byte) betrachtet.

Die meisten Modbus-Geräte verwenden die Big-Endian-Darstellung. Es kann jedoch vorkommen, dass einzelne Geräte die Little-Endian-Darstellung nutzen. In diesem Fall kann der Treiber so konfiguriert werden, dass er dies generell oder im Einzelfall pro Gerät beachtet. Diese Parameter werden als Einträge in der Config-Datei im Abschnitt Zusätzliche Konfigurationsparameter angegeben.

 

- Byte Swap

Beim Erstellen von Geräteinstanzen in der Management Station für Geräte, die Byte-Swapping unterstützen, müssen wir die folgende Konfiguration anwenden.

Standardmässig ist der Wert Falsch.
0: Die Bytes werden ohne Vertauschen behandelt.
1: Die Bytes werden vertauscht.

Subindex

Das Feld Subindex wird zusammen mit der Datentypdeklaration verwendet, um ein bestimmtes Bit oder Byte zu wählen, das zum Abrufen des Laufzeitwerts dient. Die Bits werden von rechts nach links gelesen, beginnend mit Bit 0 und endend mit Bit 15, bei einer Gesamtzahl von 16 Bit. Die folgende Abbildung zeigt, wie ein Bitwert aus einer zwei Byte umfassenden Antwort extrahiert wird bzw. wie ein bestimmtes Byte ausgewählt wird.

Wahl benutzerdefinierter Objektmodelle gegenüber Standard-Objektmodellen

Mit Hilfe eines Subindex ist es möglich, den Wert eines Registers nur in Teilen zu extrahieren und als Datenpunkteigenschaft darzustellen. Dies eröffnet eine interessante Möglichkeit für die Integration von Modbus-Geräten, deren Register oder Datenpunkte eine Sammlung von Zuständen enthalten. Die folgende Abbildung veranschaulicht dies:

Um einen Datenpunkt zu erstellen, der Teile eines Registerwerts zur Darstellung der Eigenschaften extrahieren kann, müssen wir ein benutzerdefiniertes Objektmodell sowie Importregeln erstellen, die dem Importer mitteilen, welches Byte bzw. Bit einer Eigenschaft zugeordnet werden soll. Informationen zur Erstellung eines benutzerdefinierten Objektmodells finden Sie unter Benutzerdefiniertes Objektmodell erstellen. Im folgenden Beispiel werden Instanzen des benutzerdefinierten Objektmodells FIRE_ZONE erstellt, um die Datenpunkte darzustellen.

 

 

Skalierungsfaktor

Gibt die folgenden Eigenschaften an, die die Wertkonvertierung definieren.

 

Alarm

Sie müssen die folgenden Felder festlegen, um für einen Datenpunkt einen Alarm am Bedienplatz zu konfigurieren:

Alarmtypoperatoren und deren Bedeutung

Alarmtypoperatoren

Operand

Bedeutung

Zugehörige Alarmkategorie

ODER

=

Gleich (nur für binäre Punkte)

Diskret

EQ

||

ODER

NE

!||

NOR

BET

..

Zwischen zwei Werten

NBET

!..

Nicht zwischen zwei Werten

LT

<

Kleiner als

Fortlaufend

LE

<=

Kleiner oder gleich

GT

>

Grösser als

GE

>=

Grösser oder gleich

Fehlerbedingungen für Managementstationsalarme

Die folgenden Beispiele veranschaulichen Alarmkonfigurationen für Einzel- und Mehrfachalarme.

Alarmkonfiguration für einen einzelnen Alarm

Die CSV-Konfiguration für einen einzelnen Alarm sieht wie folgt aus.

Alarmkonfiguration für einen einzelnen Datenpunkt
Alarmkonfiguration für einen einzelnen Datenpunkt

Nach dem Import der obigen CSV-Datei wird der Alarm wie folgt konfiguriert.

Alarmkonfiguration für einen einzelnen Datenpunkt nach dem Import
Alarmkonfiguration für einen einzelnen Datenpunkt nach dem Import

Alarmkonfiguration für mehrere Alarme

Die CSV-Konfiguration für mehrere Alarme sieht wie folgt aus.

CSV-Datei für einen Alarm mit mehreren Punkten
CSV-Datei für einen Alarm mit mehreren Punkten

Nach dem Import der obigen CSV-Datei sieht die Alarmkonfiguration wie folgt aus.

CSV-Datei für mehrere Punkte nach dem Import
CSV-Datei für mehrere Punkte nach dem Import

 

Wertattribute

Die Min-, Max-, Auflösungs-, Einheit-Daten in der CSV-Datei können wie folgt konfiguriert werden:

Min Max Konfiguration in der CSV-Datei
Min Max Konfiguration in der CSV-Datei

Die Min-, Max-, Auflösungs-, Einheit- und StatusTextGruppen-Daten können für den Datentyp Blob nicht konfiguriert werden.

Nach dem Import werden die Änderungen auf dem Expander Details angezeigt.

Konfiguration der Min-/Max-Eigenschaften
Konfiguration der Min-/Max-Eigenschaften

 

Zustandstexte für Aufzählungen und boolesche Datentypen

Bei Aufzählungen und booleschen Datentypen müssen normalerweise anstelle der Rohwerte bestimmte Texte angezeigt werden. So kann beispielsweise die 0/1 eines booleschen Datentyps als Start/Stopp dargestellt werden. Dies erreichen Sie, indem Sie den Text in das Feld StateText eingeben. Die einzelnen Zustandstexte werden durch ein Dollarzeichen $ getrennt.

Das Attribut StateText in einer CSV-Datei für einen Booleschen Punkt kann wie folgt konfiguriert werden:

Da ein Boolescher Punkt maximal zwei Zustände haben kann, hat auch die Textgruppe zwei Zustände. Die beiden Zustände entsprechen den Wertebereichen von Minimum und Maximum. Nach dem Import der CSV-Datei zeigt der Expander Details Folgendes an:

Um mehr als zwei Zustände darzustellen, werden wir nun das Attribut StateText eines Multistate-Punkts konfigurieren. In dem unten wiedergegebenen Beispiel einer CSV-Datei verfügt die Textgruppe über drei Zustände, nämlich State1, State2 und State3.

Nach dem Import der CSV-Datei zeigt der Expander Details Folgendes an:

Sie können nun in der Dropdown-Liste den gewünschten Zustand wählen. Durch Auswahl des Zustands wird der relevante Wert in den Datenpunkt geschrieben. Der Wertebereich liegt zwischen den in der CSV-Datei festgelegten Mindest- und Maximalwerten.

Nach dem Import der CSV-Datei eines solchen Punkts wird auch dessen Textgruppe der Liste der Textgruppen hinzugefügt. Die folgende Abbildung zeigt den Textgruppen-Editor mit den drei Zustandstexten.

Der Importer überprüft die Textgruppennamen entweder aus den im Abschnitt Text definierten Textgruppen in derselben CSV-Datei oder aus den im System vorhandenen Textgruppen.

StateTexts sind nur für Multistate-Punkte und Binärpunkte anwendbar, da Gleitkommawerte keine integralen Zustände haben. Wenn aber eine CSV-Datei StateText für Datenpunkte mit dem Datentyp FLOAT32/FLOAT64 enthält, werden die StateText-Daten für den betreffenden Datenpunkt vom Importer ignoriert.

Bei einem Reimport ersetzt der Importer eine bestehende Textgruppe eines Punkts durch die neue, in der CSV-Datei genannte Textgruppe.

Abhängigkeit von StateTexts von den Mindest- und Maximalwerten eines Punkts

Während der Analyse einer CSV-Datei werden die StateTexts mit den in der CSV-Datei angegebenen Mindest- und Maximalwerten überprüft. Wenn der Importer StateTexts nicht analysiert, kann das einen der folgenden Gründe haben:

In diesen Fällen wird ein Warnhinweis in die Logdatei geschrieben. Die Analyse ignoriert jedoch weiterhin die StateText-Werte eines betreffenden Punkts.

Bei Aufzählungen und booleschen Datentypen müssen normalerweise anstelle der Rohwerte bestimmte Texte angezeigt werden. So kann beispielsweise die 0/1 eines booleschen Datentyps als Start/Stopp dargestellt werden. Dies erreichen Sie, indem Sie den Text in das Feld StateText eingeben. Die einzelnen Zustandstexte werden durch ein Dollarzeichen $ getrennt.

 

Variationen der Datenpunkthierarchie

Im Managementsystem können Datenpunkte in verschiedenen Hierarchien angezeigt werden. Hierarchien spiegeln den strukturellen Aufbau der Datenpunkte wider. Die drei wichtigsten Hierarchien sind die physikalische, die technische und die Betreiberhierarchie. Die physikalische Hierarchie zeigt die Datenpunkte als Bestandteil des Hardwaregeräts. Sie werden daher als flache Liste von Datenpunktobjekten unterhalb eines Geräteordners dargestellt. Neben der Darstellung der physikalischen Grenzen der Datenpunkte ist es häufig notwendig, den Datenpunkten eine logische oder technische Struktur zu geben. Ein Datenpunkt für den Digitaleingang und einer für den Digitalausgang können beispielsweise den Zustand und die Steuerung einer Pumpe technisch darstellen. In diesem Fall besteht die Möglichkeit, die beiden Datenpunkte als untergeordnete Elemente eines Aggregator-Datenpunktes anzuordnen, der die Pumpe darstellt. Hierzu wird der Pfad in der technischen Hierarchie angegeben. Der Pfad kann mehrere Elemente einschliessen, die durch ein bestimmtes Trennzeichen getrennt werden. Jedes Element des Pfads wird dann in eine Hierarchie übertragen. Die folgende Abbildung veranschaulicht dies.

Beachten Sie, dass im obigen Beispiel beide Datenpunkte die gleiche Hierarchiekonfiguration haben. Dies hat zur Folge, dass beide Datenpunkte als ein untergeordnetes Element des gleichen übergeordneten Elements (Pump_1) angezeigt werden. Auch wenn es keine Besonderheit der Modbus-Integration ist, sollte an dieser Stelle erwähnt werden, dass dem Aggregatorordner nun eine Funktion zugewiesen werden kann, die diesem eine sinnvolle Bedeutung gibt. Indem Sie beispielsweise dem Ordner Pump_1 eine geeignete Funktion zuweisen, kann der Ordner in Grafiken zusammen mit einem passenden Symbol dargestellt werden, das die darin enthaltene Datenpunktsammlung kennzeichnet.

Technische & Betreiberhierarchie

Beachten Sie die sechs Punkte, an denen die technische und Betreiberhierarchie wie folgt definiert werden:

Hierarchiekonfiguration in CSV
Hierarchiekonfiguration in CSV

Als Trennzeichen für die Ebene wird die Gegenschräge ‘\’ verwendet. Die Hierarchiezeichenfolge (für technische und Benutzerhierarchien) muss mit der Gegenschräge '\' beginnen und enden.

info

Hinweis:
Wenn Sie in der CSV-Datei nur die Gegenschräge '\' als Trennzeichen eingeben, wird das entsprechende Objekt direkt unter dem Basisordner in die entsprechende Sicht eingefügt.

Nach dem Import wird die Technische Sicht der System Browser-Hierarchie wie folgt dargestellt:

Technische Hierarchie im System Browser
Technische Hierarchie im System Browser

Die Benutzerdefinierte Sicht der System Browser-Hierarchie sieht wie folgt aus:

Betreiberhierarchie im System Browser
Betreiberhierarchie im System Browser

 

Modbus-Funktionscode

Das Modbus-Protokoll definiert einen Satz von Funktionscodebefehlen zum Lesen aus bzw. Schreiben in Coils/Register (Speicherpositionen) von Feldgeräten, wodurch diese überwacht und gesteuert werden können. Der Modbus-Treiber unterstützt alle Modbus-Funktionscodes, die in der folgenden Tabelle aufgeführt sind. Er verwendet diese für die Interaktion mit den Modbus-Geräten.

Modbus-Funktionscode

Funktionscode

Registertyp

1

Read Coil

2

Read Discrete Inputs

3

Read Holding Registers

4

Read Input Registers

5

Write Single Coil

6

Write Single Register

15

Write Multiple Coils

16

Write Multiple Registers

7

Read Exception Status

24

Read FIFO Queue

info

Hinweis:
Eine Coil ist ein einzelnes Bit, das sowohl gelesen als auch geschrieben werden kann. Ein diskreter Eingang ist ein einzelnes Bit, das schreibgeschützt ist. Ein Register hat zwei Byte (16 Bit). Ein Input-Register ist ein schreibgeschütztes Register. Ein Holding-Register ist ein Lese/Schreib-Register.

 

Funktionszuordnung

Wenn Sie der CSV-Definition des Punkts keinen Funktionsnamen hinzufügen, lädt der Importer die Standardwerte aus der Objektmodelldefinition in den Punkt.

Funktionszuordnung bei fehlendem Funktionsnamen
Funktionszuordnung bei fehlendem Funktionsnamen

Wenn Sie das Objektmodell des Modbus-Punkts wählen, können Sie überprüfen, dass die Funktionsattribute des Punkts aus dem gewählten Objektmodell festgelegt wurden.

Funktionszuordnung im Objektmodell
Funktionszuordnung im Objektmodell

Nachdem den Importregeln eine geeignete Funktion hinzugefügt wurde, kann in der CSV-Datei auf diese verwiesen werden. Fügen Sie hierzu den Funktionsschlüssel in das Feld Function des CSV-Eintrags ein.

Funktionszuordnung in der CSV
Funktionszuordnung in der CSV

Nach dem Import sieht der Konfigurator wie folgt aus:

Funktionszuordnung nach dem Import
Funktionszuordnung nach dem Import

 

Modbus-Objekte im System überwachen

Die Managementstation überwacht die Anzahl der Modbus-Objekte im System, um sicherzustellen, dass die Anzahl dieser Objekte die definierten Grenzwerte für Systemobjekte nicht überschreitet. Die Überwachung verwendet Eigenschaften wie Systemobjektlimite, Systemlast, Systemobjekten und Meldungsschwelle. Diese Eigenschaften werden im Register Erweiterte Bedienung angezeigt, wenn Sie das Objekt Server aus der Managementansicht wählen. Je nach Situation führt die Managementstation eine der folgenden Aktionen durch:

Die maximal zulässige Grenze wird durch die Eigenschaft Systemobjektlimite definiert.

Die folgenden Szenarien vermitteln ein besseres Verständnis der Überwachungstätigkeit:

 

 

Einträge in der Config-Datei

Die folgenden Konfigurationsparameter können im Abschnitt mod der Konfigurationsdatei unter [installation drive:]\[installation folder]\[project]\config eingestellt werden.
Hinweis: Sie müssen der Konfigurationsdatei den Abschnitt mod hinzufügen.

[mod]

littleEndianRegister=1

[mod_1]

littleEndianRegister=1

[mod]

littleEndianRegister=0

Wenn der Wert des Parameters littleEndianRegister auf eine bestimmte Treiberinstanznummer festgelegt werden muss, müssen Sie den Abschnitt [mod] wie folgt in die Config-Datei einfügen:

[mod_<drivernumber>]

littleEndianRegister=0

Um zum Beispiel den Wert des Parameters littleEndianRegister für Treibernummer 3 einzustellen, geben Sie Folgendes ein:

[mod_3]

littleEndianRegister=0

Hinweis:
Um die Konfiguration anzuwenden, müssen Sie den Modbus-Treiber neu starten.

[mod]

maxRequestRetryNumber = 3

Die folgende Tabelle enthält eine Liste aller möglichen Konfigurationsparameter.

Eingabe

Typ

Standard

Bereich

Beschreibung

aliveInterval

unsigned

10 [s]

>= 0

Gibt ein Aktivitätsinterval für den Treiber in Sekunden an.
Der Wert 0 bedeutet, dass keine Keepalive-Meldungen gesendet werden.
Ein Wert > 0 bedeutet, dass der Treiber alle AliveInterval-Sekunden eine Leseanforderung an alle angeschlossenen PLCs sendet.

aliveTimeoutMsg

unsigned

3, 1

Gibt den Funktionscode und die Referenznummer für die Aktivitätsanfrage an.

Der Parameter aliveTimeoutMsg besteht aus 2 Zahlen. Die 2 Zahlen müssen durch ein Leerzeichen getrennt sein. Die erste Zahl gibt den Modbus-Funktionscode an, der verwendet werden soll (z.B. 1 = Read Coils). Die zweite Zahl gibt die Registernummer auf dem Gerät an. Beide Zahlen müssen auf Werte gesetzt werden, die von allen beteiligten Modbus-Geräten unterstützt werden.

Hinweis: Verwenden Sie diese Einstellung nur in besonderen Fällen auf Treiberebene.

addUnicosMarker

unsigned

-1

–1..65535

Definiert die Referenznummer, anhand der der Treiber entscheidet, ob es sich um einen Modbus- oder einen UNICOS-Frame handelt. Der Eintrag ist standardmässig deaktiviert.

idleCloseTimeout

unsigned

0 [s]

>= 0

Der Treiber schliesst die Verbindung zum Modbus-Gerät, nachdem diese für den angegebenen Zeitraum (in Sekunden) inaktiv war. Dies betrifft nur Verbindungen im Mastermodus.

littleEndianRegister

bool

1

0, 1

Definiert, ob ein 16-Bit-Register in der Little-Endian- oder Big-Endian-Bytereihenfolge organisiert ist.

Standardmässig wird zuerst das Little-Endian-Register übertragen.

Hinweis:

  • Little-Endian = Das kleinstwertigste Bit wird an erster Stelle gespeichert.
  • Big-Endian = Das höchstwertigste Bit wird an erster Stelle gespeichert.

maxConnRetryNumber

unsigned

0

>= 0

Gibt an, wie oft der Treiber beim Senden eines Telegramms versucht, eine Verbindung herzustellen, wenn die Verbindungsanfrage fehlschlägt.

maxGap

uint

16

0..100

Wenn die Differenz zwischen zwei aufeinander folgenden Adressreferenznummern kleiner dem Wert von "maxGap" ist, werden diese Adressen in einem Abfrageblock gruppiert. Andernfalls wird ein zweiter Abfrageblock erstellt. Dieser Eintrag dient zur Abfrageoptimierung.

maxPendingRequests

unsigned

1

1..8

Die maximale Anzahl ausstehender Anforderungen ohne Antwort. Der Eintrag kann verwendet werden, um im Voraus mehr Anforderungen zu senden und so die Kommunikation zu beschleunigen.

Wenn Sie für diesen Eintrag einen Wert über 1 einstellen, müssen Sie sicherstellen, dass die von dem Treiber gesteuerten Modbus-Geräte mehrere Anforderungen verarbeiten können.

maxQueueSize

int

256

-

Definiert die Grösse einer Anforderungswarteschlange für den Mastermodus.

Zum Beispiel maxQueueSize = 1000.

maxRetryNumber

unsigned

0

>= 0

Gibt die Anzahl der Wiederholungen für den Verbindungsaufbau an, bevor die Verbindung als tot gekennzeichnet wird. Standard: 0, d.h. nach dem ersten Fehler versucht der Treiber fortlaufend ohne zeitliche Beschränkung, eine Verbindung herzustellen.

onlyActivePolls

bool

0

0, 1

OnlyActivePolls = 1 gibt an, dass in einem redundanten System nur der aktive Treiber Abfragen ausführt. Der Standardwert ist 0 (beide Treiber fragen das Modbus-Gerät ab).

pollOptForBlob

bool

1

0, 1

Definiert, ob für Blobs eine Abfrageoptimierung verwendet wird.

requestDelay

uint

0

>= 0

Zeit zwischen zwei Anforderungen (in ms). Der Wert sollte nicht zu hoch eingestellt werden, da sich hierdurch der Datendurchsatz reduziert. Dieser Eintrag ist nur relevant, wenn Gateways involviert sind.

tcpConnectTimeout

unsigned

2000 [ms]

>= 1000

Zeitlimit für die Verbindung. (in ms)

Beim Aufbau der Verbindung wartet der Treiber, bis die Verbindung initialisiert wurde und bis eine Bestätigung vom PLC eingeht. Wenn der Treiber während des Zeitlimits keine Bestätigung empfängt, versucht er, die Verbindung erneut herzustellen. Die Zeitüberschreitung wird mit folgendem Konfigurationseintrag festgelegt:
tcpConnectTimeout im Abschnitt Modbus.

maxRequestRetryNumber

unsigned

0

>=0

Gibt an, bis zu welcher Anzahl von fehlgeschlagenen Antworten die Verbindung aufrechterhalten wird, anstatt sie nach der ersten fehlgeschlagenen Antwort zu trennen. Wenn zum Beispiel für maxRequestRetryNumber der Wert 3 festgelegt wird, bleibt die Verbindung bestehen, bis drei Antworten fehlgeschlagen sind, anstatt sie nach der ersten fehlgeschlagenen Antwort zu trennen.

Ein typischer Anwendungsfall für diese Einstellung ist die Fehlerüberwachung, wenn mehrere Modbus RTU-Geräte mit nur einem Modbus-Gateway verbunden sind.

tcpReceiveBufferSize

unsigned

0

>=300

Mit diesem Eintrag kann die Grösse des TCP-Empfangspuffers eingestellt werden. Dies ist nur in Ausnahmefällen erforderlich, wenn ein altes Modbus-Gerät nicht mit den TCP-Fenstergrösseneinstellungen moderner Betriebssysteme umgehen kann.
Die Standardeinstellung 0 bedeutet, dass der Standard des Betriebssystems für den Empfangspuffer verwendet wird. Wenn eine Verbindung zu einem alten Gerät nicht hergestellt werden kann, kann es sein, dass ein niedriger Wert von z.B. 512 eine Verbindung ermöglicht.