Sie sind auf Seite 1von 56

ibaPDA-Interface Modbus over TCPIP

Schnittstelle zu Modbus over TCP

Handbuch
Ausgabe 2.5
Hersteller

iba AG
Königswarterstr. 44
D-90762 Fürth

Kontakte
Zentrale +49 911 97282-0
Telefax +49 911 97282-33
Support +49 911 97282-14
Technik +49 911 97282-13

E-Mail: iba@iba-ag.com
Web: www.iba-ag.com
Weitergabe sowie Vervielfältigung dieser Unterlage, Verwertung und Mitteilung ihres
Inhalts sind nicht gestattet, soweit nicht ausdrücklich zugestanden. Zuwiderhandlungen
verpflichten zu Schadenersatz.
 iba AG 2011, alle Rechte vorbehalten.
Der Inhalt dieser Druckschrift wurde auf Übereinstimmung mit der beschriebenen Hard-
und Software überprüft. Dennoch können Abweichungen nicht ausgeschlossen
werden, so dass für die vollständige Übereinstimmung keine Garantie übernommen
werden kann. Die Angaben in dieser Druckschrift werden jedoch regelmäßig
aktualisiert. Notwendige Korrekturen sind in den nachfolgenden Auflagen enthalten
oder können über das Internet heruntergeladen werden.
Die aktuelle Version liegt auf unserer Website http://www.iba-ag.com zum Download
bereit.
Schutzvermerk
Windows® ist eine Marke und eingetragenes Warenzeichen der Microsoft Corporation.
Andere in diesem Handbuch erwähnte Produkt- und Firmennamen können Marken
oder Handelsnamen der jeweiligen Eigentümer sein.

Version Datum Revision - Kapitel / Seite Autor Version SW


2.5 06.12.2011 Neu: TCP/IP MODBUS Client ko
ibaPDA-Interface Modbus over TCPIP Handbuch

Inhaltsverzeichnis

1 Zu diesem Handbuch........................................................................................5
1.1 Zielgruppe ......................................................................................................... 5
1.2 Grundkenntnisse ............................................................................................... 5
1.3 Schreibweisen................................................................................................... 5
1.4 Verwendete Symbole ........................................................................................ 6

2 Einleitung...........................................................................................................7
2.1 Geltungsbereich................................................................................................ 7
2.2 Modbus over TCP/IP......................................................................................... 7
2.3 MODBUS Datenmodell ..................................................................................... 8
2.4 MODBUS Client/Server-Modell......................................................................... 9
2.5 Referenzen ..................................................................................................... 10

3 Dekodierung für MODBUS over TCP/IP ........................................................ 11


3.1 Byte-Reihenfolge im Netzwerk........................................................................ 11
3.2 MBAP Header ................................................................................................. 11
3.3 Funktionscode (Fcode): .................................................................................. 12
3.4 Datenfelder ..................................................................................................... 13

4 Systemvoraussetzungen................................................................................14
4.1 Voraussetzungen des ibaPDA-Rechners........................................................ 14
4.2 Einschränkungen in ibaPDA ........................................................................... 14

5 MODBUS TCP/IP – Server-Modus..................................................................15


5.1 ibaPDA MODBUS TCP/IP Telegramm-Layout ................................................ 15
5.1.1 Integer-Modul .................................................................................................. 15
5.1.2 DIG512-Modul................................................................................................. 15
5.1.3 MODBUS Real Modul ..................................................................................... 16
5.1.4 MODBUS Generic Modul ................................................................................ 16
5.2 MODBUS-Server-Konfiguration in ibaPDA ..................................................... 17
5.2.1 MODBUS TCP/IP Server – Allgemeine Einstellungen .................................... 18
5.2.2 Modultyp Integer ............................................................................................. 19
5.2.2.1 Register Allgemein .......................................................................................................19
5.2.2.2 Register Analog ............................................................................................................20
5.2.2.3 Register Digital .............................................................................................................21
5.2.3 Modultyp Dig512 ............................................................................................. 22
5.2.3.1 Register Allgemein .......................................................................................................22
5.2.3.2 Register Digital .............................................................................................................22
5.2.4 Modultyp Real ................................................................................................. 23
5.2.4.1 Register Allgemein .......................................................................................................23
5.2.4.2 Register Analog ............................................................................................................23
5.2.4.3 Digital tab......................................................................................................................24
5.2.5 MODBUS Generic-Modul................................................................................ 24
Ausgabe 2.5 3
Handbuch ibaPDA-Interface Modbus over TCPIP

5.2.5.1 Register Allgemein....................................................................................................... 24


5.2.5.2 Register Analog ........................................................................................................... 26
5.2.5.3 Register Digital............................................................................................................. 27
5.3 Erfassung starten............................................................................................ 27
5.4 Diagnose......................................................................................................... 28
5.4.1 MODBUS TCP/IP-Paketaufbau ...................................................................... 28
5.4.2 Diagnose in ibaPDA-V6 .................................................................................. 29
5.4.2.1 Verbindungsübersicht .................................................................................................. 29
5.4.2.2 Istwertanzeige in den Signaltabellen ........................................................................... 30
5.4.3 Diagnose ohne SPS........................................................................................ 30

6 MODBUS TCP/IP – Client-Modus................................................................... 33


6.1 ibaPDA – MODBUS TCP/IP Telegramm-Layout ............................................. 33
6.1.1 Antwort Read Coils (0x01) .............................................................................. 34
6.1.2 Antwort Read Discrete Inputs (0x02) .............................................................. 34
6.1.3 Read Holding Registers (0x03)....................................................................... 35
6.1.4 Read Input Registers (0x04) ........................................................................... 35
6.2 MODBUS Client-Konfiguration in ibaPDA....................................................... 36
6.2.1 TCP/IP MODBUS Client – Allgemeine Einstellungen ..................................... 37
6.2.2 MODBUS Client-Modul ................................................................................... 37
6.2.2.1 Register Allgemein....................................................................................................... 37
6.2.2.2 Register Analog ........................................................................................................... 39
6.2.2.3 Register Digital............................................................................................................. 40
6.2.3 Erfassung starten............................................................................................ 40
6.3 Diagnose......................................................................................................... 41
6.3.1 MODBUS TCP/IP-Paketaufbau ...................................................................... 41
6.3.2 Diagnose in ibaPDA-V6 .................................................................................. 42
6.3.2.1 Verbindungsübersicht .................................................................................................. 42
6.3.2.2 Aktuelle Werte im Register Diagnose .......................................................................... 43

7 SPS-Konfiguration.......................................................................................... 44
7.1 Modicon Quantum........................................................................................... 44
7.1.1 Konfiguration der TCP/IP-Schnittstelle............................................................ 44
7.1.2 Ladder-Programm für die SPS........................................................................ 46
7.1.2.1 ibaPDA sendet keine Quittierung (Beispiel)................................................................. 46
7.1.2.2 ibaPDA sendet eine Quittierung (Beispiel) .................................................................. 47
7.1.3 Concept-Programm für die SPS ..................................................................... 48
7.1.3.1 Beispiel für ConCept-Konfiguration und -Programm ................................................... 48
7.2 Unity Pro XL-Programm für die SPS (Beispiel Generic-Modul) ...................... 50
7.3 MODBUS TCPIP-Konfiguration in PL7 Pro..................................................... 51
7.3.1 Netzwerkkonfiguration .................................................................................... 51
7.3.2 Nachrichten-Konfiguration (Beispiel) .............................................................. 52

8 Support und Kontakt ...................................................................................... 54

4 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

1 Zu diesem Handbuch
Dieses Handbuch beschreibt die Bedienung der Software-Schnittstelle ibaPDA-
Interface Modbus over TCPIP.

1.1 Zielgruppe
Im Besonderen wendet sich dieses Handbuch an ausgebildete Fachkräfte, die mit dem
Umgang mit elektrischen und elektronischen Baugruppen sowie der Kommunikations-
und Messtechnik vertraut sind. Als Fachkraft gilt, wer auf Grund seiner fachlichen
Ausbildung, Kenntnisse und Erfahrungen sowie Kenntnis der einschlägigen
Bestimmungen die ihm übertragenen Arbeiten beurteilen und mögliche Gefahren
erkennen kann.

1.2 Grundkenntnisse
Folgende Grundkenntnisse sind zur Bedienung der Software ibaPDA-Interface Modbus
over TCPIP erforderlich:
 Grundkenntnisse des Betriebssystems Windows
 Grundkenntnisse im Umgang mit ibaPDA-V6
 Grundkenntnisse der Software des Zielsystems

1.3 Schreibweisen
In diesem Handbuch werden folgende Schreibweisen verwendet:

Menübefehl Menü „Funktionsplan“


Aufruf von Menübefehlen „Schritt 1 – Schritt 2 – Schritt 3 – Schritt x”
Beispiel:
Wählen Sie Menü „Funktionsplan – Hinzufügen – Neuer
Funktionsblock”.
Tastaturtasten <Tastenname>
Beispiel:
<Alt>; <F1>
Tastaturtasten gleichzeitig <Tastenname> + <Tastenname>
drücken Beispiel:
<Alt> + <Strg>
Oberflächenbuttons <Buttonname>
Beispiel:
<OK>; <Abbrechen>
Dateinamen, Pfade „Dateiname“, „Pfad”
Beispiel:
„Test.doc“

Ausgabe 2.5 5
Handbuch ibaPDA-Interface Modbus over TCPIP

1.4 Verwendete Symbole


Wenn in diesem Handbuch Sicherheitshinweise oder andere Hinweise verwendet
werden, dann bedeuten diese:

Gefahr! Stromschlag!
Wenn Sie diesen Sicherheitshinweis nicht beachten, dann droht die unmittelbare
Gefahr des Todes oder schwerer Körperverletzung durch einen Stromschlag!

Gefahr!
Wenn Sie diesen Sicherheitshinweis nicht beachten, dann droht die unmittelbare
Gefahr des Todes oder schwerer Körperverletzung!

Warnung!
Wenn Sie diesen Sicherheitshinweis nicht beachten, dann droht die mögliche Gefahr
des Todes oder schwerer Körperverletzung!

Vorsicht!
Wenn Sie diesen Sicherheitshinweis nicht beachten, dann droht die mögliche Gefahr
der Körperverletzung oder des Sachschadens!

Hinweis
Ein Hinweis gibt spezielle zu beachtende Anforderungen oder Handlungen an.

Wichtiger Hinweis
Hinweis, wenn etwas Besonderes zu beachten ist, z. B. Ausnahmen von der Regel.

Tipp
Tipp oder Beispiel als hilfreicher Hinweis oder Griff in die Trickkiste, um sich die Arbeit
ein wenig zu erleichtern.

Andere Dokumentation
Verweis auf ergänzende Dokumentation oder weiterführende Literatur.

6 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

2 Einleitung

2.1 Geltungsbereich
Dieses Handbuch beschreibt die Modbus-over-TCP/IP-Schnittstelle zu ibaPDA-V6.
Eine detaillierte Beschreibung der ibaPDA-Software finden Sie im ibaPDA-V6-
Handbuch.
Hinweis
Die folgenden Informationen in den Kapiteln 2 und 3 sind für interne Zwecke bzw.
sehr erfahrene Programmierer/ Anwender bestimmt.
Wenn Sie Ihr ibaPDA-System für die Arbeit mit einer SPS konfigurieren wollen,
überspringen Sie diesen Abschnitt und fahren Sie im Kapitel 5 "MODBUS TCP/IP –
Server-Modus" fort.

2.2 Modbus over TCP/IP


Die MODBUS-TCP-Schnittstelle kann von jedem Controller genutzt werden, der in der
Lage ist, Nachrichten nach dem MODBUS-Protokoll zu versenden.
Das Transmission Control Protocol (TCP) ist eines der Kernprotokolle der
Internetprotokoll-Familie.
IP arbeitet auf der unteren Vermittlungsschicht und ist für die Vermittlung von
Nachrichten zwischen Rechnern im Internet zuständig. TCP ist auf einer höheren
Schicht (Transportschicht) angeordnet und befasst sich mit den beiden Endsystemen.
TCP sorgt für einen zuverlässigen Datenstrom von einem Programm auf einem
Rechner zu einem anderen Programm auf einem anderen Rechner. TCP ist in
RFC1180, Kapitel 6, und in RFC768 beschrieben (siehe 2.5 Referenzen)
Modbus ist ein Protokoll für eine Client/Server-Kommunikation zwischen Geräten an
unterschiedlichen Bussen oder Netzwerken.
MODBUS ist derzeit in den folgenden Bussen oder Netzwerken implementiert, wie in
Abbidung 1 dargestellt:
 TCP/IP über Ethernet
 Asynchrone serielle Übertragung über unterschiedliche Medien
 MODBUS PLUS (High-Speed-Kommunikation über ein Token-Passing-
Netzwerk)

Abbildung 1: Modbus Implementierungen


Ausgabe 2.5 7
Handbuch ibaPDA-Interface Modbus over TCPIP

ibaPDA bietet die Möglichkeit, Signale mit dem MODBUS-Protokoll über serielle
Verbindungen und über TCP/IP zu messen. Dieses Handbuch beschreibt die
Kommunikation über TCP/IP.
Serverseitig ist für MODBUS over TCP/IP der Ziel-Port 502 für das Versenden von
Datenpaketen festgelegt. Das bedeutet, dass der ibaPDA-Treiber nur über Port 502
Daten empfangen kann. Der Quellport wird zufällig generiert, wie bei TCP/IP-
Anwendungen üblich, damit mehrere Verbindungen (Links) aufgebaut werden können.

2.3 MODBUS Datenmodell


Das MODBUS-Datenmodell basiert auf verschiedenen Grundtypen mit unterschied-
lichen Merkmalen. Die 4 Grundtypen sind:
Grundtypen Objekttyp Dienst Kommentar
Discrete Inputs einzelne Bits nur lesen Daten, die beispielsweise von den E/A
(Eingänge) eines Geräts kommen.

Coils (Ausgänge) einzelne Bits lesen / Bitinformationen, die durch das


schreiben Anwenderprogramm änderbar sind.

Input Registers 16-Bit Worte nur lesen Daten, die beispielsweise von den E/A
(Eingangsregister) eines Geräts kommen.

Holding Registers 16-Bit Worte lesen / Bitinformationen, die durch das


(Halteregister/ schreiben Anwenderprogramm änderbar sind.
Ausgangsdaten)

Für die Unterscheidung von Eingängen und Ausgängen, und Bit- und Wort-
adressierten Dateneinheiten ist kein Applikationsprogramm erforderlich. Die vier
Grundtypen können sich überlappen, sofern das Zielsystem diese richtig interpretiert.
Für jeden Grundtyp erlaubt das Protokoll die individuelle Auswahl von 65536 Daten-
einheiten. Das Lesen oder Schreiben dieser Dateneinheiten kann mehrere aufein-
anderfolgende Register umfassen bis zu einer maximalen Datengröße, die vom
Funktionscode abhängt.
Alle Daten, die über das MODBUS-Protokoll übertragen werden (Bits, Register),
müssen sich im Applikationsspeicher des Geräts befinden. Allerdings darf die physika-
lische Adresse im Speicher nicht mit der Datenzuordnung verwechselt werden. Die
einzige Voraussetzung ist, dass die Datenzuordnung mit der physikalischen Adresse
verknüpft wird.
Die logischen MODBUS Referenznummern, die bei MODBUS-Funktionen verwendet
werden, sind vorzeichenlose, ganzzahlige Indizes, beginnend bei 0.

8 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

2.4 MODBUS Client/Server-Modell


Der MODBUS-Dienst unterstützt eine Client/Server-Kommunikation für Geräte, die
über Ethernet TCP/IP verbunden sind.
Das Client/Server-Modell basiert auf 4 Nachrichtentypen:
- MODBUS Request,
- MODBUS Confirmation,
- MODBUS Indication,
- MODBUS Response

Abbildung 2: Client/Server Modell

Hinweis
Das Client/Server-Modell wird auch als Master/Slave-Modell bezeichnet:
- Der MODBUS-Client wird auch MODBUS-Master genannt (aktiver Partner)
- Der MODBUS-Server wird auch MODBUS-Slave genannt (passiver Partner).

ibaPDA kann sowohl als MODBUS-Server wie auch als MODBUS-Client agieren. iba
bietet 2 MODBUS-Lizenzen:
 ibaPDA-Interface-Modbus over TCPIP – Server (#31.001020)
 ibaPDA-Interface-Modbus over TCPIP – Client (#31.001022)

MODBUS over TCP/IP – Server-Modus


Der MODBUS-Server-Modus ist ab ibaPDA Version 6.17 verfügbar. Die ibaPDA-
Software agiert als Server (Slave), der auf Client-Anfragen wartet. Der Controller agiert
als Client (Master), der eine Verbindung zu ibaPDA anfordert.
Da ibaPDA der passive Kommunikationspartner ist, sollte der Controller so
programmiert sein, dass er eine Verbindung zu der in ibaPDA festgelegten IP-Adresse
aufbauen und die gewünschten Signale dorthin senden kann.
Daten werden nicht aktiv abgefragt, ibaPDA „hört“ die Daten nur mit, die über das
Netzwerk an Port 502 gesendet werden.
Bitte klären Sie mit dem Hersteller, ob der Controller als MODBUS-Client agieren kann
und der Controller über ein Ethernet-Modul verfügt.
Optional kann im ibaPDA I/O-Manager ausgewählt werden, dass eine Response-
Nachricht gesendet wird.

Ausgabe 2.5 9
Handbuch ibaPDA-Interface Modbus over TCPIP

MODBUS over TCP/IP – Client-Modus


Der MODBUS-Client-Modus ist ab ibaPDA Version 6.27 verfügbar. Die ibaPDA-Soft-
ware agiert als MODBUS-Client (Master) und fordert Daten vom Controller an. ibaPDA
baut die Verbindung zu einem MODBUS-Server (Slave) auf und liest periodisch die
Daten aus den Slaves. Bis zu 64 Slave-Verbindungen sind möglich.
Da es sich hier um eine aktive Kommunikation handelt, sollte der Controller so
programmiert sein, dass er über Port 502 eine Verbindung zu ibaPDA aufbaut.

2.5 Referenzen
1. ibaPDA-V6 Handbuch (siehe http://www.iba-ag.com/download/download.php)
2. A TCP/IP tutorial , RFC1180 (ftp://ftp.ripe.net/rfc/rfc1180.txt)
3. Transmission Control Protocol, RFC793 (ftp://ftp.ripe.net/rfc/rfc793.txt)
4. Modbus Messaging Implementation Guide V1 (http://www.modbus.org)
5. Modbus Application Protocol V1.1 (http://www.modbus.org)
6. Modbus Protocol Reference Guide Rev J, Modicon

10 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

3 Dekodierung für MODBUS over TCP/IP


Die folgende Darstellung zeigt den grundsätzlichen Aufbau eines MODBUS over
TCP/IP-Datenpakets.
MBAP MODBUS Application
Protocol Header
ADU Application Data Unit
PDU Protocol Data Unit

Abbildung 3: MODBUS TCP/IP ADU

3.1 Byte-Reihenfolge im Netzwerk


In der Computertechnik gibt es im Wesentlichen zwei Architekturen für den Umgang
mit Datenspeichern. Sie werden als Big Endian und Little Endian bezeichnet und
beziehen sich auf die Reihenfolge, in der die Bytes im Speicher abgelegt werden.
Die Bezeichnungen leiten sich ab von "Big End In" und "Little End In" und nehmen
Bezug auf die Art und Weise, wie ein Wert in den Speicher geschrieben wird. Auf
einem „Little Endian“-Computer (z. B. Intel) steht das niederwertigste Byte an der
kleinsten Speicheradresse. Ein Hex-Wert von 0x1234 beispielsweise wird in der
Reihenfolge 0x34 0x12 in den Speicher geschrieben. Entsprechend gilt für einen 4-
Byte-Wert, z. B. 0x12345678: 0x78 0x56 0x34 0x12.
Bei „Big Endian“-Computern (z. B. Motorola) erfolgt das Speichern in der umgekehrten
Reihenfolge, 0x1234 wird also als 0x12 0x34 gespeichert und 0x12345678 wird
gespeichert als (0x12, 0x34, 0x56, 0x78).
In der Netzwerktechnik hat sich Big Endian als Standard etabliert. Alle Daten, die über
ein Netzwerk transportiert werden, müssen im Big Endian-Format übertragen werden,
d. h. dass stets das höherwertige Byte zuerst gesendet wird.
Der ibaPDA-Treiber wandelt dann alle empfangenen Integer- und Float-Werte in das
Intel-Format (Swapping), also Little Endian um, da ibaPDA auf Intel-Rechnern unter
Windows läuft.
Für Daten, die nicht von einer ursprünglichen MODBUS-Steuerung kommen, bietet
ibaPDA mehrere Möglichkeiten, die Byte-Reihenfolge umzuwandeln. Siehe Kapitel
5.2.1 „MODBUS TCP/IP Server – “.

3.2 MBAP Header


MBAP ist ein spezieller Header, der bei der Kommunikation mit TCP/IP verwendet wird,
um die MODBUS Applikationsdaten zu indentifizieren. MBAP steht für MODBUS
Application Protocol Header. Der Header enthält folgende Felder:

Felder Bytes Beschreibung


Transaktions-ID 2 Kennzeichnung einer MODBUS Request/Response
Aktion
Protokoll-ID 2 0 = MODBUS-Protokoll
Länge 2 Anzahl der folgenden Bytes
Unit-ID 1 Kennzeichnung eines Remote-Slaves, der über eine
serielle Verbindung oder andere Bus-Verbindung
angeschlossen ist.

Ausgabe 2.5 11
Handbuch ibaPDA-Interface Modbus over TCPIP

 Transaktions-ID:
Kennzeichnet die Zuordnung der Aktionen: wird vom MODBUS-Client gesendet
(request), der MODBUS-Server kopiert die Transaktions-ID in das Antwort-
telegramm (response).
 Protokoll-ID:
Wird bei Multiplex-Verfahren verwendet, das MODBUS-Protokoll hat den Wert 0.
 Länge:
Gibt die Anzahl der folgenden Bytes wieder, inklusive Unit-ID, Funktionscode und
Datenfelder.
 Unit-ID (Geräteadresse):
Dieses Feld wird für interne Routing-Zwecke benutzt. Typischerweise für die
Kommunikation zu einem MODBUS-Slave über TCP oder seriell über ein
Gateway zwischen einem Ethernet TPC/IP-Netzwerk und einer seriellen
MODBUS-Verbindung. Das Feld wird vom MODBUS-Client in der Anfrage
(request) gesendet und muss vom Server mit demselben Wert in seiner Antwort
zurückgeschickt werden.
Wichtiger Hinweis!
Alle Felder im Header werden in Big-Endian kodiert.

3.3 Funktionscode (Fcode):


Ein Byte enthält den Funktionscode, der festlegt, welche Funktion aufgrund eines
Requests durch den Modicon Programming Controller ausgeführt werden soll.
Der ibaPDA-MODBUS TCP/IP-Server-Treiber unterstützt die Funktion:
 0x10: Write multiple registers

Der ibaPDA-MODBUS TCP/IP-Client-Treiber unterstützt die Funktionen:


 0x01: Read Coils (Ausgänge lesen)
 0x02: Read Discrete Inputs (Eingänge lesen)
 0x03: Read Holding Registers (Halteregister lesen)
 0x04: Read Input Registers (Eingaberegister lesen)

12 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

3.4 Datenfelder
Der Nutzdatenbereich ist in mehrere Unterbereiche unterteilt, wie Startadresse, Anzahl
der Register, Anzahl der Bytes und die aktuellen Daten. Der Inhalt dieser Felder hängt
vom verwendeten Funktionscode ab.

Felder Bytes Beschreibung


Startadresse 2 Startadresse des verwendeten Speicherbereichs
Anzahl der Register 2 Anzahl der verwendeten Register oder Coils
Anzahl der Bytes 1 Anzahl der Daten-Bytes
Datenbereich n n Daten-Bytes

Startadresse
Der ibaPDA-MODBUS-Server-Treiber sieht 64 Speicherbereiche für jeden Modultyp in
ibaPDA vor. Die Nummer, auch als “Modulindex” bezeichnet, ist der Index, der festlegt,
in welchen Speicherbereich der ibaPDA-Treiber die empfangenen Daten schreiben soll.
Die Modulindizes sind bestimmten Modulen zugeordnet:
Index 0 bis 63: MODBUS Integer & MODBUS Dig512
Index 100 bis 163: MODBUS Real
Index 200 bis 263: MODBUS Generic

Anzahl der Register


Dieses Feld enthält die Anzahl der Register, die in der Nachricht übertragen werden.
Mit MODBUS Integer und MODBUS Dig512 werden 34 Register gesendet. Mit einem
MODBUS Real-Modul werden 3 - 66 Register gesendet.
Im Generic-Modul ist die Anzahl der Register variabel, aber auf maximal 122 begrenzt.
In diesem Fall muss die Anzahl der Register, die gesendet werden, eingefügt werden.

Anzahl der Bytes


Dieser Wert ist immer die Anzahl der Register multipliziert mit 2, da die Register Word-
basiert sind (2 Bytes)

Datenbereich
Das Feld enthält die aktuellen Daten, die von ibaPDA gemessen werden. Der Datentyp
hängt vom verwendeten MODBUS-Modul ab.
Jede Modulart ist beschränkt auf eine feste Anzahl von Werten, die gesendet werden
können, mit Ausnahme des Generic-Moduls. Im Generic-Modul können alle
verfügbaren Datentypen nebeneinander verwendet werden. In ibaPDA muss nur die
Adresse des Signals und der verwendete Datentyp konfiguriert werden.

Ausgabe 2.5 13
Handbuch ibaPDA-Interface Modbus over TCPIP

4 Systemvoraussetzungen

4.1 Voraussetzungen des ibaPDA-Rechners


 Windows XP User sollten das Service Pack 2 installiert haben.
 ibaPDA V6.17 oder höher, wenn der Modbus-TCP/IP-Server-Modus verwendet
wird.
 ibaPDA V6.27 oder höher, wenn der Modbus-TCP/IP-Client-Modus verwendet
wird.
 Die entsprechende Lizenz (Modbus-TCP/IP-Server oder Modbus-TCP/IP-Client)
muss im ibaPDA Dongle vorhanden sein, siehe Abbildung 4 des ibaPDA I/O-
Managers.
Ist die Lizenz nicht vorhanden, wenden Sie sich bitte an iba, um eine
entsprechenden Lizenz zu erwerben.

Abbildung 4: Modbus Lizenz-Information

Hinweis
Es wird dringend empfohlen, die MODBUS TCP/IP-Kommunikation auf einem
separaten Netzwerk durchzuführen. Eine zusätzliche Netzwerkkarte kann erforderlich
sein, um Störungen von MODBUS TCP/IP-Nachrichten durch den Ethernet-Verkehr
vom ibaPDA-System zu anderen Netzknoten (File-Server, …) zu vermeiden.

4.2 Einschränkungen in ibaPDA


 Die maximale Länge einer MODBUS TCP/IP-Nachricht ist auf 244 Bytes
beschränkt.
 Verbindungen zu ibaPDA können nur über den Zielport 502 hergestellt werden.
Stellen Sie sicher, dass Port 502 nicht von der Firewall blockiert wird.
 ibaPDA unterstützt insgesamt bis zu 64 Verbindungen im MODBUS-TCP/IP-
Server-Modus und bis zu 64 Verbindungen im MODBUS-TCP/IP-Client-Modus.
 ibaPDA unterstützt die Funktionen 0x10 im MODBUS-TCP/IP-Server-Modus und
die Funktionen 0x01, 0x02, 0x03 und 0x04 im MODBUS-TCP/IP-Client-Modus.
 Jedes System, das in der Lage ist, Nachrichten mit dem MODBUS-TCP-Protokoll
als Server zu empfangen und zu beantworten, kann mit ibaPDA im MODBUS-
TCP/IP-Client-Modus eingesetzt werden.

14 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

5 MODBUS TCP/IP – Server-Modus

5.1 ibaPDA MODBUS TCP/IP Telegramm-Layout


Bei der MODBUS-Kommunikation mit ibaPDA wird jeder Verbindung ein ibaPDA-Modul
zugeordnet. Die Modulnummer sollte, wie später beschrieben, in der Steuerung
programmiert werden. Vier Modultypen werden unterstützt:

5.1.1 Integer-Modul
Die 32 analogen Werte sind vom Typ Integer und die 32 digitalen Werte vom Typ Bit.
Beispiel: Empfang von 32 Integer- und 32 Digitalwerten

rel.# Bytes C- ype Beschreibung Anmerkungen


MBAP 00 2 Short int. Transaktions-ID Wird automatisch mit jedem Zyklus
inkrementiert
02 2 Short int. Protokoll-ID 0
04 2 Short int. Cmd Länge 75
06 1 Byte Unit ID (nicht verwendet)
Fcode 07 1 Byte Funktionscode 0x10 (Write multiple registers)
Daten 08 2 Short int. Startadresse Modulindex 0..63
10 2 Short int. Anzahl der Register 34
12 1 Byte Anzahl der Bytes 68
13 64 Short int. 32 Analogwerte
77 4 Long 32 Digitalwerte

5.1.2 DIG512-Modul
Dieses Modul hat das gleiche Paketlayout wie das MODBUS-Integer-Modul, jedoch
werden die 32 Integer-Werte als 16-Bit-Werte interpretiert. Digitale Werte werden nicht
verwendet.
Beispiel: Empfang von 512 Bit-Werten (werden wie 32 Integer-Werte behandelt
(32 *16 bit))

rel.# Bytes C-Type Beschreibung Anmerkungen


MBAP 00 2 Short int. Transaktions-ID Wird automatisch mit jedem Zyklus
inkrementiert
02 2 Short int. Protokoll-ID 0
04 2 Short int. Cmd Länge 75
06 1 Byte Unit ID 0 (nicht verwendet)
Fcode 07 1 Byte Funktionscode 0x10 (Write multiple registers)
Daten 08 2 Short int. Startadresse Modulindex 0..63
10 2 Short int. Anzahl der Register 34
12 1 Byte Anzahl der Bytes 68
13 64 Short int. 32 Analogwerte enthalten die 512 Digitalwerte
77 4 Long 32 Digitalwerte Nicht verwendet

Ausgabe 2.5 15
Handbuch ibaPDA-Interface Modbus over TCPIP

5.1.3 MODBUS Real Modul


Die analogen Werte sind vom Typ Float (IEEE Format) und die 32 digitalen Werte sind
vom Typ Bit.

Beispiel: Empfang von n Float-Werten und 32 Digitalwerte (n = 1…32)


rel.# Bytes C-Type Beschreibung Anmerkungen
MBAP 00 2 Short int. Transaktions-ID Wird automatisch mit jedem Zyklus
inkrementiert
02 2 Short int. Protokoll-ID 0
04 2 Short int. Cmd Länge 139
06 1 Byte Unit ID 0 (nicht verwendet)
Fcode 07 1 Byte Funktionscode 0x10 (Write multiple registers)
Daten 08 2 Short int. Startadresse Modulindex 100..163
10 2 Short int. Anzahl der Register 66
12 1 Byte Anzahl der Bytes 132
13 128 Float 32 Analogwerte IEEE Float-Werte
141 4 Long 32 Digitalwerte

5.1.4 MODBUS Generic Modul


Die Werte können aus den folgenden Typen zusammengesetzt werden: Byte, Word
(16 Bit), DoubleWord (32 Bit), Short Integer (16 Bit), Long Integer (32 Bit) und Float
(IEEE-Format) mit maximal 244 Bytes.
Beispiel: Empfang von MODBUS-Generic mit n Bytes

rel. # Bytes C-Type Beschreibung Anmerkungen


MBAP 00 2 Short int. Transaktions-ID Wird automatisch mit jedem Zyklus
inkrementiert
02 2 Short int. Protokoll-ID 0
04 2 Short int. Cmd Länge n + 7 (max. 251)
06 1 Byte Unit ID 0 (nicht verwendet)
Fcode 07 1 Short int. Funktionscode 0x10 (Write multiple registers)

Daten 08 2 Short int. Startadresse Modulindex 200..263


10 2 Short int. Anzahl der Register n/2, aufgerundet (max. 122)
12 1 Byte Anzahl der Bytes im n (max. 244)
Register
13 244 Kombination Kombination aus
aus: analogen (Float und
Integer), und digitalen
Byte, Werten
Short Int.,
Long int.,
Word,
Dword,
Float

16 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

5.2 MODBUS-Server-Konfiguration in ibaPDA


Hinweis
Vor der ibaPDA-Version 6.27.0 wird die „TCP/IP Modbus Server“-Schnittstelle als
„TCP/IP Modbus“ bezeichnet, da die MODBUS Client-Schnittstelle erst ab Version
6.27.0 verfügbar ist.

Voraussetzungen
 Auf dem ibaPDA-PC sollten Netzwerkdienste eingerichtet sein.
 Der ibaPDA-Dongle muss für die TCP/IP MODBUS Server-Schnittstelle
freigeschaltet sein.

Konfigurationsüberblick:
1. Sofern noch nicht erfolgt, starten Sie ibaPDA-Server und dann ibaPDA-Client.
Stellen Sie sicher, dass der Client auf den richtigen Server zugreift.
2. Öffnen Sie den I/O-Manager und nehmen Sie die allgemeinen Einstellungen vor
wie im ibaPDA-Handbuch beschrieben.
3. Überprüfen Sie, ob im Signalbaum die Datenschnittstelle „TCP/IP Modbus“ oder
„TCP/IP Modbus Server“ angezeigt wird. Falls nicht, fehlt im Dongle die
entsprechende Freischaltung.
4. Klicken Sie auf den Zweig „TCP/IP Modbus Server“ und nehmen Sie die nötigen
allgemeinen Einstellungen für die MODBUS-Verbindung vor.
5. Konfigurieren Sie als nächstes in ibaPDA Module als MODBUS Integer,
MODBUS Dig512, MODBUS Real oder MODBUS Generic, indem Sie auf
"Klicken, um Modul anzufügen..." klicken. (64 Module können insgesamt
konfiguriert werden.)

6. Markieren Sie die Module im Signalbaum und nehmen die erforderlichen


allgemeinen Einstellungen und die dazugehörigen TCP/IP-Einstellungen vor. Der
Modulindex muss der Startadresse, die im MODBUS-TCP/IP-Telegramm
programmiert ist, entsprechen.
7. Tragen Sie die gewünschten Messsignale in die Analog- und Digitalsignaltabellen
ein.

Tipp
Sie können die Konfiguration ohne den Einsatz einer SPS mit einem TCP/IP-
Testprogramm überprüfen. Siehe Kapitel 5.4.3 „Diagnose ohne SPS“

Ausgabe 2.5 17
Handbuch ibaPDA-Interface Modbus over TCPIP

8. Wenn alle Einstellungen richtig konfiguriert sind, sollten grün hinterlegte Reihen
in der TCP/IP MODBUS-Verbindungsübersicht zu sehen sein. Jede grüne Zeile
zeigt eine bestehende Verbindung an.
Sobald eine Verbindung steht, sollten auch Live-Daten in der Signaltabelle des
ibaPDA I/O-Managers angezeigt werden. Siehe Kapitel 5.4.2.2 „Istwertanzeige in
den Signaltabellen“.

5.2.1 MODBUS TCP/IP Server – Allgemeine Einstellungen

Nehmen Sie folgende Einstellungen vor:


 Network-Byte-Order im Netzwerk verwenden
Standardeinstellung ist Big Endian, siehe Kap. 3.1 „Byte-Reihenfolge im
Netzwerk“.
 Realwerte tauschen auf Wort-Basis
Mit der Standardeinstellung kann der Swap-Modus für Float-Werte im Modultyp
Real geändert werden. Der Telegramm-Header bleibt davon unbeeinträchtigt.
 Little Endian-Byte-Order im Netzwerk verwenden
Wählen Sie diese Option, wenn der Client auf einem Little Endian-System basiert
 Digitalsignale tauschen (swap)
Nur in den Signaltabellen der Module „Real“ und „Integer“ wird die Byte-
Reihenfolge getauscht. Dies hat keine Auswirkung auf die Module „Dig512“ und
„Generic“. Informationen zu Generic-Modulen, siehe Kapitel 5.2.5.1.
 Antwort an den MODBUS-Master senden
Jedes Telegramm wird mit einem Antworttelegramm bestätigt. Das
Anworttelegramm spiegelt den MBAP Header, den Funktionscode, die
Startadresse und die Anzahl der Daten wider.
 Sequenzzähler ignorieren
Wenn ibaPDA erkennt, dass der Sequenzzähler (Transaktions-ID) nicht
fortlaufend hochgezählt wird, wird „Sequenzfehler“ in der Verbindungsübersicht
angezeigt. Ist diese Option ausgewählt, wird die Spalte Sequenzfehler aus der
Verbindungsübersicht entfernt.

Verbindungsübersicht
Sobald eine Verbindung aufgebaut ist, sollten Live-Daten in der Übersicht angezeigt
werden. Siehe Kapitel 5.4.2.1 „Verbindungsübersicht“.

18 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

5.2.2 Modultyp Integer

5.2.2.1 Register Allgemein

Abbildung 5: Grundeinstellungen Integer-Modul


 Verriegelt:
True: Nur autorisierte Benutzer können das Modul verändern.
False: Jeder Benutzer kann das Modul verändern
 Aktiviert:
True: dieses Modul wird von ibaPDA verarbeitet
False: dieses Modul wird nicht verarbeitet
 Name: Name des Moduls. Dieser Name wird an iba Analyzer weitergegeben, um
das Modul zu identifizieren.
 Modul Nr.: Fortlaufende Nummer, die von ibaPDA in aufsteigender Reihenfolge
vergeben wird. Sie kann vom Anwender geändert werden. Damit können Signale in
ibaAnalyzer leichter zugeordnet werden.
 Zeitbasis: Erfassungszeit dieses Moduls.
Standardeinstellung ist die Erfassungszeit, die im I/O-Manager-Baum im Zweig
„Allgemein“ eingestellt ist. Die Erfassungszeit sollte gleich oder kleiner sein als das
Zeitintervall, in dem MODBUS-Daten an die Steuerung geschickt werden.
 Modul-Index: Der Modulindex ist im MODBUS-Protokoll als „Startadresse“
definiert. Siehe Beschreibung in Kapitel 3.4.
Die möglichen Modulindizes für die unterschiedlichen Module sind nachfolgend
aufgelistet.

MODBUS Integer Modul: 00...63

MODBUS Dig512 Modul: 00...63

MODBUS Real Modul: 100...163

MODBUS Generic Modul: 200...263

Hinweis
Achten Sie darauf, eindeutige Modulindexnummern für jede Verbindung zu verwenden!

Ausgabe 2.5 19
Handbuch ibaPDA-Interface Modbus over TCPIP

5.2.2.2 Register Analog

Abbildung 6: Modultyp Integer – Register Analog


Die Anzeige der Analogwerte enthält standardmäßig folgende Spalten:
 Name: Hier können Sie einen Signalnamen eingeben und zusätzlich zwei
Kommentare, wenn Sie auf das Symbol im Feld “Name” klicken.
 Einheit: Hier können Sie eine physikalische Einheit für das Signal eingeben.
 Min/Max: Mit den Einstellungen bei Min und Max können normierte Werte in
physikalische Werte umgerechnet werden.
 Aktiv: Aktivieren/deaktivieren des Signals
 Istwert: aktueller Wert des eingehenden Telegramms
 Sie können weitere Spalten über das Kontextmenü anzeigen oder verbergen
(rechter Mausklick in der Überschriftenzeile):

20 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

5.2.2.3 Register Digital

Abbildung 7: Modultyp Integer – Register Digital


Die Anzeige der Digitalwerte enthält standardmäßig folgende Spalten:
 Name: Hier können Sie einen Signalnamen eingeben und zusätzlich zwei
Kommentare, wenn Sie auf das Symbol im Feld “Name” klicken.
 Aktiv: Aktivieren/deaktivieren des Signals
 Istwert: aktueller Wert (0/1) des eingehenden Telegramms
 Sie können weitere Spalten über das Kontextmenü anzeigen oder verbergen
(rechter Mausklick in der Überschriftenzeile):

Tipp
Eine hilfreiche Funktion beim Ausfüllen der Namensfelder ist die automatische
Füllfunktion. Wenn Sie einen Signalnamen eingeben und auf den Spaltenkopf
doppelklicken (solange der Cursor noch in dem Feld steht), dann werden die darunter
liegenden leeren Felder automatisch mit dem gleichen Namen aufgefüllt. Wenn als
letztes Zeichen im Namen eine Ziffer steht, dann wird diese Zahl von Zeile zu Zeile
inkrementiert. Diese Funktion können Sie in jeder Zeile der Signaltabelle nutzen.
Felder, die bereits Namen enthalten, werden nicht überschrieben.

Ausgabe 2.5 21
Handbuch ibaPDA-Interface Modbus over TCPIP

5.2.3 Modultyp Dig512

5.2.3.1 Register Allgemein


Das Register Allgemein enthält die gleichen Felder wie das Register Allgemein des
MODBUS Moduls Integer, siehe Kapitel 5.2.2.

5.2.3.2 Register Digital


Das Modul DIG512 hat nur ein Digital-Register. Die Digitalsignale sind 16-Bit-weise
gruppiert. Sowohl für jede Gruppe als auch für jedes einzelne Signal kann ein Name
vergeben werden, außerdem kann jede Gruppe bzw. jedes Einzelsignal deaktiviert
werden.

Abbildung 8: Modultyp DIG512 – Register Digital


Die Anzeige der Digitalsignale enthält die gleichen Spalten wie die Anzeige des Integer-
Moduls, siehe Kapitel 5.2.2.

22 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

5.2.4 Modultyp Real

5.2.4.1 Register Allgemein

Abbildung 9: Modultyp Real – Register Allgemein


Das Register Allgemein enthält die gleichen Felder wie das Register Allgemein des
MODBUS Moduls Integer, siehe Kapitel 5.2.2.
Und zusätzlich
 Anzahl Analogsignale
Hier wird die Anzahl der Analogsignale für dieses Modul eingetragen
(Standardeinstellung 32). 1 bis 32 Signale können eingetragen werden.

5.2.4.2 Register Analog

Abbildung 10: Modultyp Real – Register Analog


Das Register Analog enthält die gleichen Spalten wie das Register Analog der
MODBUS Integer-Module, siehe Kapitel 5.2.2.
Ausnahme:
 Gain/Offset anstatt Min/Max
Der physikalische Wert wird wie folgt berechnet: Y = X* Gain + Offset
Die Werte für Gain und Offset können direkt in das entsprechende Feld
eingegeben werden. Mit einem Klick in das Gain- oder Offset-Feld öffnet sich ein
Dialogfeld, in dem die physikalischen Werte mit den entsprechenden Gain- und

Ausgabe 2.5 23
Handbuch ibaPDA-Interface Modbus over TCPIP

Offset-Werten berechnet werden.

5.2.4.3 Digital tab

Abbildung 11: Modultyp Real – Register Digital


Das Register Digital enthält die gleichen Spalten wie das Register Digital der MODBUS
Integer-Module. Siehe Kapitel 5.2.2.

5.2.5 MODBUS Generic-Modul

5.2.5.1 Register Allgemein

Abbildung 12: MODBUS Generic-Modul

24 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

Das Register Allgemein enthält die gleichen Felder wie das Register Allgemein des
Integer-Moduls. Siehe Kapitel 5.2.2.
Und zusätzlich:
 Swap-Modus
Hier ist der passende Swap-Modus aus einer Auswahlliste auszuwählen. Welcher
Swap-Modus zu wählen ist, hängt vom angeschlossenen System ab und von der Art
wie die Daten angeordnet sind.
 Kein Swap
Die Anordnung der Bytes eines Wertes bleibt unverändert.
 Abhängig vom Datentyp
32 Bit Werte: ABCD --> DCBA (Byte Swapping)
16 Bit Werte: AB --> BA (Byte Swapping)
 Swap 16 bit
32 Bit Werte: ABCD --> CDAB
 Swap 8 bit
32 Bit Werte: ABCD --> BADC
16 Bit Werte: AB --> BA
 Digitalsignale swappen
Wenn Digitalsignale als 16 Bit Integer oder 32 Bit Integer übertragen werden, kann ein
Byte-Swapping erforderlich sein (Big / Little Endian Konvertierung). Dann muss hier
True eingestellt werden.
Das 32 Bit Integer wird geswappt: ABCD --> DCBA
Das 16 Bit Integer wird geswappt: AB --> BA.
Dementsprechend ändert sich die Anordnung der Bits:
False (ohne Swapping)
31 30 29 28 27 26 25 24 | 23 22 21 20 19 18 17 16 | ..... | 7 6 5 4 3 2 1 0
True (mit Swapping)
7 6 5 4 3 2 1 0 | 15 14 13 12 11 10 9 8 | ..... | 31 30 29 28 27 26 25 24
 Anzahl Analogsignale, Anzahl Digitalsignale
Die Anzahl der Analog- und Digitalsignale, die in einem generischen Modul verwendet
werden, kann erhöht oder vermindert werden. Der Standardwert ist 32, es kann jedoch
ein Wert zwischen 0 und 1000 eingegeben werden. Die Signaltabellen werden
entsprechend angepasst.

Ausgabe 2.5 25
Handbuch ibaPDA-Interface Modbus over TCPIP

5.2.5.2 Register Analog

Abbildung 13: MODBUS Generic-Modul – Register Analog


Das Register Analog enthält die gleichen Spalten wie das Register Analog des
MODBUS Real-Moduls. Siehe Kapitel 5.2.4.
Und zusätzlich:
 Adresse: In der Spalte Adresse kann der Offset zum ersten Byte des
Signalwertes innerhalb des Datenstroms angegeben werden. Der Offset kann als
hexadezimaler oder dezimaler Wert eingegeben werden. Die Einstellung kann im
Kontextmenü ausgewählt werden.

 Datentyp: In den Feldern dieser Spalte können Sie für jedes Signal einen
Datentyp wählen. Klicken Sie einfach in das entsprechende Feld und wählen Sie
den Datentyp aus der Auswahlliste aus.

Hinweis
Da der Adressbereich vom Datentyp abhängig ist, kann eine Anpassung der Adressen
nach einer Änderung des Datentyps erforderlich sein.
Hilfreich ist die automatische Füllfunktion. Nachdem Sie die Datentypen im Datenstrom
definiert haben, klicken Sie einfach auf den Kopf der Adressspalte. Die Offset-Werte
werden dann automatisch ab dem Wert in der ersten Zeile, bzw. der Zeile, in der der
Cursor gerade steht, den eingestellten Datentypen entsprechend ausgefüllt.

26 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

5.2.5.3 Register Digital

Abbildung 14: MODBUS Generic-Modul – Register Digital


Das Register Digital enthält die gleichen Spalten wie das Register Digital des Integer-
Moduls, siehe Kapitel 5.2.2.
Und zusätzlich:
 Adresse: In der Spalte Adresse kann der Offset zum ersten Byte des
Signalwertes innerhalb des Datenstroms angegeben werden. Der Offset kann als
hexadezimaler oder dezimaler Wert eingegeben werden. Die Einstellung kann im
Kontextmenü ausgewählt werden.
 Bit-Nr.: Bitnummer im definierten Byte, Word oder Dword. Die Adresse und die
Bitnummer werden automatisch erhöht, wenn Sie die automatische Füllfunktion
nutzen.

5.3 Erfassung starten


Mit dem Beginn der Erfassung prüft ibaPDA, ob Verbindungen von MODBUS Clients
aufgebaut wurden. Eine Warnmeldung zeigt an, wenn keine Verbindung besteht.

Abbildung 15: MODBUS Server-Modul – Validierungsmeldung

Ausgabe 2.5 27
Handbuch ibaPDA-Interface Modbus over TCPIP

5.4 Diagnose
5.4.1 MODBUS TCP/IP-Paketaufbau
Die folgende Abbildung zeigt einen Speicherauszug von einem Datenpaket, das von
einer SPS an ibaPDA gesendet wurde und den Modultyp MODBUS-Integer verwendet.

Abbildung 16: MODBUS TCP-Paket


Bytefolge, beginnend hinter dem markierten Block im unteren Teil des Screenshots:
01 3D Transaktions-ID: 317
00 00 Protokoll-ID
00 4B Cmd Länge: 75 Bytes beginnend beim nächsten Byte
00 Unit ID
10 Funktionscode: Write multiple registers
00 00 Startadresse / ibaPDA Modulindex: 0
00 22 Anzahl der Register: 34
44 Anzahl der Bytes: 68
00 46 Erstes Register
00 00 Zweites Register
usw. bis zu den letzten vier Bytes der letzten 32 Digitalsignale

28 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

5.4.2 Diagnose in ibaPDA-V6


Ob die Verbindung zum Zielsystem über MODBUS funktioniert und Werte empfangen
werden, können Sie auf verschiedene Arten überprüfen.

5.4.2.1 Verbindungsübersicht
Wenn Sie im Signalbaum des I/O-Managers die Datenschnittstelle TCP/IP MODBUS
Server markieren, erhalten Sie im rechten Fenster des Dialogs eine Übersicht über alle
Verbindungen dieser Schnittstelle.

Abbildung 17: TCP/IP MODBUS Server - Verbindungsübersicht


Aktive Verbindungen werden grün gekennzeichnet:
Hinweis
Aktive Verbindungen werden grün hinterlegt, sobald Daten am Port 502 empfangen
wurden, auch wenn die Erfassung in ibaPDA noch nicht läuft.

Folgende Werte werden angezeigt:


 Adresse: Die IP-Adresse des MODBUS Client (Datenquelle)
 Modulindex: Modulindex aus dem Datentelegramm (Startadresse im
Datentelegramm).
 Telegrammzähler: inkrementiert mit jedem empfangenen Datentelegramm.
 Unvollständig: inkrementiert mit jedem ungültigen Telegramm (ungültiger
Modulindex oder Telegrammlänge).
 Sequenzfehler: inkrementiert, wenn ein gültiges Telegramm empfangen wird,
aber der Sequenzzähler nicht um 1 erhöht wurde im Vergleich zum letzten
Telegramm. Dies deutet meist auf verlorene Pakete hin.
 Max. Paketgröße: die maximale Größe eines Datenpakets, die über diese
Verbindung empfangen wurde.
Werden ungültige Werte empfangen, wird ein „?“ angezeigt und der Zählwert für
„Unvollständig“ inkrementiert mit jedem Telegramm.

Ausgabe 2.5 29
Handbuch ibaPDA-Interface Modbus over TCPIP

5.4.2.2 Istwertanzeige in den Signaltabellen


Wenn Messwerte gesendet werden, dann können Sie diese im I/O-Manager von
ibaPDA-V6, im Register Analog bzw. Digital des entsprechenden Moduls in der Spalte
Istwert sehen.

Abbildung 18: MODBUS Generic-Modul – analoge Signale

Was ist zu tun, wenn …


 … keine Signale in der Verbindungsübersicht angezeigt werden:
 Prüfen Sie die IP-Adresse des ibaPDA-Rechners
 Stellen Sie sicher, dass der TCP-Port 502 nicht von der Firewall blockiert wird.
Achten Sie außerdem darauf, dass dieser Port nicht von einer anderen TCP-
Verbindung genutzt wird.
 … Telegramme mit dem Modulindex „?“, Unvollständig, Sequenzfehler und einer
falschen Paketgröße angezeigt werden:
 Prüfen Sie, ob die Anordnung der Bytes korrekt ist.
 … in der Verbindungsübersicht Telegramme angezeigt werden, aber keine Werte
in der Signaltabelle:
 Prüfen Sie den konfigurierten Modulindex.

5.4.3 Diagnose ohne SPS


Wenn Sie die ibaPDA-Konfiguration ohne SPS testen möchten, können Sie das
TCP/IP-Testprogramm „TcpIpTest.exe“ von iba verwenden. Sie finden das Programm
auf der Liefer-CD oder wenden Sie sich an den iba-Support.

30 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

Führen Sie den Test wie folgt aus:


1. Starten Sie TcpIpTest.exe
2. Klicken Sie mit der rechten Maustaste in das linke Fenster und wählen „Add
ModBus module“ und dann einen der Modultypen „Integer“, „Real“ oder „Dig512“

3. Geben Sie die IP-Adresse des Rechners ein, auf dem der ibaPDA-Server läuft
oder behalten den Standardwert „localhost“ bei, wenn ibaPDA und TcpIpTest auf
demselben Rechner laufen.

4. Geben Sie eine Zykluszeit ein oder lassen den Standardwert auf „100“.
5. Ändern Sie nicht die Portnummer (502), aber geben Sie die „Modulnummer“ ein.
Für die Modultypen „Integer“ und „Dig512“, ist der Modulindex gleich der
Modulnummer. Für den Modultyp „Real“ ist der Modulindex gleich der
Modulnummer + 100.
6. Wenn „ModBus Real“ ausgewählt ist, können Sie als Nummer Werte zwischen 1
und 32 eingeben.
7. Sie können zwischen „ramp“ und „static“ auswählen. Wenn Sie „static“
ausgewählt haben, können Sie die statischen Telegrammwerte eingeben. Wenn
Sie „ramp“ ausgewählt haben, haben alle Register denselben Wert, der jedoch
bei jedem Sendezyklus erhöht wird.
8. Klicken Sie auf den <Start>-Button
9. Wiederholen Sie die Schritte 1 – 8, um weitere Module einzurichten.

Ausgabe 2.5 31
Handbuch ibaPDA-Interface Modbus over TCPIP

Ergebnis:
 Wenn die IP-Adresse korrekt ist, sehen Sie die Verbindung in der
Verbindungsübersicht.
 Wenn die Module mit dem richtigen Modultyp und dem richtigen Index
konfiguriert sind, werden Werte in der Signaltabelle angezeigt.

32 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

6 MODBUS TCP/IP – Client-Modus


Mit der TCP/IP MODBUS Client-Schnittstelle kann ibaPDA als MODBUS-Client agieren
und Daten von den angeschlossenen MODBUS-Servern anfordern.
64 Verbindungen sind möglich. Jede Verbindung entspricht einem MODBUS-Client-
Modul in ibaPDA. Jede Verbindung hat ihren eigenen Thread, so dass alle
Verbindungen voneinander unabhängig sind. Ein langsamer MODBUS-Server
behindert so nicht einen schnellen MODBUS-Server auf einer anderen Verbindung.

6.1 ibaPDA – MODBUS TCP/IP Telegramm-Layout


Das Request-Telegramm hat das gleiche Layout für alle Zugriffsarten. Der anfordernde
Controller (ibaPDA als MODBUS-Client) bestimmt die MODBUS Slave-Nummer
(Unit ID), die Zugriffsart (Funktionscode), die Startadresse (Adresse der ersten Daten)
und die Anzahl der Daten.
Hinweis
Im MODBUS Controller werden Coils, Discrete Inputs und Register mit 1 beginnend
nummeriert, jedoch fängt ihre Adresse mit 0 (Null) an. In ibaPDA können Sie einstellen,
ob die Adresse mit 0 oder 1 beginnt.

Anfrage (ibaPDA  MODBUS Server):

rel. # Bytes Typ MODBUS Inhalte ibaPDA


Beschreibung (hex) Beschreibung
00 2 UINT Transaktions-ID xx xx Wird automatisch mit
jedem Zyklus
inkrementiert
MBAP 02 2 UINT Protokoll-ID 00 00 0
04 2 UINT Cmd Länge 00 06 6
06 1 UINT Unit ID xx MODBUS Slave-
Nummer
Fcode 07 1 BYTE Funktionscode xx 01: Read Coils
02: Read Discrete Inp.
03: Read Holding Reg
04: Read Input Reg.
Daten 08 2 UINT Startadresse xx xx 1. Registeradresse
10 2 UINT Anzahl der Daten xx xx Anzahl der Coils,
Input bits, Holding
Registers oder Input
Registers

Ausgabe 2.5 33
Handbuch ibaPDA-Interface Modbus over TCPIP

6.1.1 Antwort Read Coils (0x01)


Dieser Funktionscode wird benutzt, um von 1 bis 2000 den Status der Coils
(Geräteparameter) in einem entfernten Gerät zu lesen.

Beispiel: Read 32 Bits von MODBUS Slave 2


Anwort (MODBUS Server  ibaPDA)
rel. # Bytes Typ MODBUS Inhalt ibaPDA
Beschreibung (hex) Beschreibung
00 2 UINT Transaktions-ID xx xx Spiegel der Anfrage
02 2 UINT Protokoll-ID 00 00 0
MBAP 04 2 UINT Cmd Länge 00 07 = nBytes + 3
06 1 BYTE Unit ID 02 MODBUS Slave-Nummer
Fcode 07 1 BYTE Funktionscode 01 Read Coils
Daten 08 1 BYTE Anzahl der Bytes 04 = nCoils/8 (aufgerundet)
10 4 BYTE Daten xx xx xx xx 32 bits

6.1.2 Antwort Read Discrete Inputs (0x02)


Dieser Funktionscode wird benutzt, um von 1 bis 2000 die Ist-Werte (Discrete Inputs) in
einem entfernten Gerät zu lesen.

Beispiel: Read Discrete Input Bits 9…32 von MODBUS Slave 4.


Antwort (MODBUS Server  ibaPDA)
rel. # Bytes Type MODBUS Inhalt ibaPDA
Beschreibung (hex) Beschreibung
00 2 UINT Transaktions-ID xx xx Spiegel der Anfrage
02 2 UINT Protokoll-ID 00 00 0
MBAP 04 2 UINT Cmd Länge 00 06 = nBytes + 3
06 1 BYTE Unit ID 04 MODBUS Slave-Nummer
Fcode 07 1 BYTE Funktionscode 02 Read Coils
Daten 08 1 BYTE Anzahl der Bytes 03 = nBits/8 (aufgerundet).
10 3 BYTE Daten xx xx xx 24 bits

34 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

6.1.3 Read Holding Registers (0x03)


Dieser Funktionscode wird benutzt, um die Inhalte der Holding Register (Prozessdaten,
Geräteparameter) in einem entfernten Gerät zu lesen.
Hinweis
Jeder Float-Wert umfasst 2 Register.

Beispiel: Lesen von 32 Integer-Werten (Holding Register) von MODBUS Slave 1.


Antwort (MODBUS Server  ibaPDA)
rel. # Bytes Type MODBUS Inhalt ibaPDA
Beschreibung (hex) Beschreibung
00 2 UINT Transaktions-ID xx xx Spiegel der Anfrage
02 2 UINT Protokoll-ID 00 00 0
MBAP 04 2 UINT Cmd Länge 00 43 = nBytes + 3
06 1 BYTE Unit ID 01 MODBUS Slave-Nummer
Fcode 07 1 BYTE Funktionscode 03 Read Holding Reg.
Daten 08 1 BYTE Anzahl der Bytes 40 nReg * 2
10 32 INT Daten xx ….. 32 Integer Werte (16-Bit)

6.1.4 Read Input Registers (0x04)


Dieser Funktionscode wird verwendet, um von 1 bis 125 Input Register (Prozessdaten,
Geräteparameter) in einem entfernten Gerät zu lesen.

Beispiel: Lesen von 10 Float-Werten (= 20 Input Register) von MODBUS Slave 4,


beginnend mit Register # 11.
Antwort (MODBUS Server  ibaPDA)
rel. # Bytes Typ MODBUS Inhalt ibaPDA
Beschreibung (hex) Beschreibung
00 2 UINT Transaktions-ID xx xx Spiegel der Anfrage
02 2 UINT Protokoll-ID 00 00 0
MBAP 04 2 UINT Cmd Länge 00 2B = nBytes + 3
06 1 BYTE Unit ID 04 MODBUS Slave-Nummer
Fcode 07 1 BYTE Funktionscode 04 Read Input Reg.
Daten 08 1 BYTE Anzahl der Bytes 28 n Float * 4
10 20 FLOAT Daten xx ….. 10 Float Werte

Ausgabe 2.5 35
Handbuch ibaPDA-Interface Modbus over TCPIP

6.2 MODBUS Client-Konfiguration in ibaPDA

Hinweis
Der MODBUS Client-Modus ist ab ibaPDA Version 6.27.0 verfügbar.

Voraussetzungen
 Auf dem Rechner sollten Netzwerkdienste konfiguriert sein.
 Im ibaPDA Dongle muss die Lizenz für TCP/IP MODBUS Client freigeschaltet sein.

Konfiguration im Überblick
1. Starten Sie den ibaPDA-Server und dann den ibaPDA-Client. Stellen Sie sicher,
dass der ibaPDA-Client mit dem richtigen ibaPDA-Server verbunden ist.
2. Öffnen Sie den I/O-Manager und nehmen Sie die allgemeinen Einstellungen vor,
wie im ibaPDA-Handbuch beschrieben.
3. Prüfen Sie, ob die Datenschnittstelle "TCP/IP Modbus Client" im Signalbaum
angezeigt wird. Falls nicht, fehlt möglicherweise die Lizenz im Dongle.
4. Klicken Sie auf den Zweig "TCP/IP Modbus Client" im Signalbaum und nehmen
die erforderlichen allgemeinen Einstellungen für die MODBUS-Verbindung vor.
5. Definieren und konfigurieren Sie Module als MODBUS-Client, indem Sie auf den
Zweig „Klicken um Modul anzufügen…“ klicken (insgesamt können 64 Module
konfiguriert werden).

6. Markieren Sie das Modul im Signalbaum und nehmen Sie die erforderlichen
allgemeinen Einstellungen und die entsprechenden TCP/IP-Einstellungen vor.
7. Geben Sie die zu messenden Signale in die Analog- und Digital-Signaltabellen
ein.
8. Wenn alles korrekt konfiguriert ist, sollten grün markierte Reihen in der TCP/IP
MODBUS-Client Verbindungsübersicht zu sehen sein. Jede grüne Reihe zeigt
eine aufgebaute Verbindung an.

36 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

6.2.1 TCP/IP MODBUS Client – Allgemeine Einstellungen

Abbildung 19: MODBUS TCP/IP Client – Allgemeine Einstellungen


Folgende Optionen können eingestellt werden:
 Alle Werte auf Null setzen, wenn Verbindung zum Modbus Server
unterbrochen wird:
Wird diese Option ausgewählt, werden alle Werte auf Null gesetzt, wenn die
Verbindung zu einem MODBUS-Server unterbrochen ist.
 Erfassung auch starten, wenn kein Modbus Server erreichbar ist:
Standardmäßig kann die Erfassung nicht gestartet werden, wenn kein MODBUS-
Server erreichbar ist. Ist diese Option ausgewählt, wird die Erfassung in jedem Fall
gestartet. Diese Option empfiehlt sich, falls ibaPDA nach einem automatischen
Neustart der Erfassung hängt.
 Verbindungsübersicht:
Sobald eine Verbindung aufgebaut ist, sollten Live-Daten in der Übersicht
angezeigt werden. Siehe auch Kapitel 6.3.2.1 "Verbindungsübersicht".

6.2.2 MODBUS Client-Modul

6.2.2.1 Register Allgemein

Abbildung 20: MODBUS TCP/IP Client-Modul – Register Allgemein

Ausgabe 2.5 37
Handbuch ibaPDA-Interface Modbus over TCPIP

 Verriegelt:
True: nur autorisierte Benutzer können das Modul ändern.
False: jeder Benutzer kann das Modul ändern.
 Aktiviert:
True: das Modul wird von ibaPDA verarbeitet
False: dieses Modul wird nicht verarbeitet
 Name: Name des Moduls. Dieser Name wird an iba Analyzer weitergegeben, um
das Modul zu identifizieren.
 Modul Nr.: Fortlaufende Nummer, die von ibaPDA in aufsteigender Reihenfolge
vergeben wird. Sie kann vom Anwender geändert werden. Damit können Signale in
ibaAnalyzer leichter zugeordnet werden.
 Zeitbasis: Erfassungszeit dieses Moduls.
Standardeinstellung ist die Erfassungszeit, die im I/O-Manager-Baum im Zweig
„Allgemein“ eingestellt ist. Die Erfassungszeit sollte gleich oder kleiner sein als das
Zeitintervall, in dem MODBUS-Daten an die Steuerung geschickt werden.
Hinweis
Wenn der MODBUS-Server nicht in der eingestellten Zeitbasis anwortet, liest
ibaPDA die Daten langsamer. Stellen Sie sicher, dass Sie eine geeignete
Zeitbasis für den MODBUS-Server einstellen. Wenn die Zeitbasis zu schnell ist,
könnte ibaPDA den MODBUS-Server überlasten.

 Swap-Modus:
Siehe Kapitel 5.2.5, "MODBUS Generic-Modul“.
Standard-Einstellung ist “Abhängig von Datentyp”.
 IP-Adresse:
Geben Sie die IP-Adresse des MODBUS-Servers ein.
 Portnummer:
Die Standard-MODBUS Portnummer ist 502.
 Protokoll:
Für MODBUS over TCP wird normalerweise das Protokoll MODBUS TCP
verwendet. MODBUS seriell ist erforderlich, wenn bestimmte Gateways
(Ethernet/seriell) eingesetzt werden, z. B. IF2E001 von IME.
 Typ Analog:
Wählen Sie den analogen Datentyp: “Halteregister” (Funktionscode 0x03) oder
“Eingaberegister” (Funktionscode 0x04).
 Typ Digital:
Wählen Sie den digitalen Datentyp: “Coils” (Funktionscode 0x01) oder “Diskrete
Eingaben” (Funktionscode 0x02).
 Addresses start at 1:
True: Registeradressen beginnen mit 1 (z. B. Modicon SPS, MODBUS Standard)
False: Registeradressen beginnen mit 0 (z. B. Beckhoff SPS)
 Anzahl Analog-/Digitalsignale:
Hier wird die Anzahl der zu messenden analogen und digitalen Signale
eingetragen. Die maximale Anzahl ist 1000.

38 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

6.2.2.2 Register Analog

Abbildung 21: MODBUS TCP/IP Client-Modul - Analogsignale


 Name, Einheit, Gain, Offset, Aktiv:
Siehe Kapitel 5.2.5.2.
 Slave:
Die Slavenummer ist nur dann relevant, wenn Sie mit einem Gateway arbeiten, an
dem mehrere MODBUS-Slaves angeschlossen sind. Im MODBUS-TCP/IP-Modus
wird die Slavenummer von den meisten MODBUS-Servern ignoriert.
 Register:
Die Registernummer geht von 0 bis 65535 oder von 1 bis 65536, abhängig von der
Option „Adresses start at 1" im Register Allgemein. Jedes Register ist 16 Bit lang.
Die Register können im Hexadezimal- oder Dezimal-Format angegeben werden.
Über ein Kontextmenü kann das Format umgestellt werden.
 Datentyp:
Wählen Sie einen der folgenden Datentypen aus: BYTE, WORD, DWORD, INT,
DINT, FLOAT.
Die Werte der Datentypen FLOAT, DINT und DWORD Float benötigen jeweils 2
Register.
2 Werte des Datentyps BYTE benötigen ein Register.
 Sie können weitere Spalten über das Kontextmenü anzeigen oder verbergen
(rechter Mausklick in der Überschriftenzeile):

Ausgabe 2.5 39
Handbuch ibaPDA-Interface Modbus over TCPIP

6.2.2.3 Register Digital

Abbildung 22: MODBUS TCP/IP Client-Modul - Digitalsignale

Für jedes Digitalsignal müssen Sie die Slave-Nummer und die Bitnummer angeben.
 Slave:
Die Slave-Nummer ist normalerweise nur dann relevant, wenn Sie mit einem
Gateway arbeiten, an dem mehrere MODBUS-Slaves angeschlossen sind. Im
MODBUS TCP-Modus wird die Slave-Nummer von den meisten MODBUS-Servern
ignoriert.
 Bit-Nr.:
Die Bitnummer entspricht der Coil-Nummer oder der „Diskrete Eingaben“-Nummer.
Der Wertebereich ist 0 bis 65535. Wie bei der analogen Registernummer kann die
Anzeige zwischen Dezimal- und Hexadezimalanzeige über ein Kontextmenü
umgeschaltet werden.

6.2.3 Erfassung starten


Mit dem Beginn der Erfassung versucht ibaPDA eine Verbindungen zum MODBUS-
Server aufzubauen und die Daten zu lesen. Wenn der Server einen Fehler meldet,
erscheint eine Warnmeldung.

Abbildung 23: MODBUS Client-Modul – Validierungsmeldung mit Fehler


Wenn die Option "Erfassung auch starten, wenn …" (siehe Kapitel 6.2.1) ausgewählt
ist, wird die Meldung "Fehler beim Verbinden mit Modbus Server…" als Warnung
angezeigt und die Erfassung trotzdem gestartet.

40 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

Abbildung 24: MODBUS Client-Modul – Validierungsmeldung

6.3 Diagnose
6.3.1 MODBUS TCP/IP-Paketaufbau
Die folgende Abbildung zeigt einen Speicherauszug von einem Anfrage-(Request)-
Telegramm, das von ibaPDA an den MODBUS-Server gesendet wurde.

Abbildung 25: MODBUS TCP-Paket

Bytefolge, beginnend nach dem markierten Block im unteren Teil des Screenshots:
BC 05 Transaktions-ID: 48133
00 00 Protokoll-ID: 0
00 06 Cmd-Länge: 6 Bytes beginnend mit dem nächsten Byte
03 Unit-ID / MODBUS Slave-Nummer: 3
03 Funktionscode: Halteregister lesen (read holding registers)
00 00 Startadresse:
00 40 Anzahl der Register: 64

Ausgabe 2.5 41
Handbuch ibaPDA-Interface Modbus over TCPIP

Die folgende Abbildung zeigt einen Speicherauszug von einem Antwort-Telegramm


vom MODBUS-Server an ibaPDA.

Abbildung 26: MODBUS TCP-Paket

Bytefolge, beginnend nach dem markierten Block im unteren Teil des Screenshots:
BC 05 Transaktions-ID: 48133
00 00 Protokoll-ID: 0
00 83 Cmd Länge: 131 Bytes beginnend mit dem nächsten Byte
03 Unit-ID / MODBUS Slave-Nummer: 3
03 Funktionscode: Halteregister lesen
80 Anzahl der Bytes: 128
F3 06 3F 9D Die ersten 2 Register, enthalten den ersten FLOAT-Wert: 1.234
14 7B 40 16 die nächsten 2 Register, enthalten den zweiten FLOAT-Wert.

6.3.2 Diagnose in ibaPDA-V6


Ob die Verbindung zum Zielsystem über MODBUS funktioniert und Werte empfangen
werden, können Sie auf verschiedene Arten überprüfen.

6.3.2.1 Verbindungsübersicht
Wenn Sie im Signalbaum des I/O-Managers die Datenschnittstelle TCP/IP MODBUS
Client markieren, erhalten Sie im rechten Fenster des Dialogs eine Übersicht über alle
Verbindungen dieser Schnittstelle.

42 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

Abbildung 27: TCP/IP MODBUS Client Verbindungsübersicht

Folgende Werte werden angezeigt:


 Aktive Verbindungen werden grün markiert, abgewiesene Verbindungen rot.
 Fehlerzähler: inkrementiert mit jedem erkannten Fehler.
 Aktuelle Zykluszeit: benötigte Zeit, in der alle konfigurierten Daten dieser
Verbindung gelesen werden. Die aktuelle, mittlere, minimale und maximale
Zykluszeit beziehen sich auf die Zykluszeiten von jedem Modul.
 Mit dem <Zähler zurücksetzen>-Button können der Fehlerzähler und die mittleren,
minimalen und maximalen Zykluszeiten zurückgesetzt werden.
 Mit dem <Protokolldatei öffnen>-Button kann die Protokolldatei in einem ASCII-
Editor geöffnet werden, um den Fehlerverlauf zu verfolgen.

6.3.2.2 Aktuelle Werte im Register Diagnose

Das Register Diagnose des MODBUS-Client-Moduls zeigt die aktuellen-Werte der


gemessenen Signale an. Sie können zwischen analogen und digitalen Werten
umschalten.

Abbildung 28: MODBUS-Client – Register Diagnose

Ausgabe 2.5 43
Handbuch ibaPDA-Interface Modbus over TCPIP

7 SPS-Konfiguration

7.1 Modicon Quantum


7.1.1 Konfiguration der TCP/IP-Schnittstelle
1. Installieren Sie die Ethernet-Module (NOE)
2. Konfigurieren Sie die IP-Adresse für die NOE (siehe folgende Abbildung)

3. Erstellen Sie ein Ladder- oder ConCept-Programm mit einem MSTR-Baustein


und konfigurieren Sie ihn, wie in der nächsten Abbildung zu sehen.

44 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

 MSTR operation Code


1 Decimal bedeutet Schreibbefehl.
 Error Status
0 hex steht für mögliche Kommunikationsfehler.
 # of Registers
34 Decimal; steht für 34 an ibaPDA zu sendende Register (32 Analog- + 32
Digitalwerte). Wenn Sie den Modultyp MODBUS_FLOAT (bzw. MODBUS Real)
verwenden, müssen 66 Register gesendet werden. Wenn Sie den Modultyp MODBUS-
Generic verwenden, können bis zu 122 Register gesendet werden.

Hinweis
Wenn andere Zahlen als 34 bzw. 66 konfiguriert werden (bei Integer, Dig512 und
Float), führt dies zu Fehlermeldungen, sowohl in ibaPDA als auch am MSTR-
Baustein, und es wird keine Kommunikation aufgebaut.

 Func. Dependant Info


1 Decimal; steht für ibaPDA-Modulnummer 1. Verwenden Sie verschiedene Nummern
für verschiedene ibaPDA-Modulnummern. Addieren Sie 100 für Module vom Typ
MODBUS_FLOAT (MODBUS Real), addieren Sie 200 für Generic-Module.
 MB+Routing A1
In dem hier gezeigten Beispiel wurde die NOE im Slot 4 installiert. Dementsprechend
wurde hier der Wert 1024 dezimal eingetragen, was 0x400 entspricht. Die 4 im
hexadezimalen Wert steht für die Slot-Nummer. Für ein NOE mit der Slot-Nummer 5
wäre der Wert 0x500, entsprechend 1280 dezimal. Dieser Screenshot wurde vom
Programm ProWORX NxT aufgenommen.
 MB+Routing A2..A5:
Hier im Beispiel IP-Adresse 143.1.2.48; diese vier Felder enthalten die IP-Adresse von
ibaPDA.

Ausgabe 2.5 45
Handbuch ibaPDA-Interface Modbus over TCPIP

7.1.2 Ladder-Programm für die SPS


Es gibt zwei Arten, die SPS zu programmieren:
 ibaPDA sendet keine Quittierung
Vorteil: Schnellere Kommunikation, geringerer Datenverkehr auf dem LAN
Nachteil: Funktioniert nicht mit NOE Serie 700
Wenn die Datenübertragung zu schnell eingestellt ist, kann die SPS blockiert werden.
 ibaPDA sendet eine Quittierung
Vorteil: NOE Serie 700 unterstützt
Nachteil: Langsamere Kommunikation
Falls Sie die zweite Option wählen, aktivieren Sie „Antwort an Modbus-Master senden“
in den allgemeinen Einstellungen von MODBUS TCP Server, siehe Kapitel 5.2.1.
Wenn Sie die erste Option verwenden wollen, deaktivieren Sie das Kästchen einfach.

7.1.2.1 ibaPDA sendet keine Quittierung (Beispiel)


Vervollständigen Sie das Programm wie in der Abbildung unten zu sehen.

Abbildung 29: Ladder-Programm in ProWORX NxT


T.01 ist hierbei ein Timer, der Pulse generiert, in diesem Fall alle 10 ms.
Beachten Sie, dass der markierte Schalter "P 001000" in dem roten Rechteck der
Pulsausgang ist, der von T.01 generiert wird.
Beachten Sie weiterhin, dass ibaPDA keine Quittierung sendet und der MSTR-Baustein
somit alle 10 ms die Register sendet, sogar wenn Kommunikationsfehler auftreten oder
keine Antwort erfolgt. Erwarten Sie keine Antwort seitens der Kommunikation!
Wenn die SPS gestartet wird, sollte der MSTR-Baustein die Kommunikation mit
46 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

ibaPDA aufbauen. Anschließend sollte in der ibaPDA-Diagnose, bzw. in der


Verbindungsübersicht, die entsprechende Verbindung mit einem grünen Symbol
gekennzeichnet sein. Beobachten Sie einige Minuten, wie sich die Kommunikation
verhält. Wenn die Kommunikation mehr als zwei Minuten aufrecht erhalten wird, dann
sollte sie in Ordnung sein.
Hinweis
Ein Sequenzfehler, der angezeigt wird, ist OK. Dies deutet auf den ersten Versuch
hin, mit ibaPDA zu kommunizieren.

Jedes Mal wenn der MSTR-Baustein Daten sendet, zählt ein Telegrammzähler in der
Verbindungsübersicht hoch (I/O-Manager in ibaPDA-V6).
Um "Live"-Daten zu testen, empfehlen wir die Projektierung eines Zählers in der SPS-
Applikation, dessen Wert in das erste Register geschrieben wird, das vom MSTR-
Baustein übertragen wird.
Wenn Sie mehr als 32 Analog- und 32 Digitalsignale verwenden wollen, gehen Sie bei
der MSTR-Konfiguration wie oben beschrieben vor, nur dass Sie den Parameter Func.
Dependant Info (ibaPDA Modulnummer) ändern.
In ibaPDA müssen Sie jeweils Module des gewünschten Typs hinzufügen.

7.1.2.2 ibaPDA sendet eine Quittierung (Beispiel)


Vervollständigen Sie das Programm wie in der folgenden Abbildung.

Abbildung 30: Ladder-Programm in ProWORX NxT


Beachten Sie, dass diesmal kein Timer vorhanden ist, der den MSTR-Baustein zum
regelmäßigen Schreiben zwingt. Stattdessen wird nach jeder erfolgreichen

Ausgabe 2.5 47
Handbuch ibaPDA-Interface Modbus over TCPIP

Übermittlung von ibaPDA eine "ACK"-Antwort gesendet, die wiederum zu einer


"SUCCESSFUL"-Ausgabe führt und den MSTR-Baustein für den nächsten
Sendezyklus vorbereitet.

7.1.3 Concept-Programm für die SPS


Die durchzuführenden Schritte mit der Programmiersoftware ConCept entsprechen
prinzipiell den in den beiden vorhergehenden Abschnitten beschriebenen.
Bei der Parametrierung des MSTR-Bausteins werden unter ConCept andere
Parameterbezeichnungen verwendet:
ProWORX NxT ConCept
MSTR operation Code w1
Error Status w2
# of Registers w3
Func. Dependant Info w4
MB+Routing A1 w5
MB+Routing A2 w6
MB+Routing A3 w7
MB+Routing A4 w8
MB+Routing A5 w9

7.1.3.1 Beispiel für ConCept-Konfiguration und -Programm

Abbildung 31: Beispiel ConCept-Konfiguration

48 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

Eine ausführlichere Beschreibung zum Thema ConCept-Projektierung (Beispiel) ist in


Vorbereitung.

Abbildung 32: Beispiel ConCept-Programm mit MSTR-Baustein

Abbildung 33: Beispiel ConCept RDE-Tabelle

Ausgabe 2.5 49
Handbuch ibaPDA-Interface Modbus over TCPIP

7.2 Unity Pro XL-Programm für die SPS (Beispiel Generic-Modul)


1. Installieren Sie das Ethernet-Modul
2. Konfigurieren Sie die IP-Adresse für das Ethernet-Modul.
Das Ethernet-Modul finden Sie im Projekt-Browser unter
Station\Communication\networks\

3. Erstellen Sie ein neues Ladder- oder Structure-Text-Programm.


Ein neues Programm (ST or LAD) kann unter
Station\Program\Tasks\MAST\Sections hinzugefügt werden

Um eine Nachricht über MODBUS TCP/IP zu senden, wird die WRITE_VAR


Funktion verwendet. Diese Funktion benötigt einige Parameter wie IP-Adresse,
Variablentyp, Modulnummer, Anzahl der Register, etc.
Die IP-Adresse wird mit der ADDR_IBA Variablen dargestellt. Diese Variable ist die
XWAY-Adresse, die im Ethernet-Modul konfiguriert ist. Für jedes Modul wird eine
eigene IP-Adresse benötigt. Das bedeutet, für 3 Module müssen 3 IP-Adressen
konfiguriert werden.
Im Beispiel wurden 3 unterschiedliche Variablen erstellt, um einen besseren
Überblick über das Programm zu behalten. Als Modulnummern wurden die
Nummern 200, 201 und 202 verwendet, da Generic-Module an ibaPDA gesendet
werden sollen. Jedes Modul enthält Float-, Integer- und Bool-Werte mit einer
Gesamtlänge von 120 Registern.

50 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

7.3 MODBUS TCPIP-Konfiguration in PL7 Pro


7.3.1 Netzwerkkonfiguration

Abbildung 34: Beispiel Netzwerk-Konfiguration in PL7 Pro


In der Hardware-Konfiguration der ETY (Netzwerk)-Karte, muss eine Xway-Adresse
eingetragen werden, um Daten an ibaPDA mit dem MODBUS-Protokoll senden zu
können.
Wie im „Connection configuration“-Feld oben zu sehen, besteht Xway aus:
 XWay Address: Diese Adresse wird vom Programm als „Gateway“ verwendet.
 IP address: Hier muss die IP-Adresse des ibaPDA-Systems eingetragen werden.
 Protocol: Hier sollte das MODBUS-Protokoll ausgewählt werden, um Nachrichten
über MODBUS zu senden.
 Access: Dieses Feld muss ausgewählt werden
 Mode: Multimode auswählen.
Wenn alle Einträge gemacht sind und die IP-Adresse der Karte konfiguriert ist, muss
die Konfiguration bestätigt werden.

Ausgabe 2.5 51
Handbuch ibaPDA-Interface Modbus over TCPIP

7.3.2 Nachrichten-Konfiguration (Beispiel)


Erstellen Sie ein Programm im Mast Arbeitsbereich.

1
3

Die Nachricht soll zyklisch an ibaPDA gesendet werden. Deshalb wird eine
Systemvariable “%S5” benutzt. Diese Systemvariable ist ein digitales Signal, das mit
einer Periode von 100 ms umschaltet. An der steigenden Flanke des Digitalsignals wird
die Nachricht an ibaPDA gesendet (Netzwerk 3).
Mit der WRITE_VAR Funktion (1) werden Daten an ibaPDA gesendet. Diese Funktion
verwendet folgende Einstellungen:
WRITE_VAR(ADR#{2.115}SYS,’%MW’,0,34,%MW300:34,%MW296:4)

 Xway Addr. : Die zuvor erzeugte Xway Addr. muss hier eingefügt werden
ADR#{<Xway Addr}SYS
 Type: Hier ist der Variablentyp ‘%MW’ ausgewählt
 Modulindex: Hier soll der gleiche Modulindex wie in ibaPDA verwendet werden.
 Anzahl der Register: 34 ist die Anzahl der Register (Word mit 16 Bit), die an
ibaPDA gesendet werden
 Startadresse: Die Adressen %MW300 bis %MW334 werden gesendet
 Management Words: Diese Worte enthalten den Status, Sendeeinstellungen, etc.
Die Funktion (2) mit der %MW298 auf 50 eingestellt ist, wird verwendet, um einen
Timeout der WRITE_VAR Funktion zu setzen.
Der Wert MW269:X0 (3) zeigt, ob die Variable gesendet wurde oder nicht.
Der Timer (%TM70) wird verwendet, um zu verhindern, dass die Nachricht mehr als 1
Minute (im Normalfall auf z. B. 100 ms gesetzt) benötigt, um an das ibaPDA-System
gesendet zu werden.

52 Ausgabe 2.5
ibaPDA-Interface Modbus over TCPIP Handbuch

Als Ergebnis wird eine Tabelle mit Signalen erzeugt, die den konfigurierten Adressen
zugeordnet sind und die in die Signaltabelle von ibaPDA kopiert werden. Die Tabelle
steht unter dem Timer.

Ausgabe 2.5 53
Handbuch ibaPDA-Interface Modbus over TCPIP

8 Support und Kontakt


Support
Telefon: +49 911 97282-14
Telefax: +49 911 97282-33
E-Mail: support@iba-ag.com

Hinweis
Wenn Sie Support benötigen, dann geben Sie die Seriennummer (iba-S/N) des
Produktes an.

Kontakt
Zentrale
iba AG
Königswarterstraße 44
90762 Fürth
Deutschland
Tel.: +49 911 97282-0
Fax: +49 911 97282-33
E-Mail: iba@iba-ag.com
Kontakt: Harald Opel
Regional und weltweit
Weitere Kontaktadressen unserer regionalen Niederlassungen oder Vertretungen
finden Sie auf unserer Webseite
www.iba-ag.com.

54 Ausgabe 2.5

Das könnte Ihnen auch gefallen