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.

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.
- Min. Rohwert – Untergrenze der Rohwerteskala
- Max. Rohwert – Obergrenze der Rohwerteskala
- Min. Konfig-Wert – Untergrenze der Konfigurationswerteskala
- Max. Konfig-Wert –Obergrenze der Konfigurationswerteskala
Alarm
Sie müssen die folgenden Felder festlegen, um für einen Datenpunkt einen Alarm am Bedienplatz zu konfigurieren:
- AlarmClass: Die Alarmklasse, die für einen Alarm aktiviert werden soll.
- AlarmType: Die Bedingung für die Ausgabe eines Alarms. Siehe Tabelle unten.
- AlarmValue: Der Wert oder Wertebereich, für den ein Alarm ausgegeben wird.
- EventText: Der Text, der beim Ausgeben eines Alarms angezeigt wird.
- NormalText: Der Text, der beim Verstummen eines Alarms angezeigt wird.
- UpperHysteresis: Die obere Grenze für den Alarmwert, über die hinaus Alarme erzeugt werden.
- LowerHysteresis: Die untere Grenze für den Alarmwert, unter dem Alarme erzeugt werden.
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
- Folgende Alarmtypwerte werden unterstützt: EQ (gleich), NE (ungleich), LT (kleiner als), LE (kleiner oder gleich), GT (grösser als), GE (grösser oder gleich), BET (zwischen), NBET (nicht zwischen).
- Für binäre (boolesche) Punkte wird nur der Alarmtypwert "EQ" (gleich) unterstützt.
- Für binäre (boolesche) Punkte kann nur ein Alarm angegeben werden.
- Die Alarmkonfiguration wird ignoriert, wenn sowohl diskrete als auch stetige Alarme verwendet werden. Ziehen Sie bezüglich der Kategorisierung von Alarmtypen die Tabelle zu Rate.
- Die Alarmkonfiguration wird ignoriert, wenn die Anzahl der Alarmwerte und -bereiche in den Spalten der Alarmkonfiguration inkonsistent ist.
- Die Alarmtypen BET und NBET werden für Elemente mit Zustandstexten nicht unterstützt.
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.

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

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

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

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

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.

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:
- Die Mindest- und Maximalwerte sind ungültig (z.B. Formatfehler, nicht-integrale Werte).
- Das Intervall zwischen dem Mindest- und dem Maximalwert entspricht nicht der eingegebenen Anzahl von StateTexts.
- Mindest- und Maximalwert sind identisch.
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:

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.

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:

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

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 |

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.

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.

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.

Nach dem Import sieht der Konfigurator wie folgt aus:

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:
- Ausgabe einer Warnung, wenn Sie sich der maximal zulässigen Grenze nähern.
- Generierung eines Alarms, wenn die Anzahl der Systemobjekte die maximal zulässige Grenze überschreitet.
- Verhinderung des Imports weiterer Modbus-Objekte, wenn damit die maximal zulässige Anzahl von Systemobjekten überschritten würde.
Die maximal zulässige Grenze wird durch die Eigenschaft Systemobjektlimite definiert.
Die folgenden Szenarien vermitteln ein besseres Verständnis der Überwachungstätigkeit:
- Wenn die Anzahl der Modbus-Objekte unterhalb der Systemgrenzen (mit der Eigenschaft Systemobjektlimite festgelegt) und der Sicherheitsschwelle (mit der Eigenschaft Meldungsschwelle festgelegt) liegt, dann zeigt die Eigenschaft Systemlast im Register Erweiterte Bedienung den Wert Normal an.
Hinweis: Wenn Sie Modbus-Schnittstellen, Geräte oder Punkte importieren möchten, lässt das System dies nur zu, wenn die Eigenschaften Systemobjektlimite und Meldungsschwelle die jeweils definierten Grenzen damit nicht überschreiten. - Wenn die Anzahl der Modbus-Objekte zwischen den Systemgrenzen (mit der Eigenschaft Systemobjektlimite festgelegt) und der Sicherheitsschwelle (mit der Eigenschaft Meldungsschwelle festgelegt) liegt, dann zeigt die Eigenschaft Systemlast im Register Erweiterte Bedienung den Wert Warnung an.
Hinweis: Wenn der Importvorgang die Sicherheitsschwelle überschreitet, informiert Sie eine Warnmeldung, wie nahe Sie der Grenze sind (z.B. 90%), und Sie können dann entscheiden, ob Sie mit dem Import fortfahren möchten oder nicht. - Wenn die Anzahl der Modbus-Objekte die Systemgrenzen (mit der Eigenschaft Systemobjektlimite festgelegt) überschreitet, zeigt die Eigenschaft Systemlast im Register Erweiterte Bedienung den Wert Alarm an.
Hinweis: Wenn der Importvorgang die Systemgrenzen überschreitet, wird eine Fehlermeldung angezeigt und informiert Sie, dass der Import nicht gestartet wird.






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.
- Legt fest, dass alle Treiberinstanzen zwingend die Little Endian-Bytereihenfolge verwenden.
[mod]
littleEndianRegister=1
- Wenn für eine Treiberinstanz spezifische Konfigurationsparameter erforderlich sind, können diese unter [mod_n] angegeben werden, wobei n für die Instanznummer steht. Wenn zum Beispiel der Konfigurationsparameter nur auf den Treiber mit der Instanznummer 1 angewendet werden soll, muss im Abschnitt mod Folgendes angegeben werden:
[mod_1]
littleEndianRegister=1
- Um im Falle einer FEP-Installation den Modbus-Treiber für die Verwendung mit PAC-Zählern zu aktivieren, müssen Sie der Config-Datei explizit den Abschnitt [mod] hinzufügen. Fügen Sie dann einen Eintrag für den Parameter littleEndianRegister hinzu und setzen Sie dessen Wert auf 0. Dies ist wichtig, da bei einer FEP-Installation der Config-Datei während der Projekterstellung kein Eintrag für den Parameter littleEndianRegister hinzugefügt wird. Sie fügen den Abschnitt [mod] wie folgt in die Datei ein:
[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.
- Um anzugeben, bis zu welcher Anzahl von fehlgeschlagenen Antworten (z. B. 3 fehlgeschlagene Antworten) die Verbindung aufrechterhalten wird, anstatt sie nach der ersten fehlgeschlagenen Antwort zu trennen, fügen Sie den folgenden Eintrag hinzu:
[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. |
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:
|
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: |
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. |