Modbus/TCP-Treiber - Peripherieadressen-Panel

Das Konfigurationspanel für eine Peripherieadresse für den Modbus/TCP Treiber.

Abbildung 1. Panel für die Definition einer Modbus/TCP Peripherieadresse

Die Adresse ("Referenz") kann dabei entweder direkt im Textfeld Referenz eingegeben werden oder mit Hilfe der Spin-Buttons der einzelnen Komponenten erstellt werden:

Typ
  • MODBUS
  • UNICOS
SPS
Nummer der SPS, die bei der Parametrierung am internen Datenpunkt vom Typ _Mod_Plc eingestellt wurde.
FC/SFC

Die möglichen Funktionscodes. Es sind nicht alle Kombinationen von Funktionscodes, Modus und Adressen möglich. Im Slave Mode des WinCC OA-Treibers hängt der verwendete Funktionscode von der SPS ab. Die erlaubten Werte des FC/SFC Feldes sind:

Ausgang Eingang Polling Eingang spontan
MODBUS

5 write coil

6 write single register

15 force multiple coils

16 write multiple registers

23 atomic read/write

1 read coils

2 read input discrete

3 read multiple register

4 read input register

7 read exception status

24 read FIFO queue

5 write coil

6 write single register

15 force multiple coils

16 write multiple registers

23 atomic read/write

UNICOS nicht anwendbar nicht anwendbar

1 status

17 events32 (32 bit event frame)

18 events (16 bit event frame)

Anmerkung:

Der Funktionscode 23 wird nur für atomare Schreib-/Leseoperationen verwendet, d.h. dass eine Leseoperation immer mit einer Schreiboperation kombiniert wird. Deshalb sind Polling oder Einzelabfrage nicht durch diese Adressen unterstützt.

Der Empfangsmodus ist immer "Spontan", da das Lesen eine implizite Konsequenz aus einer Schreiboperation ist.

Weitere Informationen zum Function Code 23 (0x17) finden sich im Kapitel FC23

Referenznummer
Die Referenznummer gibt die Adresse innerhalb der SPS an. Es ist wichtig festzuhalten, dass die Referenznummer vom Funktionscode abhängig ist. Für Register basierende Funktionscodes ist die Referenznummer eine Adresse mit 16-bit Wort (2 Byte Integer ohne Vorzeichen), für bit basierende Funktionscodes ist die Referenznummer eine Bitnummer (2 Byte Integer ohne Vorzeichen).
Anmerkung: Stellen Sie unbedingt sicher, dass die verwendeten Funktionscodes mit den Datentypen kompatibel sind. Der Treiber prüft nur die Kompatibilität des Funktionscodes mit der Transformationsart.
VORSICHT: Verwenden Sie bei spontanem Input Mode und Funktionscode FC15 (force multiple coils) nur Referenznummern, die durch 16 teilbar sind (bei Angabe einer Nummer, die nicht durch 16 teilbar ist, kommt vom Treiber eine Fehlermeldung). Der Subindex kann in diesem Fall von 0 bis 1919 reichen. In den anderen Fällen gibt es diese modulo 16 Einschränkung nicht.
Transformationsart (Trans.Art)

Wählen Sie aus der Combobox die Transformationsart des Modbus Treibers (siehe Referenz Tabellen). Beim Modbus sind die Subindizes abhängig von der Transformationsart. Wenn beim Ändern der Trans.Art der aktuelle Wert größer ist als die obere Grenze, wird der Subindex auf den neuen Max.-Wert gesetzt.

Mittels der Transformationsart "Boolean" ist es möglich Bitgruppen innerhalb eines Modbus Registers auszulesen. Dies kann eingesetzt werden, um Multi-State Variablen zu realisieren, welche aus einer konfigurierten Anzahl aus Bits bestehen. Diese Bits müssen in einer aufeinanderfolgenden Reihenfolge innerhalb des Registers liegen und dürfen keine Registergrenzen überschreiten.

Der "Subindex" der boolschen Transformation wird als Offset innerhalb des Registers verwendet und das "Bits" Feld gibt die Anzahl an relevanten Bits an.
Besonderheiten bei der Transformationsart "string" und "blob"
Beim Auslesen eines Modbus Registers mit der Transformationsart "string" oder "blob" kann die Anzahl der zu lesenden Bytes über einen optionalen Parameter [:<Anzahl der Bytes>] in der Adressreferenz eingestellt werden. Zum Beispiel: die Adressreferenz M.1.3.10:100 liest 100 Bytes ab der Adresse M.1.3.10 aus. Standardmäßig wird immer die maximale Datenlänge von 240 Bytes ausgelesen.

Beim Schreiben eines Blobs oder Strings wird standardmäßig nur die Anzahl der Bytes entsprechend der Blob- bzw. String-Länge, inklusive der Null am Ende, geschrieben. Auch hier kann der optionale Parameter [:<Anzahl der Bytes>]in der Adressreferenz verwendet werden. Zum Beispiel: die Adressreferenz M.1.3.10:20 schreibt maximal 20 Bytes beginnend bei der Adresse M.1.3.10. Falls in diesem Beispiel ein Blob oder String mit einer Datenlänge > 20 Bytes geschrieben wird, dann gibt der Treiber eine Fehlermeldung im Log aus.

Subindex

Der Subindex des Modbus ist abhängig von der Transformationsart. Die Beschränkung resultiert aus der maximalen Datenlänge von 240 Bytes in einem Modbus Frame und außerdem von den Funktionscodes:

Transformationsart Maximaler Subindex Mögliche Funktionscodes
boolean 1919

FC 3 (read multiple registers)

FC 4 (read input registers)

FC 16 (write multiple registers)

FC 24 (read FIFO queue)

char 239
int16 119
uint16 119
int32 59
uint32 59
int64 29
uint64 29
byte 59
float 59
double 29
boolean 1919

FC 1 (read coils)

FC 2 (read input discretes)

FC 15 (force multiple coils)

boolean as byte 0 FC 5 (write coil)
boolean 15 FC 6 (write single register)
byte 1
int16 0
uint16 0
boolean 7 FC 7 (read exception status)
byte 0
MOD10 Size 2 0

FC 3 (read multiple registers)

FC 4 (read input registers)

FC 16 (write multiple registers)

MOD10 Size 3 0
MOD10 Size 4 0
Low-Level-Vergleich
Diese Option kann nur ausgewählt werden, wenn die Übertragungsrichtung auf Eingang eingestellt wurde. Ist sie markiert, so werden Daten nur bei einer Änderung verschickt. Der Vergleich beruht auf den Rohdaten ohne irgendeine Umrechnung.
Richtung
Über die Radioboxen im Bereich Richtung wird eingestellt, ob Werte eines Datenpunktelements in Befehlsrichtung (Ausgang), Melderichtung (Eingang) oder in beide Richtungen (Ein/Aus) verschickt werden.
Empfangsmodus
Folgende Empfangsmodi stehen für den Eingang zur Verfügung:
  • Spontan
  • Polling
  • Einzelabfrage (Single query)
Pollgruppe
In dieser Combobox können bereits existierende Pollgruppen ausgewählt werden. Stehen keine Pollgruppen zur Auswahl, so müssen diese zunächst in einem eigenen Panel mit den spezifischen Polling-Parameter angelegt werden. Durch Klick auf die Schaltfläche Pollgruppen... wird dieses Panel aufgeschaltet (weitere Informationen zu den Pollgruppen und den Polling-Parameter finden Sie auf der Seite Pollgruppen).
Adresse aktiv
Die Checkbox Adresse aktiv ist angeklickt. Die Adresse wird vom Treiber verwendet (siehe_address). Eine inaktive Adresse existiert zwar, die Attribute können auch gesetzt und abgefragt werden, der Treiber verwendet diese aber nicht. Das heißt, es können für diesen Datenpunkt keine Werte an die SPS geschickt bzw. von der SPS empfangen werden.
Anmerkung: Der Mobdus-Treiber führt eine Generalabfrage beim Aufbau der Verbindung durch. Dieses Verhalten kann mittels des Config-Eintrages [mod] autoGQ angepasst werden.