Sie sind auf Seite 1von 66

___________________

Vorwort

___________________
Produktbeschreibung 1

___________________ 2
SIMATIC Schritt-für-Schritt-Anleitung

___________________
Funktionsbaustein in Betrieb
nehmen 3
SIMATIC Modbus/TCP- Modbus/TCP-
Kommunikation über CP 343-1 und Kommunikation 4
parametrieren
CP 443-1
Programmierhandbuch ___________________
MODBUSCP-Lizenzierung 5

___________________
Funktionsbaustein
MODBUSCP 6

___________________
Additional Blocks 7

___________________
Diagnose 8

___________________
Applikationsbeispiele 9

___________________
Literatur A

11/2017
A5E32489394-AC
Rechtliche Hinweise
Warnhinweiskonzept
Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie zur Vermeidung von
Sachschäden beachten müssen. Die Hinweise zu Ihrer persönlichen Sicherheit sind durch ein Warndreieck
hervorgehoben, Hinweise zu alleinigen Sachschäden stehen ohne Warndreieck. Je nach Gefährdungsstufe
werden die Warnhinweise in abnehmender Reihenfolge wie folgt dargestellt.

GEFAHR
bedeutet, dass Tod oder schwere Körperverletzung eintreten wird, wenn die entsprechenden
Vorsichtsmaßnahmen nicht getroffen werden.

WARNUNG
bedeutet, dass Tod oder schwere Körperverletzung eintreten kann, wenn die entsprechenden
Vorsichtsmaßnahmen nicht getroffen werden.

VORSICHT
bedeutet, dass eine leichte Körperverletzung eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen
nicht getroffen werden.

ACHTUNG
bedeutet, dass Sachschaden eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen
werden.
Beim Auftreten mehrerer Gefährdungsstufen wird immer der Warnhinweis zur jeweils höchsten Stufe verwendet.
Wenn in einem Warnhinweis mit dem Warndreieck vor Personenschäden gewarnt wird, dann kann im selben
Warnhinweis zusätzlich eine Warnung vor Sachschäden angefügt sein.
Qualifiziertes Personal
Das zu dieser Dokumentation zugehörige Produkt/System darf nur von für die jeweilige Aufgabenstellung
qualifiziertem Personal gehandhabt werden unter Beachtung der für die jeweilige Aufgabenstellung zugehörigen
Dokumentation, insbesondere der darin enthaltenen Sicherheits- und Warnhinweise. Qualifiziertes Personal ist
auf Grund seiner Ausbildung und Erfahrung befähigt, im Umgang mit diesen Produkten/Systemen Risiken zu
erkennen und mögliche Gefährdungen zu vermeiden.
Bestimmungsgemäßer Gebrauch von Siemens-Produkten
Beachten Sie Folgendes:

WARNUNG
Siemens-Produkte dürfen nur für die im Katalog und in der zugehörigen technischen Dokumentation
vorgesehenen Einsatzfälle verwendet werden. Falls Fremdprodukte und -komponenten zum Einsatz kommen,
müssen diese von Siemens empfohlen bzw. zugelassen sein. Der einwandfreie und sichere Betrieb der
Produkte setzt sachgemäßen Transport, sachgemäße Lagerung, Aufstellung, Montage, Installation,
Inbetriebnahme, Bedienung und Instandhaltung voraus. Die zulässigen Umgebungsbedingungen müssen
eingehalten werden. Hinweise in den zugehörigen Dokumentationen müssen beachtet werden.

Marken
Alle mit dem Schutzrechtsvermerk ® gekennzeichneten Bezeichnungen sind eingetragene Marken der
Siemens AG. Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch Dritte für
deren Zwecke die Rechte der Inhaber verletzen kann.
Haftungsausschluss
Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und Software geprüft.
Dennoch können Abweichungen nicht ausgeschlossen werden, so dass wir für die vollständige Übereinstimmung
keine Gewähr übernehmen. Die Angaben in dieser Druckschrift werden regelmäßig überprüft, notwendige
Korrekturen sind in den nachfolgenden Auflagen enthalten.

Siemens AG A5E32489394-AC Copyright © Siemens AG 2017.


Division Digital Factory Ⓟ 11/2017 Änderungen vorbehalten Alle Rechte vorbehalten
Postfach 48 48
90026 NÜRNBERG
DEUTSCHLAND
Vorwort

Zweck des Dokuments


Die Informationen dieses Dokuments ermöglichen es Ihnen, eine Kopplung zwischen einem
CP 343-1 oder CP 443-1 und einem Gerät, welches das Protokoll Modbus/TCP unterstützt,
aufzubauen und in Betrieb zu nehmen.

Inhalte des Dokuments


Im vorliegenden Dokument sind die Funktion des Funktionsbausteins MODBUSCP und
dessen Parametrierung beschrieben.
Das Dokument beinhaltet folgende Themen:
● Produktbeschreibung (Seite 9)
● Schritt-für-Schritt-Anleitung (Seite 11)
● Funktionsbaustein in Betrieb nehmen (Seite 13)
● Modbus/TCP-Kommunikation parametrieren (Seite 27)
● MODBUSCP lizenzieren (Seite 33)
● Funktionsbaustein MODBUSCP (Seite 37)
● Additional Blocks (Seite 51)
● Diagnose (Seite 53)
● Applikationsbeispiele (Seite 61)

Weiterführende Informationsquellen
Alle weiterführenden Informationen bezüglich CP 343 und CP 443 entnehmen Sie bitte den
Dokumenten:
SIEMENS
SIMATIC NET
S7 CPs für Industrial Ethernet
Gerätehandbuch
C79000-G8900-C155
SIEMENS
SIMATIC NET
S7 CPs für Industrial Ethernet
Gerätehandbuch, Teil B1
CP 343 1 / CP 343 1EX20
C79000-G8900-C158
SIEMENS
SIMATIC NET
S7 CPs für Industrial Ethernet

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 3
Vorwort

Gerätehandbuch Teil B4
CP 443 1
C79000-G8900-C152
SIEMENS
SIMATIC NET
NCM S7 für Industrial Ethernet
Handbuch
C79000-G8900-C129
Weitere Informationen bezüglich STEP 7 entnehmen Sie bitte den folgenden Handbüchern:
SIEMENS
SIMATIC Software
Basissoftware für S7 und M7
STEP 7-Benutzerhandbuch
C79000-G7000-C502-..
SIEMENS
SIMATIC Software
Systemsoftware für S7-300/400
System- und Standardfunktionen
Referenzhandbuch
C79000-G7000-C503-02

Technical Support
Sie erreichen den Technical Support über das Web-Formular für den Support Request
(https://support.industry.siemens.com/my/ww/de/requests/#createRequest).

Einsatzbereich
Der in diesem Handbuch beschriebene Funktionsbaustein stellt eine Verbindung zwischen
dem CP 343-1/CP 443-1 und Modbus/TCP-Geräten anderer Hersteller dar.

Gültigkeitsbereich
Das Dokument gilt für:
● SIMATIC Kommunikationsprozessor CP 343-1
● SIMATIC Kommunikationsprozessor CP 443-1
Das vorliegende Dokument gilt für folgende Software:

Produkt Identifizierungsnummer Ab Version


SIMATIC Modbus/TCP CP 6AV6676-6MB00-6AX0 6.0
6AV6676-6MB00-6AD0 6.0
FB 905 "MODBUSCP" 5.0
FB 906 "MB_CPSRV" 3.0
FB 908 "MB_CPCLI" 3.0

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


4 Programmierhandbuch, 11/2017, A5E32489394-AC
Vorwort

Hinweis
Das vorliegende Dokument enthält die Beschreibung des FBs, die zum Zeitpunkt der
Herausgabe des Dokuments gültig ist.

Hinweis
Beachten Sie folgende Punkte:
• Das vorliegende Dokument wird auch bei einer erneuten Inbetriebnahme benötigt.
• Bewahren Sie dieses und ergänzende Dokumente während des gesamten Lebenszyklus
der Software auf.
• Geben Sie alle zugehörigen Dokumente an den nachfolgenden Eigentümer der Software
weiter.

Erforderliche Kenntnisse
Zum Verständnis des vorliegenden Dokuments sind allgemeine Kenntnisse auf den
Gebieten der Automatisierungstechnik und der Prozesskommunikation erforderlich. Für das
Erstellen eines Projekts sind Kenntnisse der Projektierungssoftware "STEP 7" erforderlich.

Stilkonventionen

Stilkonvention Geltungsbereich
"Bild hinzufügen" • Begriffe, die in der Bedienoberfläche vorkommen, z. B. Dialog-
name, Registerkarte, Schaltfläche, Menüeintrag
• Erforderliche Eingaben, z. B. Grenzwert, Variablenwert
• Pfadangaben
"Datei > Bearbeiten" Bedienfolge, z. B. Menüeintrag, Kontextmenübefehl
<F1>, <Alt+P> Bezeichnung einer Tastaturtaste

Beachten Sie auch die folgendermaßen dargestellten Hinweise:

Hinweis
Ein Hinweis enthält wichtige Informationen zum im Dokument beschriebenen Produkt, zur
Handhabung des Produkts oder zu dem Teil des Dokuments, auf den besonders
aufmerksam gemacht werden soll.

Begriffskonventionen

Begriff Gilt für


CP • CP 343-1
• CP 443-1

Abbildungen
Das vorliegende Dokument enthält Abbildungen zur beschriebenen Software. Die
Abbildungen können im Detail von der gelieferten Software abweichen.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 5
Vorwort

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


6 Programmierhandbuch, 11/2017, A5E32489394-AC
Inhaltsverzeichnis

Vorwort ................................................................................................................................................... 3
1 Produktbeschreibung .............................................................................................................................. 9
1.1 Lieferumfang ............................................................................................................................. 9
1.2 Einsatzmöglichkeiten ................................................................................................................ 9
1.3 Hard- und Softwarevoraussetzungen .....................................................................................10
2 Schritt-für-Schritt-Anleitung ................................................................................................................... 11
3 Funktionsbaustein in Betrieb nehmen .................................................................................................... 13
3.1 Bibliothek auf dem STEP 7-PG/PC installieren ......................................................................13
3.2 CP parametrieren....................................................................................................................14
3.3 Koppelpartner parametrieren ..................................................................................................15
3.4 Kommunikationsverbindung projektieren................................................................................17
3.4.1 Verbindung bei "CP ist Client" projektieren ............................................................................17
3.4.2 Unspezifizierte Verbindung bei "CP ist Server" projektieren ..................................................21
3.5 Modbus/TCP-Funktionsbausteine einfügen............................................................................23
3.6 Verbindungen am Port 502 verwenden ..................................................................................25
3.7 Anlaufverhalten des CP 343-1 und des CP 443-1 ..................................................................26
4 Modbus/TCP-Kommunikation parametrieren ......................................................................................... 27
4.1 Modbus/TCP-Kommunikation mit dem Wizard parametrieren ...............................................28
4.2 Modbus/TCP-Kommunikation manuell parametrieren............................................................29
4.2.1 Aufbau der Verbindungsparameter .........................................................................................29
4.2.2 Modbus/TCP-Kommunikation parametrieren .........................................................................31
5 MODBUSCP-Lizenzierung .................................................................................................................... 33
5.1 MODBUSCP lizenzieren .........................................................................................................33
5.2 Fehlende oder fehlerhafte Lizenzierung .................................................................................36
6 Funktionsbaustein MODBUSCP ............................................................................................................ 37
6.1 Funktionsweise des Funktionsbausteins MODBUSCP ..........................................................37
6.2 Parameter des Funktionsbausteins MODBUSCP ..................................................................40
6.3 Adressabbildung des Funktionsbausteins MODBUSCP ........................................................45
6.4 Daten und Standardfunktionen des Funktionsbausteins MODBUSCP ..................................48
6.5 Bausteine umverdrahten .........................................................................................................49
7 Additional Blocks................................................................................................................................... 51
7.1 Auftragsliste für zyklischen Telegrammverkehr ......................................................................51
7.2 Unterstützung in CFC .............................................................................................................52

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 7
Inhaltsverzeichnis

8 Diagnose .............................................................................................................................................. 53
8.1 Diagnose über die Anzeigeelemente der CPU ...................................................................... 53
8.2 Diagnosemeldungen des FB MODBUSCP ............................................................................ 54
8.3 Diagnosemeldungen von FC5/FC6 und FC50/FC60 ............................................................. 60
8.4 Diagnosemeldungen der verwendeten Bausteine ................................................................. 60
8.5 Diagnosemeldungen des SFC24 ........................................................................................... 60
9 Applikationsbeispiele ............................................................................................................................ 61
9.1 Beispielprojekt in AWL ........................................................................................................... 61
9.2 Beispielprojekt in CFC ........................................................................................................... 63
A Literatur ................................................................................................................................................ 65

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


8 Programmierhandbuch, 11/2017, A5E32489394-AC
Produktbeschreibung 1
1.1 Lieferumfang
Zum Lieferumfang gehören folgende Bestelleinheiten:
● 1 × CD "SIMATIC Modbus/TCP CP"
Die CD enthält ein Setup zur Installation in den entsprechenden STEP 7-Verzeichnissen:
– Bibliothek "Modbus_TCP_CP"
– 2 Beispielprojekte
– Dokumente in Deutsch und Englisch
Zusätzlich befinden sich auf der CD die Dokumente im PDF-Format.

1.2 Einsatzmöglichkeiten

Treiber in der Systemumgebung


Der vorliegende Treiber stellt ein Software-Produkt für den Kommunikationsprozessor (CP)
dar.
● Der CP 343-1 ist in den Automatisierungssystemen S7-300 einsetzbar und kann
Kommunikationsverbindungen zu Partnersystemen herstellen.
● Der CP 443-1 ist in den Automatisierungssystemen S7-400 einsetzbar und kann
Kommunikationsverbindungen zu Partnersystemen herstellen.

Funktion der FBs


Mit den gelieferten Funktionsbausteinen wird eine Kommunikationsverbindung zwischen der
Kommunikationsbaugruppe CP und einem Gerät, welches das Protokoll Modbus/TCP
unterstützt, ermöglicht. Es werden die Funktionscodes 1, 2, 3, 4, 5, 6, 15 und 16 unterstützt.
Die Datenübertragung erfolgt entsprechend dem Client-Server-Prinzip. Die SIMATIC S7
kann bei der Übertragung sowohl als Client als auch als Server betrieben werden.

TCP/IP mit CP
Die TCP/IP-Verbindungen über CP sind statische Verbindungen, die während des
fehlerfreien Betriebs nicht abgebaut werden.
Die Verbindungsprojektierung von STEP 7 lässt mit dem verwendeten TCP-Stack des CP
nur eine einmalige Verwendung einer bestimmten Port-Nummer zu. Bestimmte CP-Typen
können über den lokalen Port 502 Verbindungen zu mehreren Clients parallel halten und
bedienen.
Im Kapitel "Verbindungen am Port 502 verwenden (Seite 25) " sind die technischen Details
zu diesem Thema erläutert.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 9
Produktbeschreibung
1.3 Hard- und Softwarevoraussetzungen

1.3 Hard- und Softwarevoraussetzungen

Baugruppen für den FB MODBUSCP


Die aktuellen Hardwarevoraussetzungen finden Sie unter: Technischen Daten der SIMATIC
Modbus/TCP-Bausteine (https://support.industry.siemens.com/cs/de/de/view/104946406)

Softwareausgabestände
Der Einsatz der Bausteine ist ab STEP 7 V5.5 möglich. Dabei ist die Verwendung der
Bausteine AG_LSEND/AG_LRECV V3.1 notwendig.

Speicherbedarf
● Der FB MODBUSCP benötigt ca. 8 kByte Arbeits- und 9 kByte Ladespeicher.
● Der FB MB_CPCLI benötigt ca. 9 kByte Arbeits- und 10 kByte Ladespeicher.
● Der FB MB_CPSRV benötigt ca. 9 kByte Arbeits- und 9 kByte Ladespeicher.
Die exakten Längen der Funktionsbausteine können Sie über deren Eigenschaften im
SIMATIC Manager ermitteln.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


10 Programmierhandbuch, 11/2017, A5E32489394-AC
Schritt-für-Schritt-Anleitung 2
Die folgende Liste gibt einen Überblick über die Reihenfolge der Arbeitsgänge und der
zugehörigen Kapitel, in denen die Arbeitsgänge im vorliegenden Dokument beschrieben
sind:
1. Installation von "SIMATIC Modbus/TCP CP" –
siehe Kapitel "Bibliothek auf dem STEP 7-PG/PC installieren (Seite 13)"
2. Parametrierung der Verbindungsparameter entsprechend der Anlagenkonfiguration –
siehe Kapitel "Kommunikationsverbindung projektieren (Seite 17)"
3. Einfügen der Modbus/TCP-Bausteine in das Anwenderprojekt –
siehe Kapitel "Modbus/TCP-Funktionsbausteine einfügen (Seite 23)"
4. Aufruf des Modbus/TCP-Bausteins FB905 im notwendigen OB –
siehe Kapitel "Funktionsweise des Funktionsbausteins MODBUSCP (Seite 37)"
5. Parametrierung des Parameter-DBs MODBUS_PARAM_CP entsprechend den
Anforderungen (Client/Server, Modbus/TCP-Adressen, DB-Bereiche, etc.) –
siehe Kapitel "Modbus/TCP-Kommunikation mit dem Wizard parametrieren (Seite 28)
und Aufbau der Verbindungsparameter (Seite 29)"
6. Parametrierung des Modbus/TCP-Bausteins für die Initialisierung und für die Laufzeit –
siehe Kapitel "Parameter des Funktionsbausteins MODBUSCP (Seite 40)"
7. Laden des Anwenderprogramms in die CPU und Lizenzierung des Modbus/TCP-
Bausteins für diese CPU – siehe Kapitel "MODBUSCP lizenzieren (Seite 33)"

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 11
Schritt-für-Schritt-Anleitung

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


12 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein in Betrieb nehmen 3
Die Projektierung des CPs ist über MPI oder LAN/Industrial Ethernet möglich. Erforderlich ist
die Projektierungssoftware STEP 7.
Die im Folgenden verwendeten Angaben zu STEP 7 und zur Projektierung der
Kommunikationsverbindung beziehen sich auf STEP 7 V5.5.
In Folgeversionen können sich Abläufe, Namens- und Verzeichnisangaben ändern.
Voraussetzungen für die Projektierung sind:
● STEP 7-Kenntnisse
● AWL-Kenntnisse
● SPS-Kenntnisse

3.1 Bibliothek auf dem STEP 7-PG/PC installieren

Voraussetzung
Die Projektiersoftware STEP 7 muss installiert sein.

Vorgehensweise
1. Legen Sie die Modbus/TCP-CD in das CD-ROM-Laufwerk Ihres PGs/PCs ein.
Wenn das Setupprogramm nicht automatisch startet, installieren Sie wie folgt:
– Wählen Sie im Windows Explorer das CD-ROM-Laufwerk
– Öffnen Sie das Verzeichnis Setup
– Starten Sie die Datei "Simatic S7 ModbusTCP CP V6.0.exe"
2. Befolgen Sie Schritt für Schritt die Anweisungen, die Ihnen das Installationsprogramm
anzeigt.
Nach Abschluss der Installation finden Sie Folgendes:
– Bibliothek "Modbus_TCP_CP" in
\Program Files\Siemens\Step 7\S7LIBS
– 2 Beispielprojekte in
\Program Files\Siemens\Step 7\EXAMPLES
– Das Programmierhandbuch in
\Program Files\Siemens\Step 7\S7MANUAL\S7Comm
– Das Software Registration Form in
\Program Files\Siemens\Step 7\S7LIBS\Modbus_TCP_CP

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 13
Funktionsbaustein in Betrieb nehmen
3.2 CP parametrieren

Das vorliegende Dokument kann über den Shortcut wie folgt geöffnet werden:
● "\Program Files\Siemens\Dokumentation" aus dem Verzeichnis "S7MANUAL\S7Comm"
● "Start > SIMATIC > Dokumentation"

3.2 CP parametrieren
Der CP wird mit dem Industrial Ethernet in der Liste "Subnetz" verbunden. Haben Sie Ihre
Stationen ohne Router miteinander verbunden, müssen diese im gleichen Subnetz liegen.

Vorgehensweise
1. Markieren Sie den Listeneintrag mit dem Namen Ihres Netzes.
Für ein neues Netz ist dies im Normalfall der Listeneintrag "Ethernet(1)".

2. Betätigen Sie die Schaltfläche "OK".


Die Parametrierung wird übersetzt und gespeichert.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


14 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein in Betrieb nehmen
3.3 Koppelpartner parametrieren

3.3 Koppelpartner parametrieren


In der Betriebsart "CP ist Client" wird für die Verbindungsprojektierung eine "Andere Station"
benötigt.

Vorgehensweise
1. Wählen Sie "Eigenschaften > Andere Station > Schnittstellen".

2. Betätigen Sie die Schaltfläche "Neu".


3. Wählen Sie in der darauf erscheinenden Typenauswahl "Industrial Ethernet".

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 15
Funktionsbaustein in Betrieb nehmen
3.3 Koppelpartner parametrieren

4. Betätigen Sie die Schaltfläche "OK". Folgender Dialog wird angezeigt.

5. Geben Sie eine IP-Adresse ein, die im gleichen Subnetz wie die Koppelpartnerstation
liegt.
Die Subnetzmaske sollte die gleiche sein wie bei der Partnerstation.
6. Wählen Sie das zugehörige Subnetz, das die Verbindung zwischen CP-Schnittstelle und
Koppelpartnerschnittstelle darstellt.
7. Betätigen Sie die Schaltfläche "OK". Folgender Dialog wird angezeigt.

Im Register "Allgemein" sind keine Einstellungen erforderlich.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


16 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein in Betrieb nehmen
3.4 Kommunikationsverbindung projektieren

3.4 Kommunikationsverbindung projektieren


Für die Verbindung zwischen einer S7-CPU und einem über Industrial Ethernet
angeschlossenen Kommunikationspartner/Bus stellt der CP das Bindeglied dar. Für die
Verbindung der jeweiligen Schnittstelle zum Koppelpartner/Bus muss eine
Verbindungsprojektierung vorgenommen werden.

3.4.1 Verbindung bei "CP ist Client" projektieren

Vorgehensweise
1. Wählen Sie im STEP 7-Projekt in der geöffneten eigenen S7 300/400-Station die CPU.
2. Öffnen Sie durch Doppelklicken auf "Verbindungen" die Verbindungsprojektierung.
Es öffnet sich das Programm "NetPro" mit dem sich Ihre Verbindungen projektieren
lassen.
3. Wählen Sie "Einfügen > Neue Verbindung...".
Folgender Dialog wird angezeigt.

4. Wählen Sie für die neue Verbindung den Verbindungspartner "Andere Station" und als
Verbindung "TCP-Verbindung" an.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 17
Funktionsbaustein in Betrieb nehmen
3.4 Kommunikationsverbindung projektieren

Folgender Dialog wird angezeigt.

5. Aktivieren Sie das Kontrollkästchen "Vor dem Einfügen: Eigenschaften aufblenden".

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


18 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein in Betrieb nehmen
3.4 Kommunikationsverbindung projektieren

6. Betätigen Sie die Schaltfläche "OK".


Folgender Dialog wird angezeigt.

Im Dialog können die Eigenschaften für die Verbindung parametriert werden.

Hinweis
Beachten Sie, dass die Verbindungs-ID (Lokale ID) im Anwenderprogramm beim Aufruf
des FBs zu verwenden ist.

7. Stellen Sie die ID anhand der Projektanforderungen ein.


8. Geben Sie einen Namen für die Verbindung an.
In der Anzeige "Über CP" wird der Kommunikationsprozessor angezeigt, der für den
Verbindungsaufbau verwendet wird. Soll ein anderer gesteckter CP verwendet werden,
kann dieser über die Schaltfläche "Wegewahl..." ausgewählt werden.
– Agiert die S7 als Modbus-Client muss das Kontrollkästchen "Aktiver
Verbindungsaufbau" angeklickt sein.
– Agiert die S7 als Modbus-Server muss das Kontrollkästchen deaktiviert sein.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 19
Funktionsbaustein in Betrieb nehmen
3.4 Kommunikationsverbindung projektieren

9. Wechseln Sie zum Register "Adressen".


Folgender Dialog wird angezeigt.

In diesem Dialog werden die Portnummern für beide Kommunikationspartner festgelegt.


10. Legen Sie im Register "Adressen" die Portnummern fest.

Hinweis
Portnummer auswählen:
• Bei einer Modbus/TCP-Kommunikation werden die Modbus/TCP-Server üblicherweise
über den Port 502 adressiert.
• Bei Modbus/TCP-Clients werden Portnummern größer 2000 verwendet.

11. Betätigen Sie die Schaltfläche "OK".


Die Eingaben werden übernommen.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


20 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein in Betrieb nehmen
3.4 Kommunikationsverbindung projektieren

3.4.2 Unspezifizierte Verbindung bei "CP ist Server" projektieren

Vorgehensweise
1. Wenn bei einer Kopplung der CP als Server arbeitet, wird über eine unspezifizierte
Verbindung die Kommunikation aktiviert.
Der Client muss den aktiven Verbindungsaufbau übernehmen.
2. Nach der Anwahl von Einfügen > Neue Verbindung... gelangen Sie in den Dialog "Neue
Verbindung einfügen".

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 21
Funktionsbaustein in Betrieb nehmen
3.4 Kommunikationsverbindung projektieren

3. Wählen Sie hier für die neue Verbindung anstelle des Verbindungspartners
"unspezifiziert" und als Verbindung "TCP-Verbindung" an.

4. Aktivieren Sie das Kontrollkästchen "Eigenschaftendialog aufblenden".


5. Betätigen Sie die Schaltfläche "OK".
Sie gelangen jetzt in den Dialog "Eigenschaften – TCP-Verbindung".

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


22 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein in Betrieb nehmen
3.5 Modbus/TCP-Funktionsbausteine einfügen

6. Deaktivieren Sie das Kontrollkästchen "Aktiver Verbindungsaufbau".


Im Dialog "Adressen" werden für den "Partner" keine Einstellungen vorgenommen. "IP"
und "PORT" sind ohne Eintrag.

7. Betätigen Sie die Schaltfläche "OK".


Die Eingaben werden übernommen.

3.5 Modbus/TCP-Funktionsbausteine einfügen


Folgende FBs werden für die Modbus/TCP-Kommunikation benötigt:
● MODBUSCP
● MB_CPCLI
● MB_CPSRV
Um diese in Ihr Projekt einfügen zu können, müssen Sie die Bausteine aus der Bibliothek
kopieren.
Des Weiteren befindet sich der Parameterdatenbaustein MODBUS_PARAM_CP als Vorlage
in der Bibliothek. Diesen können Sie zur Arbeitserleichterung ebenfalls in Ihr Projekt
kopieren.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 23
Funktionsbaustein in Betrieb nehmen
3.5 Modbus/TCP-Funktionsbausteine einfügen

Vorgehensweise
1. Kopieren Sie die Bausteine aus der Bibliothek, um diese in Ihr Projekt einzufügen.
Dazu öffnen Sie die Bibliothek "Modbus_TCP_CP" durch Anwahl von "Datei > Öffnen...".
2. Wechseln Sie im Dialog "Öffnen Projekt" auf die Registerkarte "Bibliotheken".
3. Wählen Sie die Bibliothek "Modbus_TCP_CP".
4. Bestätigen Sie die Auswahl mit "OK".
Es öffnet sich die Bibliothek.
5. Öffnen Sie, je nach Ihrer Konfiguration, durch Doppelklick den Ordner "CP 300" oder "CP
400".
6. Markieren Sie die Funktionsbausteine und kopieren Sie diese durch "Bearbeiten >
Kopieren".
7. Wechseln Sie in Ihr Projekt.
8. Wählen Sie im STEP 7-Projekt in der geöffneten eigenen S7-300/S7-400-Station die
CPU.
9. Öffnen Sie durch Doppelklicken auf "S7-Programm" und anschließend auf "Bausteine"
den Bausteinordner.
10. Fügen Sie die Bausteine in Ihr Programm durch "Bearbeiten > Einfügen" ein.

Kommunikationsbausteine einfügen
Die Modbus/TCP-Funktionsbausteine benutzen die Funktionen AG_SEND und AG_RECV
bei S7-300 bzw. AG_LSEND und AG_LRECV bei S7-400 sowie den Baustein AG_CNTRL.
Diese Kommunikationsbausteine befinden sich in der Bibliothek "SIMATIC_NET_CP".
● CP 300
Kopieren Sie die Funktionen FC5 (AG_SEND), FC6 (AG_RECV) und FC10 (AG_CNTRL)
aus dem Ordner "CP 300" und fügen Sie die Funktionen in Ihr Projekt ein.
● CP 400
Kopieren Sie die Funktionen FC50 (AG_LSEND), FC60 (AG_LRECV) und FC10
(AG_CNTRL) aus dem Ordner "CP 400" und fügen Sie die Funktionen in Ihr Projekt ein.

Hinweis
Beachten Sie, dass folgende Versionen der FCs Voraussetzung für den einwandfreien
Betrieb des FB MODBUSCP sind.
S7-400:
• AG_LSEND V3.1 oder höher
• AG_LRECV V3.1 oder höher
S7-300:
• AG_SEND V4.2 oder höher
• AG_RECV V4.7 oder höher

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


24 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein in Betrieb nehmen
3.6 Verbindungen am Port 502 verwenden

Die Modbusbausteine wurden mit dem SIMATIC NET-Library-Update für STEP 7 V5.5
übersetzt. In PCS7 V8 sind ebenfalls die Bausteine AG_LSEND und AG_LRECV mit der
Versionsnummer V3.1 enthalten. Diese besitzen jedoch andere Zeitstempel als die V3.1-
Bausteine aus dem Update für STEP 7 V5.5.
Daher kann beim Einfügen der Modbusbausteine ein Zeitstempelkonflikt angezeigt werden.
Verdrahten Sie in diesem Fall die Bausteine AG_LSEND und AG_LRECV im Projekt in eine
andere Nummer um und verdrahten Sie diese wieder zurück. Damit werden die internen
Zeitstempel aktualisiert.

AG_CNTRL
Mit dem Baustein FC10 AG_CNTRL aus der SIMATIC_NET-Bibliothek ist es möglich, eine
bestehende Verbindung ab- und wieder aufzubauen. Um die Ressourcen der CPU/des CPs
effektiver nutzen zu können, wurde dieser Baustein auch in die Modbus/TCP-Bausteine
eingefügt.

Hinweis
Die älteren CPs bzw. ältere Firmwarestände unterstützen diesen AG_CNTRL nicht.
Informationen dazu, welcher CP mit welchem Firmwarestand den AG_CNTRL unterstützt,
finden Sie hier: Ethernet-CP und AG_CNTRL
(http://support.automation.siemens.com/WW/view/de/33414377)
Ist der verwendete CP hier nicht aufgeführt, kann er mit den gelieferten Modbus/TCP-
Bausteinen nicht verwendet werden.

3.6 Verbindungen am Port 502 verwenden


Einige CPs können TCP-Verbindungen multiplexen. Dabei können sich mehrere
Modbus/TCP-Clients auf den Port 502 des CP verbinden. Der CP fungiert als Modbus/TCP-
Server.
Hier finden Sie Informationen, welcher CP mit welchem Firmwarestand die mehrfache
Nutzung des Ports 502 ermöglicht: Technischen Daten der SIMATIC Modbus/TCP-
Bausteine (https://support.industry.siemens.com/cs/de/de/view/104946406)

Voraussetzung
Um diese Funktion nutzen zu können, müssen bei der Verbindungsparametrierung in NetPro
folgende Einstellungen vorgenommen werden:
● CP ist Server
● Port 502 als lokaler Port
● Passiver Verbindungsaufbau

Hinweis
Beachten Sie, dass nur 1 Verbindung in NetPro projektiert wird, unabhängig davon wie viele
Clients auf den CP als Server zugreifen.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 25
Funktionsbaustein in Betrieb nehmen
3.7 Anlaufverhalten des CP 343-1 und des CP 443-1

Anzahl der Verbindungen


Der CP kann über Port 502 mit maximal 4 Clients gleichzeitig kommunizieren.

Status der Verbindung anzeigen


Sowohl in NetPro online als auch in der Spezialdiagnose des CP kann der Status der
Verbindung angezeigt werden.
Da in NetPro nur 1 Verbindung projektiert ist, stellt die Anzeige den Status aller TCP-
Verbindungen zu den unterschiedlichen Clients dar.
Wenn noch kein Client eine Verbindung aufgebaut hat, erscheint die Anzeige "passiver
Verbindungsaufbau läuft". Sobald ein Client eine Verbindung aufgebaut hat, wird
"Verbindung aufgebaut" angezeigt. Es kann nicht festgestellt werden, wie viele Clients sich
aktuell auf den CP verbunden haben.

Verhalten im Fehlerfall
In bestimmten Fehlerfällen muss der CP die Verbindung ab- und wieder aufbauen um wieder
in den Grundzustand zu gelangen. Diese Aktion wird vom Modbusbaustein übernommen.
Dabei werden alle bestehenden Verbindungen über den Port 502 beendet.

Tipps für das Anwenderprogramm


Wenn mehrere Verbindungen über Port 502 bestehen, ist im Anwenderprogramm nicht
ersichtlich, welcher Client den aktuellen Modbus/TCP-Request gesendet hat. Wenn die
Clients unterschiedliche UNIT-Nummern verwenden, kann über die programmtechnische
Auswertung derselben eine Unterscheidung vorgenommen werden.

3.7 Anlaufverhalten des CP 343-1 und des CP 443-1


Der Anlauf des CP unterteilt sich in folgende Phasen:
● Initialisierung (Netz-Ein des CP)
Sobald Spannung am CP anliegt, wird nach Durchlauf eines Hardwaretestprogramms die
Firmware auf dem CP für den Betrieb vorbereitet.
● Parametrierung
Bei der Parametrierung empfängt der CP die dem aktuellen Steckplatz zugeordneten
Baugruppenparameter. Der CP ist jetzt betriebsbereit.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


26 Programmierhandbuch, 11/2017, A5E32489394-AC
Modbus/TCP-Kommunikation parametrieren 4
Für die Kommunikation über einen CP 343 und einen CP 443 ist eine
Verbindungsprojektierung in NetPro notwendig.
Es können mehrere Verbindungen zu verschiedenen Kommunikationspartnern projektiert
und gleichzeitig aufgebaut werden. Die Anzahl der gleichzeitig aufgebauten Verbindungen
ist abhängig von der verwendeten CPU und dem eingesetzten CP.

Parameterdatenbaustein MODBUS_PARAM_CP
Die für die Zuordnung der Verbindungen und die Bearbeitung der Modbus/TCP-Telegramme
notwendigen Daten werden in einem Datenbaustein – dem Parameterdatenbaustein
MODBUS_PARAM_CP – definiert. Dabei werden zuerst die verbindungsspezifischen Daten
abgelegt. Nach den verbindungsspezifischen Daten folgen die Modbus/TCP-Parameter.
Für jede Verbindung wird ein Parameterblock benötigt, in dem die Verbindungsparameter
der NetPro-Projektierung und die Modbus/TCP-Parameter definiert werden. Für jede weitere
Verbindung kann der Datenbaustein erweitert oder ein neuer angelegt werden und der
passende Parameterblock mit den Verbindungs- und den Modbus/TCP-Parametern
eingefügt werden.
In dem Parameterdatenbaustein können die Projektierungsdaten aller Verbindungen
enthalten sein. Es ist ebenso möglich, für jede Verbindung einen separaten
Parameterdatenbaustein anzulegen.

Hinweis
Sind in einer Station mehrere CPs vorhanden und werden über diese jeweils Modbus/TCP-
Verbindungen projektiert, können Verbindungen mit der gleichen ID nicht im selben
Parameterdatenbaustein abgelegt werden. In diesem Fall muss pro CP jeweils ein
Parameterdatenbaustein erstellt werden.

Ein vorgefertigter Parameterdatenbaustein ist als Beispiel in der Bibliothek


"Modbus_TCP_CP" enthalten.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 27
Modbus/TCP-Kommunikation parametrieren
4.1 Modbus/TCP-Kommunikation mit dem Wizard parametrieren

Aufbau des DB MODBUS_PARAM_CP

● Verbindungsparameter
Im ersten Block werden die verbindungsspezifischen Parameter "id" und "laddr" definiert.
Mit Hilfe dieser Parameter kann die in NetPro projektierte Verbindung zugeordnet
werden.
● Modbus/TCP-Parameter
In den Modbus/TCP-Parametern werden die für die Betriebsart und Adressreferenz
notwendigen Daten abgelegt; z.B. die Betriebsart der S7 als Modbus/TCP-Server bzw.
als Modbus/TCP-Client, die Modbus/TCP-Registeradressen und die DB-Nummern, in den
die Daten abgebildet werden. Die Datenstruktur der Modbus/TCP-Parameter muss
zwingend eingehalten werden, da sonst keine fehlerfreie Bearbeitung möglich ist.

Projektierungsmöglichkeiten
Es gibt zwei Möglichkeiten, die Projektierung für die Verbindungs- und Modbus/TCP-
Parameter vorzunehmen. Zum Einen ist die Eingabe über einen Wizard möglich, mit dem
sehr komfortabel die Parametrierung vorgenommen werden kann. Zum Anderen können die
Parameter durch Editieren des Parameterdatenbausteins eingestellt werden.
Diese beiden Möglichkeiten sind in den Kapiteln "Modbus/TCP-Kommunikation mit dem
Wizard parametrieren (Seite 28)" und "Aufbau der Verbindungsparameter (Seite 29)"
beschrieben.

4.1 Modbus/TCP-Kommunikation mit dem Wizard parametrieren


Mit dem "Modbus/TCP Wizard" ist eine komfortable Projektierung der Verbindungs-ID, der
CP-Adresse und der Modbus/TCP-Parameter im Parameterdatenbaustein
MODBUS_PARAM_CP möglich. Dabei wird der komplette Parameterblock mit
Verbindungsparametern und Modbus/TCP-Parametern angelegt.
Den Wizard finden Sie unter: Modbus/TCP CP Wizard
(http://support.automation.siemens.com/WW/view/de/60735352)

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


28 Programmierhandbuch, 11/2017, A5E32489394-AC
Modbus/TCP-Kommunikation parametrieren
4.2 Modbus/TCP-Kommunikation manuell parametrieren

4.2 Modbus/TCP-Kommunikation manuell parametrieren

4.2.1 Aufbau der Verbindungsparameter

Aufbau der Verbindungsparameter

Jeder der Parameter beginnt mit dem Präfix "ID_x_", wobei x für die Nummer der
Verbindungs-ID steht. In der vorliegenden Dokumentation wird dieses Präfix im Folgenden
der Übersichtlichkeit halber weggelassen.
Die beiden ersten Parameter des Blocks sind Verbindungsparameter, die intern im FB
MODBUSCP bei den Aufrufen von AG_SEND/AG_RECV bzw. AG_LSEND/AG_LRECV
verwendet werden.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 29
Modbus/TCP-Kommunikation parametrieren
4.2 Modbus/TCP-Kommunikation manuell parametrieren

Mit den restlichen Parametern werden die Betriebsart der Modbus/TCP-Kommunikation und
die Adressabbildung der Modbus/TCP-Adressen auf die SIMATIC-Adressen festgelegt. Es
können bis zu 8 Datenbereiche parametriert werden. Dabei muss mindestens der erste
dieser Datenbereiche definiert werden, die anderen 7 sind optional.
Die Parameter sind im Folgenden erläutert.

id
Für jede projektierte Verbindung in STEP 7 (NetPro) wird eine Verbindungs-ID vergeben.
Die Verbindungs-ID beschreibt eindeutig die Verbindung von der CPU über den CP zum
Koppelpartner. Die Nummer aus der Verbindungsprojektierung ist hier einzutragen. Der
Wertebereich für diesen Parameter ist 1 bis 64.

laddr
Der Parameter "laddr" ist die Basisadresse des CP aus der HW Konfig (E-Adresse). Der
projektierte Wert ist hier einzutragen. Der Wertebereich für diesen Parameter ist CPU-
abhängig. Die Parameter "id" und "laddr" können auch der Maske "Eigenschaften" der TCP-
Verbindung entnommen werden.

server_client
Dieser Parameter unterscheidet Client- und Serverbetrieb. Ist der Eingang TRUE, wird in der
Betriebsart "CP ist Server" gearbeitet. Die Einstellung FALSE wählt die Betriebsart "CP ist
Client" aus.

single_write
In der Betriebsart "CP ist Client" wird mit dem Parameter "single_write" = TRUE bei
schreibenden Aufträgen mit Länge 1 die Funktionscodes 5 und 6 verwendet. Ist
"single_write" = FALSE, werden bei allen schreibenden Aufträgen die Funktionscodes 15
und 16 verwendet.

data_type_x
Mit dem Parameter "data_type_x" wird angegeben, welcher Modbus/TCP-Datentyp in
diesem DB abgebildet wird. Wird in data_type_x der Wert 0 eingetragen, wird der
entsprechende Datenbereich nicht verwendet.

Kennung Datentyp Datenbreite


0 Bereich nicht verwendet –
1 Coils Bit
2 Inputs Bit
3 Holding Register Word
4 Input Register Word

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


30 Programmierhandbuch, 11/2017, A5E32489394-AC
Modbus/TCP-Kommunikation parametrieren
4.2 Modbus/TCP-Kommunikation manuell parametrieren

db_x
Der Parameter "db_x" legt den Datenbaustein fest, in dem die nachfolgend definierten
Modbus/TCP-Register oder Bitwerte abgebildet werden. Bei der Verwendung eines Global-
DBs ist die DB-Nummer 0 nicht erlaubt, da diese für das System reserviert ist. Wird ein
DataCollector-Baustein in CFC verwendet, muss die DB-Nummer 0 angegeben werden.
DB-Nummer 0 bis 65535 (W#16#0000 bis W#16#FFFF)

start_x, end_x
Mit "start_x" wird die erste Modbus/TCP-Adresse, die im Datenwort 0 des DB abgebildet
wird, angegeben. Der Parameter "end_x" definiert die Adresse der letzten Modbus/TCP-
Adresse.
● Bei Registerzugriffen berechnet sich die Datenwortnummer im S7 DB, in die die letzte
Modbus/TCP-Adresse eingetragen wird, nach folgender Formel:
DBW-Nummer = (end_x – start_x) ∗ 2
● Bei Bitzugriffen berechnet sich die Datenbytenummer im S7 DB, in die die letzte
Modbus/TCP-Adresse eingetragen wird, nach folgender Formel:
DBB-Nummer = (end_x – start_x) / 8
Die definierten Datenbereiche dürfen sich nicht überlappen. Der Parameter "end_x" darf
nicht kleiner als "start_x" sein. Im Fehlerfall wird der Anlauf des FBs mit Fehler beendet. Sind
beide Werte gleich, wird 1 Modbus/TCP-Adresse (1 Register oder 1 Bitwert) zugeordnet.
Im Kapitel "Adressabbildung des Funktionsbausteins MODBUSCP (Seite 45)" ist ein Beispiel
für die Abbildung der Modbus/TCP-Adressen auf S7-Speicherbereiche dargestellt.

4.2.2 Modbus/TCP-Kommunikation parametrieren

Vorgehensweise
1. Kopieren Sie den DB2 aus der Bibliothek "Modbus_TCP_CP" und fügen Sie diesen in Ihr
Projekt ein.
Wird die Nummer bereits anderweitig verwendet, kann der DB umbenannt werden. Die
Parameter im Baustein MODBUS_PARAM_CP dürfen während der Laufzeit nicht
verändert werden.
2. Starten Sie nach einer Änderung der Parameter die CPU mit STOP > RUN erneut.
Pro Verbindung wird ein Parameterblock benötigt.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 31
Modbus/TCP-Kommunikation parametrieren
4.2 Modbus/TCP-Kommunikation manuell parametrieren

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


32 Programmierhandbuch, 11/2017, A5E32489394-AC
MODBUSCP-Lizenzierung 5
5.1 MODBUSCP lizenzieren
Der Baustein MODBUSCP muss auf jeder CPU einzeln lizenziert werden. Die Lizenzierung
erfolgt in 2 Schritten:
● dem Auslesen des IDENT_CODE und
● der Eingabe des Freischaltcodes REG_KEY.
Dabei muss der OB121 in der CPU vorhanden sein.

Vorgehensweise

IDENT_CODE auslesen
1. Parametrieren Sie den Baustein MODBUSCP Ihren Anforderungen entsprechend in
einem zyklischen OB (OB1 oder Weckalarm-OB).
Laden Sie das Programm in die CPU und setzen Sie diese in RUN.
2. Öffnen Sie im SIMATIC Manager das Projekt im Online-Modus.
3. Öffnen Sie in diesem Online-Projekt den Instanz-DB des Modbusbausteins.

Am Ausgang IDENT_CODE wird eine 18-stellige Zeichenfolge angezeigt.


4. Kopieren Sie diesen String per Copy/Paste aus dem DB und fügen ihn in das Formular
SOFTWARE REGISTRATION FORM ein.
Dieses Formular wird bei der Installation im Bibliotheks-Pfad ..\Program
Files\Siemens\Step 7\S7LIBS\Modbus_TCP_CP abgelegt und liegt zusätzlich auch auf
der Installations-CD.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 33
MODBUSCP-Lizenzierung
5.1 MODBUSCP lizenzieren

5. Tragen Sie die Lizenznummer von der Produktverpackung in das Formular ein.

6. Senden Sie das Formular über einen Service Request an den Customer Support
(https://support.industry.siemens.com/my/ww/de/requests/#createRequest). Sie erhalten
daraufhin den Freischaltcode für ihre CPU.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


34 Programmierhandbuch, 11/2017, A5E32489394-AC
MODBUSCP-Lizenzierung
5.1 MODBUSCP lizenzieren

Freischaltcode REG_KEY eingeben


Die Angabe des Freischaltcodes REG_KEY muss an jedem MODBUSCP-Bausteinaufruf
erfolgen. Der REG_KEY sollte in einem Global-DB gespeichert werden, über den alle
MODBUSCP-Bausteine den notwendigen Freischaltcode erhalten. Die folgenden
Arbeitsschritte sind ein Beispiel.
1. Kopieren Sie den vorgefertigten Lizenzierungsbaustein DB3 aus der Bibliothek
"Modbus_TCP_CP" in Ihr Projekt.
Wird die DB-Nummer bereits im Projekt verwendet, kann der Lizenz-DB auch umbenannt
werden.
2. Öffnen Sie den Lizenz-DB und kopieren Sie den übermittelten 17-stelligen Freischaltcode
per Copy/Paste in die Spalte "Anfangswert".

Damit der Freischaltcode REG_KEY nach dem Neuladen der CPU nicht erneut
eingegeben werden muss, muss er im Datenbaustein fest eingetragen werden.
3. Wechseln Sie dazu über den Menüpunkt "Ansicht > Datensicht" in die Datensicht des
DBs.
Über den Menübefehl "Bearbeiten > Datenbaustein initialisieren" werden dann alle Werte
der Spalte "Anfangswert" in die Spalte "Aktualwert" übernommen.
4. Geben Sie im zyklischen OB am Parameter REG_KEY_DB des MODBUSCP-Bausteins
die Nummer oder den Namen des Lizenz-DBs an.
5. Laden Sie die geänderten Bausteine in die CPU.
Die Eingabe des Freischaltcodes REG_KEY kann zur Laufzeit erfolgen. Ein Wechsel von
"STOP > RUN" ist nicht erforderlich.

Ergebnis
Der Modbus/TCP-Baustein ist nun für diese CPU lizenziert, das Ausgangsbit LICENSED ist
TRUE.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 35
MODBUSCP-Lizenzierung
5.2 Fehlende oder fehlerhafte Lizenzierung

5.2 Fehlende oder fehlerhafte Lizenzierung


Ist kein oder ein falscher Freischaltcode eingetragen, blinkt folgende LED:
● CPU S7-300: LED SF
● CPU S7-400: LED INTF
Es wird zyklisch ein Eintrag in den Diagnosepuffer bezüglich der fehlenden Lizenz
vorgenommen.

Beschreibung
Die Fehlernummer für eine fehlende Lizenz ist W#16#A090.

WARNUNG
Falls der OB121 in der Steuerung fehlt, wird die CPU in den STOP-Zustand gesetzt.

Bei einem fehlenden oder falschen Freischaltcode wird die Modbus/TCP-Kommunikation


bearbeitet, allerdings wird am Ausgang STATUS stets W#16#A090 „Keine gültige Lizenz
vorhanden“ angezeigt. Das Ausgangsbit LICENSED ist FALSE.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


36 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein MODBUSCP 6
6.1 Funktionsweise des Funktionsbausteins MODBUSCP
Der Funktionsbaustein MODBUSCP erlaubt es, eine Kommunikation zwischen einem CP
443-1 bzw. CP 343-1 und einem Partner, der das Modbus/TCP-Protokoll unterstützt,
aufzubauen. Es werden die Funktionscodes 1, 2, 3, 4, 5, 6, 15 und 16 unterstützt.
Der FB kann je nach Parametrierung sowohl als Client als auch als Server betrieben
werden. Es ist auch möglich, einen CP gleichzeitig als Client und als Server zu betreiben.
Dazu sind zwei NetPro-Verbindungen und 2 FB-Aufrufe notwendig.
Es gibt seitens der Bibliothek keine Begrenzung der maximalen Anzahl von parallel
laufenden Modbus/TCP-Bausteinen. Allerdings gibt es eine CPU- und CP-abhängige
maximal mögliche Anzahl von gleichzeitig laufenden AG-Funktionsaufrufen. Im Handbuch
der CPU kann unter "Technische Daten > Kommunikation" die maximale Anzahl von AG-
Aufrufen entnommen werden. Im Handbuch des CPs befindet sich die Angabe, wie viele
AG_SEND/AG_RECV bzw. AG_LSEND/AG_LRECV parallel von diesem CP bearbeitet
werden können.
Der Funktionsbaustein MODBUSCP ruft intern die Bausteine MB_CPSRV (FB 906) und
MB_CPCLI (FB 908) auf. Der Baustein MB_CPCLI beinhaltet die Funktionalität des
Modbus/TCP-Clients und der Baustein MB_CPSRV realisiert die Funktionalität des
Modbus/TCP-Servers.

Aufgaben der Bausteine


● Aufruf der Standardfunktionen zur Datenübertragung zwischen CPU und CP
● Modbus/TCP-spezifischen Telegrammheader beim Senden generieren
● Prüfung des Modbus/TCP-spezifischen Telegrammheaders beim Empfang
● Prüfung, ob die angesprochenen Datenbereiche vorhanden sind
● Exception-Telegramme generieren, wenn ein Fehler aufgetreten ist (nur bei CP ist
Server)

Exception Code Bedeutung


1 Der gesendete Funktionscode wird nicht unterstützt.
2 Es erfolgte ein Zugriff auf eine nicht vorhandene bzw. nicht zulässige Adresse.
3 Es wurde eine ungültige Länge für diesen Funktionscode angegeben.

● Datentransfer von/in den parametrierten DB


● Zeitliche Überwachung des Empfangs von Daten
● Lizenzprüfung

Online-Hilfe
Für den Funktionsbaustein MODBUSCP steht im SIMATIC-Manager eine Baustein-Online-
Hilfe zur Verfügung. Wenn der Baustein markiert und die Taste "F1" gedrückt wird, wird die
Online-Hilfe mit den wichtigsten Informationen zum Baustein geöffnet.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 37
Funktionsbaustein MODBUSCP
6.1 Funktionsweise des Funktionsbausteins MODBUSCP

Aufruf des FBs


Der Funktionsbaustein MODBUSCP muss für einen korrekten Programmablauf in einen
zyklischen OB (OB1 oder einem zeitgesteuerten OB, z.B. OB35) eingebaut werden.
Die anderen in der Bibliothek enthaltenen FBs MB_CPCLI und MB_CPSRV werden
unterlagert aufgerufen und dürfen nicht zusätzlich in einem OB aufgerufen werden.
Der gleichzeitige Aufruf des FB MODBUSCP im OB1 und in einem zeitgesteuerten OB (z.B.
OB35) ist nicht zulässig.
Der OB121 muss in der CPU vorhanden sein. Nähere Informationen dazu erhalten Sie im
Kapitel "MODBUSCP lizenzieren (Seite 33)".

Initialisierung
Der Funktionsbaustein MODBUSCP wird mit einer positiven Flanke am Eingang "Init"
initialisiert.
● Die Initialisierungsparameter müssen entsprechend der Anlagenkonfiguration belegt sein.
● Die Initialisierungsparameter werden auf Plausibilität überprüft und in den Instanz-DB
übernommen.
● Der Parameter-DB wird ausgewertet und die Parametrierung in den Instanz-DB
übernommen.
● Die Laufzeitparameter werden im Anlauf nicht ausgewertet.
Wird am Parameter "Init" eine positive Flanke erkannt, werden die oben genannten Aktionen
durchgeführt. Konnte die Prüfung ohne Fehler beendet werden, wird "Init" zurückgesetzt,
"Init_Error" und "Init_Status" zeigen 0 an.
Traten während der Prüfung Fehler auf, wird dies an den Ausgängen "Init_Error" und
"Init_Status" angezeigt. Solange ein Init-Fehler ansteht, ist keine Modbus/TCP-
Kommunikation über diesen Baustein möglich. Der Init-Fehler muss erst korrigiert werden.

Zyklischer Betrieb des FBs


● Anhand der Laufzeitparameter werden die Funktionen des Bausteins aktiviert.
● Während ein Auftrag läuft, werden Änderungen an den Laufzeitparametern nicht
ausgewertet.
● Initialisierungsparameter werden nicht ausgewertet.

Verhalten bei Programmierfehler OB121


Ist der Modbus/TCP-Baustein für diese CPU noch nicht lizenziert, wird OB121 aufgerufen.

WARNUNG
CPU-STOP bei fehlendem OB121
Die CPU geht bei fehlendem OB121 in den Betriebszustand STOP und unvorhersehbare
Anlagenzustände können eintreten.
Bevor die Anlage in Betrieb genommen wird, muss sichergestellt werden, dass der OB121
vorhanden ist.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


38 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein MODBUSCP
6.1 Funktionsweise des Funktionsbausteins MODBUSCP

Auftragsanstoß – CP ist Client


Durch einen positiven Flankenwechsel am Triggereingang ENQ_ENR wird ein Auftrag
initiiert. Abhängig von den Eingangsparametern UNIT, DATA_TYPE, START_ADDRESS,
LENGTH und WRITE_READ wird ein Modbus/TCP-Anforderungstelegramm generiert und
zur Partnerstation über die TCP/IP-Verbindung gesendet. Der Client wartet die parametrierte
Zeit MONITOR auf eine Antwort vom Server.
Kommt es zu einer Zeitüberschreitung (keine Antwort vom Server) wird der aktivierte Auftrag
mit Fehler beendet. Ein neuer Auftrag kann initiiert werden.
Nach dem Empfang des Antworttelegramms wird eine Plausibilitätsprüfung durchgeführt.
Verläuft diese positiv, werden die erforderlichen Aktionen durchgeführt und der Auftrag wird
ohne Fehler beendet, der Ausgang DONE_NDR wird gesetzt. Wurden bei der Prüfung
Fehler erkannt, wird der Auftrag mit Fehler beendet, das Bit ERROR wird gesetzt und eine
Fehlernummer in STATUS angezeigt.

FB aktivieren – CP ist Server


Durch einen positiven Pegel am Triggereingang ENQ_ENR ist der FB zum Empfang eines
Anforderungstelegramms vom Client bereit. Der Server verhält sich dabei passiv und wartet
auf ein Telegramm vom Client.
Wenn der Server ein Anforderungstelegramm empfängt, dann prüft er das empfangene
Telegramm. Nach erfolgreicher Prüfung sendet der Server ein Antworttelegramm. Der
Server signalisiert das Ende des Telegrammverkehrs über das Bit DONE_NDR = TRUE. Zu
diesem Zeitpunkt wird die ausgeführte Funktion an den Ausgängen UNIT, DATA_TYPE,
START_ADDRESS, LENGTH und WRITE_READ angezeigt.
Ein fehlerhaftes Anforderungstelegramm bewirkt eine Fehlermeldung. Das Bit ERROR wird
gesetzt, im STATUS wird die Fehlernummer angezeigt und die Anforderung des Client wird
nicht beantwortet.

Datenübergabe CPU – CP
Die Datenübergabe zwischen CP und CPU erfolgt mit den Standardbausteinen AG_SEND
und AG_RECV bzw. AG_LSEND und AG_LRECV.
Aktiviert der Anwender einen Auftrag (CP ist Client) oder empfängt der Anwender ein
Telegramm vom Client (CP ist Server), dann ruft der FB die Standardbausteine für den CP in
der erforderlichen Reihenfolge und Anzahl auf.
Empfängt der CP ein Telegramm, dann werden zuerst 6 Byte mit einem AG_(L)RECV
gelesen. In diesen 6 Byte ist die Länge des restlichen Telegramms enthalten. Danach erfolgt
ein zweiter Aufruf des AG_(L)RECV mit der Restlänge. Die Auswertung der empfangenen
Nutzdaten wird erst nach dem vollständigen Empfang durchgeführt.

Verbindungsabbau durch den Kommunikationspartner


Wenn die TCP-Verbindung durch den Kommunikationspartner abgebaut wird, ist aufgrund
von Systemeigenschaften in der Betriebsart "CP ist Server" der nächste Empfang erst
wieder nach 1 Sekunde möglich.
In der Betriebsart "CP ist Client" ist in diesem Fall das Senden von Daten erst wieder nach
150 ms möglich. Diese Verzögerungszeit wird durch den Funktionsbaustein realisiert.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 39
Funktionsbaustein MODBUSCP
6.2 Parameter des Funktionsbausteins MODBUSCP

6.2 Parameter des Funktionsbausteins MODBUSCP


Parameter Dekl. Typ Beschreibung Wertebereich Init
id IN WORD Verbindungs-ID aus NetPro 1 bis 64 ja
db_param IN BLOCK_DB Nummer des Parameter-DBs MODBUS_PARAM_CP CPU abhängig ja
REG_KEY_DB IN BLOCK_DB Datenbaustein mit dem Registrierungsschlüssel für die CPU abhängig nein
Lizenzierung
MONITOR IN TIME Überwachungszeit für den Empfang von Daten vom T#20ms bis nein
Koppelpartner. Die minimal einstellbare Zeit ist 20 ms T#+24d20h31
m23s647ms
ENQ_ENR IN BOOL CP ist Client: Auftragsanstoß bei positiver Flanke TRUE/FALSE nein
CP ist Server: Empfangsbereit bei positivem Pegel
LICENSED OUT BOOL Lizenzzustand des Bausteins nein
Baustein ist lizenziert TRUE
Baustein ist nicht lizenziert FALSE
BUSY OUT BOOL Bearbeitungszustand der Funktionen AG_(L)SEND nein
bzw. AG_(L)RECV
in Bearbeitung TRUE
nicht in Bearbeitung FALSE
DONE_NDR OUT BOOL CP ist Client: TRUE: aktivierter Auftrag wurde fehlerfrei TRUE/FALSE nein
beendet
CP ist Server: TRUE: Anforderung vom Client wurde
ausgeführt und beantwortet
ERROR OUT BOOL Es ist ein Fehler aufgetreten TRUE nein
Es ist kein Fehler aufgetreten FALSE
STATUS OUT WORD Fehlernummer 0 bis FFFF nein
STATUS_FUNC OUT STRING[8] Name der Funktion, die den Fehler an STATUS verur- Character nein
sacht hat
IDENT_CODE OUT STRING[18] Identifikation für die Lizenzierung. Fordern Sie mit die- Character nein
sem Identifikationsstring die Lizenz an.
Init_Error OUT BOOL TRUE: Bei der Initialisierung ist ein Fehler aufgetreten. TRUE/FALSE nein
Init_Status OUT WORD Status der Initialisierung 0 bis FFFF nein
UNIT IN/OUT BYTE Unit Identifier (INPUT bei CLIENT Funktion, OUTPUT 0 bis 255 nein
bei SERVER Funktion)
DATA_TYPE IN/OUT BYTE zu bearbeitender Datentyp (INPUT bei CLIENT nein
Funktion, OUTPUT bei SERVER Funktion)
Coils 1
Inputs 2
Holding Register 3
Input Register 4
START_ IN/OUT WORD MODBUS Startadresse (INPUT bei CLIENT Funktion, 0 bis 65535 nein
ADDRESS OUTPUT bei SERVER Funktion)
LENGTH IN/OUT WORD Anzahl der zu bearbeitenden Werte (INPUT bei nein
CLIENT Funktion, OUTPUT bei SERVER Funktion)
Coils: Lesende Funktion 1 bis 2000
Coils: Schreibende Funktion 1 bis 1968
Inputs: Lesende Funktion 1 bis 2000
Holding Register: Lesende Funktion 1 bis 125
Holding Register: Schreibende Funktion 1 bis 123
Input Register: Lesende Funktion 1 bis 125
WRITE_ READ IN/OUT BOOL INPUT bei CLIENT-Funktion, OUTPUT bei SERVER- TRUE/FALSE nein
Funktion; Schreibzugriff oder Lesezugriff
Init IN/OUT BOOL Initialisierung bei positiver Flanke TRUE/FALSE nein

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


40 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein MODBUSCP
6.2 Parameter des Funktionsbausteins MODBUSCP

Allgemeines
Die Parameter des FB MODBUSCP gliedern sich in zwei Gruppen:
● Initialisierungsparameter
Die Initialisierungsparameter werden nur bei einer positiven Flanke am Parameter "Init"
ausgewertet und in den Instanz-DB übernommen. Die Initialisierungsparameter sind in
der obigen Tabelle in der Spalte "INIT" mit "ja" gekennzeichnet.
Eine Änderung der Initialisierungsparameter während des laufenden Betriebs hat keine
Auswirkung. Nach einer Änderung dieser Parameter z.B. im Testbetrieb muss der
Instanz-DB durch eine positive Flanke am Parameter "Init" neu initialisiert werden.
● Laufzeitparameter
Laufzeitparameter können im zyklischen Betrieb verändert werden.
In der Betriebsart "CP ist Client" ist es jedoch nicht sinnvoll die Eingangsparameter zu
ändern während ein Auftrag läuft. Mit den Vorbereitungen für den nächsten Auftrag und
den damit verbundenen Änderungen der Parameter sollte gewartet werden, bis der
vorherige Auftrag mit DONE_NDR oder ERROR beendet wurde.
In der Betriebsart "CP ist Server" dürfen die Ausgangsparameter nur bei gesetztem
DONE_NDR ausgewertet werden.
Die Ausgangsparameter sind dynamische Anzeigen und stehen somit nur 1 CPU-Zyklus
an. Sie müssen für eine eventuelle Weiterverarbeitung oder eine Anzeige in der
Variablentabelle in andere Speicherbereiche kopiert werden.

Wertebereiche
Bei den Wertebereichen für die verschiedenen Parameter sind ggf. auch CPU-spezifische
Einschränkungen zu beachten.

id
Für jede projektierte Verbindung in STEP 7 (NetPro) wird eine Verbindungs-ID vergeben.
Die Verbindungs-ID beschreibt eindeutig die Verbindung von der CPU über den CP zum
Koppelpartner. Diese Verbindungs-ID wird im Verbindungsparameterblock projektiert,
welcher im Parameter-Datenbaustein enthalten ist. Diese ID muss hier eingetragen werden.
Der Wertebereich für diesen Parameter ist 1 bis 64.

db_param
Der Parameter db_param bezeichnet die Nummer des Datenbausteins
MODBUS_PARAM_CP. In diesem Parameter-Datenbaustein sind die verbindungs- und
modbusspezifischen Parameter hinterlegt, die für die Kommunikation zwischen der CPU und
dem Koppelpartner notwendig sind.
Der Wertebereich für diesen Parameter ist CPU-abhängig. Die DB-Nummer 0 ist nicht
zulässig, da diese für das System reserviert ist. Die Eingabe der DB-Nummer erfolgt im
Klartext in der Form "DBxy".
Sollen mehrere Verbindungen realisiert werden, kann der Parameter-Datenbaustein die
dazu notwendigen Parameter aller Verbindungen in sequentieller Abfolge enthalten. Es ist
ebenso möglich für jede Verbindung einen separaten Parameterdatenbaustein zu erstellen.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 41
Funktionsbaustein MODBUSCP
6.2 Parameter des Funktionsbausteins MODBUSCP

REG_KEY_DB
Der Baustein muss auf jeder CPU lizenziert werden. Mit der korrekten Eingabe des
Freischaltcode an diesen Parameter wird der Baustein lizenziert und die Modbus/TCP-
Kommunikation kann ohne Einschränkungen genutzt werden.
Weitere Informationen entnehmen Sie bitte dem Kapitel "Lizenzierung".

MONITOR
Die Überwachungszeit MONITOR überwacht den Eingang der Daten vom Koppelpartner.
Die Monitoringzeit wird im Zeitformat T#... angegeben. Es wird eine Überwachungszeit von
ca. 1,5 s empfohlen.
In der Betriebsart "CP ist Client" wird mit der Zeit MONITOR der Eingang des kompletten
Antworttelegramms vom Server überwacht. Bei Überschreitung der Überwachungszeit wird
der aktivierte Auftrag mit Fehler beendet. Die Zeit wird nach beendetem Senden des
Anforderungstelegramms gestartet und nach dem Empfang der kompletten Daten gestoppt.
In der Betriebsart "CP ist Server" wird der Eingang des zweiten Telegrammteils mit der Zeit
MONITOR überwacht. Bei Überschreitung der Überwachungszeit wird ein Fehler gemeldet.
Die Zeit wird nach dem Empfang des Modbus/TCP-spezifischen Telegrammheaders
gestartet und nach beendetem Empfang des Anforderungstelegramms gestoppt.

ENQ_ENR
Betriebsart "CP ist Client":
Mit einer positiven Flanke wird der Datentransfer initiiert. Mit den Werten der
Eingangsparameter UNIT, DATA_TYPE, START_ADDRESS, LENGTH und WRITE_READ
wird das Anforderungstelegramm generiert. Ein neuer Auftrag kann nur gesendet werden,
wenn der vorherige mit DONE_NDR oder ERROR abgeschlossen wurde.
Betriebsart "CP ist Server":
Mit einem positiven Pegel am Eingang wird der FB aktiviert. Es können Telegramme vom
Client empfangen werden.
Bei einem nicht gesetzten Eingang ENQ_ENR und einer bestehenden Verbindung werden
die empfangenen Daten verworfen.

LICENSED
Ist dieser Ausgang auf TRUE gesetzt, ist der Modbus/TCP-Baustein auf dieser CPU
lizenziert. Hat der Ausgang den Zustand FALSE, wurde kein oder ein fehlerhafter
Lizenzstring eingetragen. Weitere Informationen entnehmen Sie bitte dem Kapitel
"Lizenzierung".

BUSY
Wenn dieser Ausgang gesetzt ist, ist AG_(L)SEND oder AG_(L)RECV aktiv.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


42 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein MODBUSCP
6.2 Parameter des Funktionsbausteins MODBUSCP

DONE_NDR
In der Betriebsart "CP ist Client" wurde der aktivierte Auftrag fehlerfrei beendet. Bei einer
lesenden Funktion wurden die Antwortdaten vom Server bereits im DB eingetragen, bei
einer schreibenden Funktion wurde vom Server die Antwort auf das Anforderungstelegramm
erhalten.
In der Betriebsart "CP ist Server" zeigt der Ausgang einen fehlerfrei beendeten
Telegrammverkehr mit dem Client an. In den Parametern UNIT, DATA_TYPE,
START_ADDRESS, LENGTH und WRITE_READ werden die Auftragsparameter des Client
angezeigt. Diese Ausgänge sind nur gültig so lange DONE_NDR gesetzt ist.

ERROR
Wenn dieser Ausgang gesetzt ist, wurde ein Fehler erkannt.
In der Betriebsart "CP ist Client" wurde der aktivierte Auftrag mit Fehler abgeschlossen. Die
zugehörige Fehlernummer wird im Ausgang STATUS angezeigt.
In der Betriebsart "CP ist Server" wurde bei einem Anforderungstelegramm des Client oder
beim Senden des Antworttelegramms ein Fehler erkannt. Die zugehörige Fehlernummer
wird im Ausgang STATUS angezeigt.

STATUS
Der Ausgang STATUS zeigt bei gesetztem ERROR die Fehlernummer an. Die
Fehlernummern sind im Kapitel "Diagnose (Seite 53)" beschrieben.
Weiterhin werden an diesem Ausgang Statusinformationen angezeigt.

STATUS_FUNC
An diesem Parameter wird als Character-String der Name der Funktion angezeigt, die den
aufgetretenen Fehler verursacht hat.

IDENT_CODE
Nach dem Anlauf der CPU wird an diesem Parameter eine 18-stellige Identifikationskennung
angezeigt, mit dem der Lizenzierungscode (Freischaltcode) für die Modbus/TCP-
Kommunikation beantragt wird.
Weitere Informationen entnehmen Sie bitte dem Kapitel "MODBUSCP-Lizenzierung
(Seite 33)".

Init_Error
Trat bei der Initialisierung ein Fehler auf, wird dies mit Init_Error = TRUE angezeigt.

Init_Status
Der Ausgang Init_Status zeigt bei gesetztem Init_Error die Fehlernummer an. Die
Fehlernummern sind im Kapitel "Diagnose" beschrieben.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 43
Funktionsbaustein MODBUSCP
6.2 Parameter des Funktionsbausteins MODBUSCP

UNIT
In der Funktion "CP ist Client" ist der Parameter UNIT ein Eingangsparameter. Dieser
Eingang ist den Anforderungen entsprechend zu setzen. Der FB übernimmt diesen Wert in
das Anforderungstelegramm und überprüft ihn beim Empfang der Antwort.
Der Parameter UNIT wird typischer Weise bei Protokollumsetzern verwendet um serielle
Slaves zu adressieren die sich hinter einer gemeinsamen IP-Adresse verbergen.
Die meisten Geräte können mit UNIT = 1 angesprochen werden.
In der Funktion "CP ist Server" ist der Parameter UNIT ein Ausgangsparameter. Der FB
übernimmt den Wert aus dem Anforderungstelegramm in die Antwort. Der Ausgang wird bei
beendetem Auftrag mit dem empfangenen Wert gesetzt.

DATA_TYPE
Der Parameter DATA_TYPE zeigt an, welcher Modbus/TCP-Datentyp mit dem aktuellen
Telegramm bearbeitet wird. Es sind folgende Werte zulässig:

Coils B#16#1
Inputs B#16#2
Holding Register B#16#3
Input Register B#16#4
In der Betriebsart "CP ist Client" handelt es sich um einen Eingangsparameter, in der
Betriebsart "CP ist Server" um einen Ausgangsparameter.
Die unterschiedlichen Datentypen haben einen direkten Zusammenhang mit den
verwendeten Funktionscodes.

Datentyp DATA_TYPE Funktion Länge single_write Funktionscode


Coils 1 lesen beliebig irrelevant 1
Coils 1 schreiben 1 TRUE 5
Coils 1 schreiben 1 FALSE 15
Coils 1 schreiben >1 irrelevant 15
Inputs 2 lesen beliebig irrelevant 2
Holding Register 3 lesen beliebig irrelevant 3
Holding Register 3 schreiben 1 TRUE 6
Holding Register 3 schreiben 1 FALSE 16
Holding Register 3 schreiben >1 irrelevant 16
Input Register 4 lesen beliebig irrelevant 4

START_ADDRESS
Der Parameter START_ADDRESS bestimmt die erste Modbus/TCP-Adresse, die
geschrieben bzw. gelesen wird.
In der Betriebsart "CP ist Client" handelt es sich um einen Eingangs-, in der Betriebsart "CP
ist Server" um einen Ausgangsparameter.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


44 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein MODBUSCP
6.3 Adressabbildung des Funktionsbausteins MODBUSCP

LENGTH
Der Parameter LENGTH bestimmt die Anzahl der Modbus/TCP-Werte, die geschrieben bzw.
gelesen wird.
In der Betriebsart "CP ist Client" handelt es sich um einen Eingangs-, in der Betriebsart "CP
ist Server" um einen Ausgangsparameter.
Bei lesenden Funktionen sind pro Telegramm für Holding und Input Register maximal 125
Register möglich. Für Coils und Inputs sind maximal 2000 Bits möglich. Bei schreibenden
Funktionen beträgt bei Holding Register die maximale Anzahl 123 Register und bei Coils
1968 Bits. Die mit einem Anforderungstelegramm bearbeiteten Register bzw. Bitwerte
müssen innerhalb eines DBs liegen.

WRITE_READ
Dieser Parameter definiert, ob eine lesende oder schreibende Funktion ausgeführt werden
soll. Hat der Ein-/Ausgang den Wert FALSE, handelt es sich um eine lesende Funktion. Der
Wert TRUE definiert eine schreibende Funktion.
Es können nur Holding Register und Coils beschrieben werden. Input Register und Inputs
lassen sich lediglich lesen.
In der Betriebsart "CP ist Client" handelt es sich um einen Eingangs-, in der Betriebsart "CP
ist Server" um einen Ausgangsparameter.

Init
Mit einer positiven Flanke am Parameter Init wird der Modbusbaustein initialisiert. Die
Initialisierung kann nur durchgeführt werden, wenn aktuell kein Auftrag läuft. Dies muss mit
ENQ_ENR = FALSE und BUSY = FALSE programmtechnisch sichergestellt werden.

6.3 Adressabbildung des Funktionsbausteins MODBUSCP

Interpretation der MODBUS/TCP-Adressen


Das Modbus/TCP-Datenmodell basiert auf einer Reihe von Speicherbereichen die
unterschiedliche Charakteristiken haben. Die Unterscheidung dieser Speicherbereiche
erfolgt bei einigen Systemen, z.B. MODICON PLCs über die Register- bzw. Bitadresse. So
wird z.B. das Holding Register mit Offset 0 als Register 40001 bezeichnet (Speichertyp
4xxxx, Reference 0001).
Es führt immer wieder zur Verwirrung, weil in manchen Handbüchern die Registeradresse
des Application Layers und in anderen die tatsächlich im Protokoll übertragene Register-
/Bitadresse beschrieben und gemeint ist.
Der FB MODBUSCP verwendet bei seinen Parametern start_x und START_ADDRESS die
tatsächlich übertragene Modbus/TCP-Adresse. Es können also mit jedem Funktionscode
Register-/Bitadressen von 0000H bis FFFFH übertragen werden.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 45
Funktionsbaustein MODBUSCP
6.3 Adressabbildung des Funktionsbausteins MODBUSCP

Beispiel: Parametrierung der Datenbereiche

Adressabbildung
Im folgenden Bild sehen Sie die Gegenüberstellung der SIMATIC-Speicherbereiche mit der
register- und bitorientierten Speicheraufteilung der Modbus/TCP-Geräte. Dabei wird auf
obige Parametrierung Bezug genommen.
Die Modbus/TCP-Adressen, die schwarz dargestellt sind, betreffen den Data Link Layer, die
grau dargestellten den Application Layer.
Die in der Spalte "Adresse" abgebildeten SIMATIC-Adressen sind die Offsets im DB.
Zusätzlich sind in der Spalte "Name" in eckigen Klammern die Modbus/TCP-
Registernummern eingetragen, z.B. Coils[640]

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


46 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein MODBUSCP
6.3 Adressabbildung des Funktionsbausteins MODBUSCP

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 47
Funktionsbaustein MODBUSCP
6.4 Daten und Standardfunktionen des Funktionsbausteins MODBUSCP

6.4 Daten und Standardfunktionen des Funktionsbausteins


MODBUSCP

Instanz-DB
Der Funktionsbaustein MODBUSCP speichert seine Daten in einem Instanz-DB. Dieser
Instanz-DB wird beim ersten Aufruf des FB durch STEP 7 generiert.
Der Instanz-Datenbaustein enthält Parameter vom Typ Input, Output, Input/Output sowie
statische Variablen, die er für seinen Ablauf benötigt. Diese Variablen sind remanent und
behalten zwischen den FB-Aufrufen ihre Gültigkeit. Über die Variablen wird der interne
Ablauf des FBs gesteuert.
Speicherbedarf des Instanz-DBs:

Instanz-DB Arbeitsspeicher Ladespeicher


MODBUSCP Ca. 2 kByte Ca. 3 kByte

Lokale Variablen
In Summe benötigt der Baustein MODBUSCP maximal 288 Byte an Lokaldaten.

Zeiten
Der Funktionsbaustein verwendet keine Timer

Merker
Der Funktionsbaustein verwendet keine Merker.

Standard-FCs zur Datenübertragung


Der im FB MODBUSCP aufgerufene FB MB_CPCLI bzw. MB_CPSRV verwendet die
Bausteine AG_SEND/AG_RECV (S7-300) bzw. AG_LSEND/AG_LRECV (S7-400) aus der
SIMATIC_NET-Bibliothek für die Datenübertragung zwischen der CPU und dem CP.
Die Bausteine MB_CPCLI und MB_CPSRV verwenden zusätzlich den Baustein AG_CNTRL.
Mit folgenden Versionen der FCs ist der FB MODBUSCP getestet und freigegeben:

S7-300: FC5 "AG_SEND" Version 4.2


FC6 "AG_RECV" Version 4.7
FC10 "AG_CNTRL" Version 1.4
S7-400: FC50 "AG_LSEND" Version 3.1
FC60 "AG_LRECV" Version 3.1
FC10 "AG_CNTRL" Version 1.0

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


48 Programmierhandbuch, 11/2017, A5E32489394-AC
Funktionsbaustein MODBUSCP
6.5 Bausteine umverdrahten

MODBUSCP – SFCs für sonstige Funktionen


Der FB MODBUSCP verwendet folgende SFCs aus der Standardbibliothek:
● SFB4 "TON"
● SFC20 "BLKMOV"
● SFC51 "RDSYST"
● SFC52 "WR_USMSG"

MB_CPCLI und MB_CPSRV – SFCs für sonstige Funktionen


Die FBs MB_CPCLI und MB_CPSRV verwenden folgende SFCs aus der Standardbibliothek:
● SFC20 "BLKMOV"
● SFC24 "TEST_DB"
● SFB4 "TON"

6.5 Bausteine umverdrahten


Falls in Ihrem Projekt die Nummern der Funktionen und Funktionsbausteine bereits
verwendet werden oder ist der Nummernbereich für andere Applikationen reserviert, können
Sie die intern aufgerufenen Funktionen FC5/FC50, FC6/FC60 oder FC10 umverdrahten. Der
Baustein MODBUSCP ist BlockPrivacy-geschützt. Dadurch können die intern aufgerufenen
Bausteine FB 906 MB_CPSRV und FB 908 MB_CPCLI nicht umverdrahtet werden.
Die Systemfunktionen SFC20, SFC24, SFC51 und SFC52 sowie der
Systemfunktionsbaustein SFB4 können nicht umbenannt/umverdrahtet werden.

Vorgehensweise
1. Holen Sie mittels "Extras > Referenzdaten > Anzeigen" Informationen über die
verwendeten Operanden ein.
2. Stellen Sie den Operandenvorrang in den Objekteigenschaften des Bausteinordners auf
"Absolutwert".
3. Rufen Sie im SIMATIC Manager die Funktion "Extras > Umverdrahten" auf, um die
Operanden in freie Bereiche umzuverdrahten.
4. Um die Symbolik in Diagnosetools weiter nutzen zu können, ziehen Sie die Änderungen
in der Symboltabelle nach.
5. Wenn Sie die Änderungen überprüfen wollen, wählen Sie "Extras > Referenzdaten >
Anzeigen".

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 49
Funktionsbaustein MODBUSCP
6.5 Bausteine umverdrahten

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


50 Programmierhandbuch, 11/2017, A5E32489394-AC
Additional Blocks 7
Für eine komfortable Projektierung der Modbus/TCP-Bausteine werden einige OpenSource-
Bausteine angeboten. Die Möglichkeit zum Download der Bausteine sowie eine detaillierte
Beschreibung finden Sie hier:
● FAQ Add-On-Bausteine für Modbus/TCP
(http://support.automation.siemens.com/WW/view/de/62830463)

7.1 Auftragsliste für zyklischen Telegrammverkehr

Funktionalität
Mit dem Auftragslistenbaustein "Job_List" besteht die Möglichkeit, mit wenig
Programmieraufwand mehrere Modbus/TCP-Telegramme nacheinander abzuarbeiten. Der
Baustein wird vor den Modbus/TCP-Baustein eingefügt und mit diesem verschaltet. Die
Anzahl der Telegramme ist defaultmäßig 5, sie kann jedoch beliebig erweitert werden. Über
den Eingang CYCLICAL wird die zyklische Bearbeitung der Liste gesteuert.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 51
Additional Blocks
7.2 Unterstützung in CFC

7.2 Unterstützung in CFC

Funktionalität
Um die Projektierung in CFC zu unterstützen, gibt es die Möglichkeit, die Modbuswerte nicht
über Global-DBs sondern über „Datensammler-FBs“ zu projektieren. Dabei werden die
Sende- und Empfangspuffer für die Werte per Drag & Drop in den CFC-Plan gezogen.

Beispiel
Die Datensammler-FBs werden im CFC-Plan platziert. Der Ausgang „IDB“ wird mit den db-
Parametern im Parameter-Datenbausteins verbunden.
Im weiteren Verlauf können die Modbuswerte direkt von den Channel-Bausteinen an den
Datensammler-FB verschaltet werden.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


52 Programmierhandbuch, 11/2017, A5E32489394-AC
Diagnose 8
Diagnosefunktionen
Die Diagnosefunktionen des CP erlauben Ihnen ein schnelles Lokalisieren aufgetretener
Fehler. Folgende Diagnosemöglichkeiten stehen zur Verfügung:
● Diagnose über die Anzeigeelemente des CPs
● Diagnose über den STATUS-Ausgang des Funktionsbausteins MODBUSCP

Anzeigeelemente
Anzeigeelemente sind die LEDs am CP. Die Anzeigeelemente informieren Sie über den
Betriebszustand bzw. über mögliche Fehlerzustände des CPs. Die Anzeigeelemente geben
Ihnen einen ersten Überblick über aufgetretene interne bzw. externe Fehler sowie
schnittstellenspezifische Fehler.

STATUS-Ausgang des FB MODBUSCP


Für eine Fehlerdiagnose besitzt der Funktionsbaustein MODBUSCP einen STATUS-
Ausgang. Durch Lesen des STATUS-Ausgangs erhalten Sie allgemeine Aussagen zu
Fehlern, die bei der Kommunikation aufgetreten sind. Den STATUS-Parameter können Sie
im Anwenderprogramm auswerten. Der Ausgang STATUS_FUNC gibt den Namen der
Funktion aus, die den Fehler verursacht.

8.1 Diagnose über die Anzeigeelemente der CPU


Über die Anzeigeelemente des CP erhalten Sie Auskunft über die Baugruppe. Zu
unterscheiden sind folgende Anzeigefunktionen:

Sammelstörungsanzeigen
INTF Interne Fehler
EXTF Externe Fehler

Sonderanzeigen
CP 343-1
RX/TX ein Telegramm wird über die Schnittstelle übertragen
CP 443-1
TXD ein Telegramm wird über die Schnittstelle gesendet
RXD ein Telegramm wird über die Schnittstelle empfangen

Eine Beschreibung der Anzeigeelemente finden Sie im jeweiligen Gerätehandbuch des CPs.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 53
Diagnose
8.2 Diagnosemeldungen des FB MODBUSCP

8.2 Diagnosemeldungen des FB MODBUSCP

Meldungen an den STATUS-Ausgängen des FBs


An den Status-Ausgängen des FBs MODBUSCP werden die Fehlermeldungen angezeigt.
● Der Ausgang STATUS gibt Fehlermeldungen und Statusinformationen während der
Bausteinbearbeitung aus.
● Der Ausgang STATUS_FUNC gibt den Namen der Funktion aus, die den Fehler
verursacht hat.
● Der Ausgang Init_Status gibt Fehlermeldungen und Statusinformationen während der
Initialisierung aus.
Nachfolgend finden Sie eine Aufstellung der FB-spezifischen Fehlermeldungen.

Fehlermeldungen der aufgerufenen SFCs und FBs


Die FBs MODBUSCP, MB_CPCLI und MB_CPSRV benutzen die Standardbausteine
SFC20, SFC24, SFC51 und SFC52 sowie AG_SEND/AG_LSEND und
AG_RECV/AG_LRECV. Die Fehlermeldungen dieser Bausteine werden unverändert an
STATUS weitergegeben.
Im Diagnosepuffer oder der Online-Hilfe zu den SFCs/FBs aus dem SIMATIC Manager
finden Sie weitere Hinweise zu diesen Fehlermeldungen.

Sta- Ereignistext Abhilfe


tus
(Hex)
A001 Der Parameter-DB MODBUS_PARAM_CP ist zu kurz. Korrigieren Sie die Länge
des DBs MODBUS_
PARAM_CP.
A002 Der Parameter end_x ist kleiner als start_x. Korrigieren Sie die Anga-
ben an start_x und end_x.
A003 Ein DB, auf den MODBUS-Adressen abgebildet werden sollen, Verlängern Sie den DB.
ist zu kurz. CP ist Client:
Minimallänge: Korrigieren Sie die Auf-
- bei Registern: tragsparameter START_
(end_x - start_x + 1 ) * 2 + 2 ADDRESS oder
- bei Bitwerten: LENGTH.
(end_x - start_x ) / 8 + 3 CP ist Server:
weitere mögliche Ursachen: Ändern Sie die Anforde-
• CP ist Client: falsche Aufrufparameter rung des Client.
• CP ist Server: falscher Adressbereich im Anforderungstele-
gramm des Clients. Der CP antwortet mit einem Exceptiontele-
gramm.
A004 Nur CP ist Client: Korrigieren Sie die Auf-
Es wurde eine unzulässige Kombination von DATA_TYPE und rufparameter. Es können
WRITE_READ angegeben. nur die Datentypen 1 und
3 geschrieben werden.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


54 Programmierhandbuch, 11/2017, A5E32489394-AC
Diagnose
8.2 Diagnosemeldungen des FB MODBUSCP

Sta- Ereignistext Abhilfe


tus
(Hex)
A005 CP ist Client: CP ist Client:
Es wurde ein unzulässiger Wert am Parameter LENGTH ange- Korrigieren Sie den Pa-
geben. rameter LENGTH.
CP ist Server: CP ist Server:
Die Register-/Bitanzahl im Anforderungstelegramm ist unzuläs- Verändern Sie im Anfor-
sig. Der CP antwortet mit einem Exceptiontelegramm. derungstelegramm die
Wertebereiche: Anzahl.
Coils/Inputs lesen 1 bis 2000
Coils schreiben 1 bis 1968
Register lesen 1 bis 125
Holding Register schreiben 1 bis 123
A006 Der über DATA_TYPE, START_ADDRESS und LENGTH ange- CP ist Client: Korrigieren
gebene Bereich existiert nicht in data_type_1 bis data_type_8. Sie die Parametrierungs-
CP ist Server: kombination
Der CP antwortet mit einem Exceptiontelegramm. DATA_TYPE, START_
ADDRESS und LENGTH.
CP ist Server: Ändern Sie
die Anforderung des Cli-
ent oder korrigieren Sie
die Parametrierung an
data_type_x.
A007 CP ist Client: Es wurde eine ungültige Überwachungszeit an Korrigieren Sie die Para-
MONITOR parametriert. Es muss ein Wert >= 20 ms eingetragen metrierung.
werden.
A008 Innerhalb der parametrierten Überwachungszeit MONITOR mel- Überprüfen Sie die Ein-
det der aktivierte AG_RECV keinen Empfang, z.B. Partner nicht stellungen und ggf. Feh-
bereit. lermeldungen des
Die Verbindung wird abgebaut und erneut aufgebaut. Koppelpartners. Überprü-
fen Sie, ob der Koppel-
partner evtl. einen
bestimmten UNIT-
Identifier benötigt.
A009 CP ist Client: Der empfangene Transaction Identifier TI ist un- Überprüfen Sie mit Hilfe
gleich dem gesendeten. einer Telegrammauf-
Die Verbindung wird abgebaut und erneut aufgebaut. zeichnung die Daten des
A00A CP ist Client: Die empfangene UNIT ist ungleich der gesendeten. Koppelpartners.
Die Verbindung wird abgebaut und erneut aufgebaut.
A00B CP ist Client: Der empfangene Funktionscode ist ungleich dem CP ist Client:
gesendeten. Überprüfen Sie mit Hilfe
CP ist Server: Es wurde ein ungültiger Funktionscode empfan- einer Telegrammauf-
gen. Der CP antwortet mit einem Exceptiontelegramm. zeichnung die Daten des
Koppelpartners.
CP ist Server:
Ändern Sie die Anforde-
rung des Client. Der FB
MODBUSCP bearbeitet
die Funktionscodes 1, 2,
3, 4, 5, 6, 15 und 16.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 55
Diagnose
8.2 Diagnosemeldungen des FB MODBUSCP

Sta- Ereignistext Abhilfe


tus
(Hex)
A00C Der empfangene Bytecount passt nicht zur Register- /Bitanzahl. Überprüfen Sie mit Hilfe
CP ist Server: Der CP sendet ein Exceptiontelegramm. einer Telegrammauf-
Die Verbindung wird abgebaut und erneut aufgebaut. zeichnung die Daten des
A00D Nur bei CP ist Client: Die Register-/Bitadresse oder Register- Koppelpartners.
/Bitanzahl im Antworttelegramm ist ungleich der im Anforde-
rungstelegramm.
A00E Die Längenangabe im modbusspezifischen Telegrammheader Überprüfen Sie mit Hilfe
passt nicht zu den Angaben des Bytecount im Telegramm oder einer Telegrammauf-
der Register-/Bitanzahl. Der FB verwirft die Daten. zeichnung die Daten des
Die Verbindung wird abgebaut und erneut aufgebaut. Koppelpartners
A00F Es wurde ein Protocol Identifier ungleich 0 empfangen.
Die Verbindung wird abgebaut und erneut aufgebaut.
A010 Bei den Parametern db_1 bis db_8 wurde eine DB-Nummer Korrigieren Sie die Para-
doppelt vergeben. metrierung an db_x.
A011 Am Eingangsparameter DATA_TYPE wurde ein unzulässiger Korrigieren Sie die Auf-
Wert angegeben (zulässige Werte sind 1, 2, 3 und 4). rufparameter.
A012 Parametrierte Bereiche data_type_1 und data_type_2 überlap- Korrigieren Sie die Para-
pen. metrierung.
A013 Parametrierte Bereiche data_type_1 und data_type_3 überlap- Die Datenbereiche dürfen
pen. keinen gemeinsamen
Registeradressbereich
A014 Parametrierte Bereiche data_type_1 und data_type_4 überlap- besitzen.
pen.
A015 Parametrierte Bereiche data_type_1 und data_type_5 überlap-
pen.
A016 Parametrierte Bereiche data_type_1 und data_type_6 überlap-
pen.
A017 Parametrierte Bereiche data_type_1 und data_type_7 überlap-
pen.
A018 Parametrierte Bereiche data_type_1 und data_type_8 überlap-
pen.
A019 Einer der Parameter db_x wurde auf 0 gesetzt, obwohl der zu- Korrigieren Sie die Para-
gehörige data_type_x mit > 0 parametriert ist. DB0 darf nicht metrierung an db_x auf
verwendet werden, weil dieser für das System reserviert ist. >0.
Wenn Sie einen Daten-
sammler-FB verwenden,
überprüfen Sie die Para-
metrierung in CFC.
A01A Falsche Länge im Header: Es sind 3 bis 253 Byte zulässig. Überprüfen Sie mit Hilfe
Die Verbindung wird abgebaut und erneut aufgebaut. einer Telegrammauf-
zeichnung die Daten des
Koppelpartners.
A01B CP ist Server und Funktionscode 5:
Es wurde ein ungültiger Zustand für Coil empfangen.
Es wird ein Exceptiontelegramm gesendet.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


56 Programmierhandbuch, 11/2017, A5E32489394-AC
Diagnose
8.2 Diagnosemeldungen des FB MODBUSCP

Sta- Ereignistext Abhilfe


tus
(Hex)
A01E Es wurden ungültige Daten empfangen die nicht zugeordnet Kontrollieren Sie die Feh-
werden konnten. lermeldung des Koppel-
Die Verbindung wird abgebaut und erneut aufgebaut. partners. Überprüfen Sie
ggf. die Daten mit einer
Telegrammaufzeichnung.
A01F Der FB MODBUSCP ist in einem unzulässigen Betriebszustand. Kontaktieren Sie den
Produkt Support.
A023 Parametrierte Bereiche data_type_2 und data_type_3 überlap- Korrigieren Sie die Para-
pen. metrierung.
A024 Parametrierte Bereiche data_type_2 und data_type_4 überlap- Die Datenbereiche dürfen
pen. keinen gemeinsamen
Registeradressbereich
A025 Parametrierte Bereiche data_type_2 und data_type_5 überlap- besitzen.
pen.
A026 Parametrierte Bereiche data_type_2 und data_type_6 überlap-
pen.
A027 Parametrierte Bereiche data_type_2 und data_type_7 überlap-
pen.
A028 Parametrierte Bereiche data_type_2 und data_type_8 überlap-
pen.
A034 Parametrierte Bereiche data_type_3 und data_type_4 überlap-
pen.
A035 Parametrierte Bereiche data_type_3 und data_type_5 überlap-
pen.
A036 Parametrierte Bereiche data_type_3 und data_type_6 überlap-
pen.
A037 Parametrierte Bereiche data_type_3 und data_type_7 überlap-
pen.
A038 Parametrierte Bereiche data_type_3 und data_type_8 überlap-
pen.
A045 Parametrierte Bereiche data_type_4 und data_type_5 überlap-
pen.
A046 Parametrierte Bereiche data_type_4 und data_type_6 überlap-
pen.
A047 Parametrierte Bereiche data_type_4 und data_type_7 überlap-
pen.
A048 Parametrierte Bereiche data_type_4 und data_type_8 überlap-
pen.
A056 Parametrierte Bereiche data_type_5 und data_type_6 überlap-
pen.
A057 Parametrierte Bereiche data_type_5 und data_type_7 überlap-
pen.
A058 Parametrierte Bereiche data_type_5 und data_type_8 überlap-
pen.
A067 Parametrierte Bereiche data_type_6 und data_type_7 überlap-
pen.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 57
Diagnose
8.2 Diagnosemeldungen des FB MODBUSCP

Sta- Ereignistext Abhilfe


tus
(Hex)
A068 Parametrierte Bereiche data_type_6 und data_type_8 überlap-
pen.
A078 Parametrierte Bereiche data_type_7 und data_type_8 überlap-
pen.
A079 Die am Parameter id angegebene Verbindungs-ID ist im Para- Korrigieren Sie die Para-
meter-DB MODBUS_PARAM_CP nicht enthalten. metrierung am Eingang
A07A Es wurde ein unzulässiger Wert am Parameter id angegeben id.
(Wertebereich von 1 bis 64).
A07B Die angegebene ID ist im Parameter-DB doppelt enthalten. Korrigieren Sie die Para-
A07C Am Parameter data_type_x wurde ein unzulässiger Wert ange- metrierung im DB
geben (Zulässige Werte sind 0 bis 4). MODBUS_PARAM_CP.

A07D Der Parameter data_type_1 enthält keinen Eintrag. Der Parame- Korrigieren Sie die Para-
terbereich "_1" ist der Initialbereich und muss parametriert wer- metrierung im DB
den. MODBUS_PARAM_CP.
A07E An db_x wurde die Nummer des Instanz-DBs vom Baustein
MODBUSCP angegeben.
A080 Der Modbusbaustein wurde noch nicht initialisiert. Nach dem Transferieren
des IDBs in die CPU
muss der Modbusbau-
stein mit Init = TRUE
initialisiert werden. Über-
prüfen Sie, ob bei der
Initialisierung ein Fehler
aufgetreten ist.
A081 Nur bei CP ist Client und Funktionscode 5: Überprüfen Sie mit Hilfe
Die Daten des Antworttelegramms sind nicht das Echo der An- einer Telegrammauf-
forderung. zeichnung die Daten des
Koppelpartners.
A082 Nur bei CP ist Client und Funktionscode 6: Überprüfen Sie mit Hilfe
Der empfangene Registerwert ist ungleich dem gesendeten. einer Telegrammauf-
zeichnung die Daten des
Koppelpartners.
A083 CP ist Client: Es ist ein Auftrag angestoßen worden, während Stoßen Sie erst dann
der vorherige Auftrag noch läuft. Der Auftrag wird nicht ausge- einen neuen Auftrag an,
führt. wenn der vorherige Auf-
Dies ist eine Statusinformation. Das Bit ERROR ist nicht gesetzt. trag mit DONE_ NDR =
TRUE oder ERROR =
Es wurde versucht, den Baustein zu initialisieren während noch
TRUE beendet wurde.
ein Auftrag läuft bzw. während ENQ_ENR gesetzt war.
Warten Sie mit der Initiali-
sierung bis kein Auftrag
mehr läuft. Setzen Sie
ENQ_ENR = FALSE.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


58 Programmierhandbuch, 11/2017, A5E32489394-AC
Diagnose
8.2 Diagnosemeldungen des FB MODBUSCP

Sta- Ereignistext Abhilfe


tus
(Hex)
A085 Aufgrund eines unerlaubten Schreibzugriffes ist ein interner Prüfen Sie, dass im S7-
Fehler bei der Lizenzprüfung aufgetreten. Programm keine uner-
laubten Schreib-Zugriffe
auf den Lizenz-DB vor-
handen sind. Die Struktur
des REG_KEYs darf nicht
verändert werden. Wen-
den Sie sich gegebenen-
falls an den Produkt
Support.
A086 Es wurde versucht in einen schreibgeschützten Datenbaustein Entfernen Sie den
zu schreiben. Schreibschutz oder ver-
wenden Sie einen ande-
ren DB.
A090 Der Baustein MODBUSCP ist für diese CPU noch nicht lizen- Lesen Sie die Identifikati-
ziert. onskennung für diese
Dies ist eine Statusinformation. Das Bit ERROR ist nicht gesetzt. CPU am Ausgang
Die MODBUS-Kommunikation läuft auch ohne Lizenz. IDENT_CODE aus und
fordern Sie damit den
Freischaltungscode an.
Siehe das Kapitel
"Lizenzierung (Seite 33)".
A091 Nur bei CP ist Client: Als Antwort wurde ein Exception Tele- Der Koppelpartner unter-
gramm mit Exception Code 1 empfangen. stützt die angeforderte
Funktion nicht.
A092 Nur bei CP ist Client: Als Antwort wurde ein Exception Tele- Korrigieren Sie LENGTH
gramm mit Exception Code 2 empfangen. bzw. START_ADDRESS
Es erfolgte ein Zugriff auf eine nicht vorhandene/nicht zulässige beim FB-Aufruf.
Adresse beim Koppelpartner.
A093 Nur bei CP ist Client: Als Antwort wurde ein Exception Tele- Der Koppelpartner kann
gramm mit Exception Code 3 empfangen. das empfangene Tele-
gramm nicht verarbeiten
(z.B. er unterstützt die
angeforderte Länge
nicht).
A094 Nur bei CP ist Client: Als Antwort wurde ein Exception Tele- Der Koppelpartner befin-
gramm mit Exception Code 4 empfangen. det sich in einem Zustand,
in dem er das empfange-
ne Telegramm nicht bear-
beiten kann.
A095 Nur bei CP ist Client: Als Antwort wurde ein Exception Tele- Kontrollieren Sie die Feh-
gramm mit einem unbekannten Exception Code empfangen. lermeldungen des Kop-
pelpartners und
überprüfen Sie ggf. die
Daten mit einer Tele-
grammaufzeichnung.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 59
Diagnose
8.3 Diagnosemeldungen von FC5/FC6 und FC50/FC60

8.3 Diagnosemeldungen von FC5/FC6 und FC50/FC60


Fehlermeldungen der eingebundenen Bausteine AG_SEND/AG_RECV (FC5/FC6) bzw.
AG_LSEND/AG_LRECV (FC50/FC60) am Ausgang STATUS.

STATUS Ereignistext Abhilfe


(Hex)
7xxx Bitte entnehmen Sie die detaillierte Siehe Online-Hilfe
Information der Online-Hilfe des "SIMATIC Manager > Baustein markieren
SIMATIC Manager. > Taste F1 > Ethernet > siehe auch > Aus-
werten der Anzeigen"
8xxx Bitte entnehmen Sie die detaillierte Siehe Online-Hilfe
Information der Online-Hilfe des "SIMATIC Manager > Baustein markieren
SIMATIC Manager. > Taste F1 > Ethernet > siehe auch > Aus-
werten der Anzeigen"

8.4 Diagnosemeldungen der verwendeten Bausteine


Fehlermeldungen der eingebundenen Bausteine BLKMOV (SFC20) , SFC51 (RDSYSST),
SFC52 (WR_USMSG) und AG_CNTRL am Ausgang STATUS.

STATUS Ereignistext Abhilfe


(Hex)
7xxx Bitte entnehmen Sie die detaillierte Information der Siehe Online-Hilfe (SIMATIC
Online-Hilfe des SIMATIC Manager. Manager -> Baustein markieren
-> Taste F1)
8xxx Bitte entnehmen Sie die detaillierte Information der Siehe Online-Hilfe (SIMATIC
Online-Hilfe des SIMATIC Manager. Manager -> Baustein markieren
-> Taste F1)

8.5 Diagnosemeldungen des SFC24


Fehlermeldungen des SFC24 am Ausgang STATUS.

STATUS Ereignistext Abhilfe


(Hex)
80A1 DB Nummer = 0 oder zu groß für die CPU Wählen Sie eine zulässige DB
Nummer.
80B1 Der DB existiert nicht auf der CPU Alle Datenbausteine, die an
db_x angegeben werden, müs-
sen angelegt und auf die CPU
übertragen werden.
80B2 DB UNLINKED DB nicht als UNLINKED gene-
rieren.

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


60 Programmierhandbuch, 11/2017, A5E32489394-AC
Applikationsbeispiele 9
Bei der Installation werden 2 Beispielprojekte unter \Program Files\Siemens\Step7\Examples
abgelegt:
● 1 Beispielprojekt in AWL "MB_TCP_CP" und
● 1 Beispielprojekt in CFC "MB_TCP_CP_CFC".

Hinweis
Bitte beachten Sie, dass die mitgelieferten Beispielprojekte nur eine Orientierungshilfe für
den Umgang mit den Modbus/TCP-Bausteinen darstellt und nicht für den Einsatz in
Produktivanlagen geeignet ist.

Die Programmbeispiele bestehen aus den Bausteinen:


● Anlauf-Baustein OB100 mit Setzen des Init-Bits
● Programmierfehler-OB121
● Zyklischer Betrieb OB1 bzw. OB35 mit Aufruf des FB MODBUSCP
● Globale Datenbausteine zum Auftragsanstoß (z.B. mit Hilfe einer Variablentabelle) und
für die Lizenzierung
● Datenbausteine für Register- und Bitwerte
In den folgenden Kapiteln ist die Verwendung des MODBUSCP FB in einem einfachen
Programmbeispiel dargestellt.

9.1 Beispielprojekt in AWL


In dem Beispielprojekt in AWL wurden für alle Funktionsvarianten SIMATIC-Stationen
angelegt.
● SIMATIC-Station ist S7-300 und S7-400
● SIMATIC-Station ist Client oder Server

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 61
Applikationsbeispiele
9.1 Beispielprojekt in AWL

Verwendete Bausteine
Die aufgelisteten Bausteine werden im mitgelieferten Beispielprojekt für S7-Stationen mit FB
MODBUSCP verwendet.

Baustein Symbol Kommentar


OB 1 CYCL_EXC Zyklische Programmbearbeitung
OB 100 COMPLETE RESTART Anlauf-OB für Neustart
OB 121 PROG_ERR Programmierfehler-OB
FB 905 MODBUSCP Anwenderbaustein FB MODBUSCP
FB 906 MB_CPSRV intern aufgerufener FB MB_CPSRV
FB 908 MB_CPCLI intern aufgerufener FB MB_CPCLI
DB 1 CONTROL_DAT Arbeits-DB CONTROL DAT für FB MODBUSCP
DB 2 MODBUS_PARAM_CP_DB2 Parameter-DB für FB MODBUSCP
DB 3 LICENSE_DB Lizenz-DB für FB MODBUSCP
DB 11 DATA_AREA_1 Werte-DB für Bereich 1
DB 12 DATA_AREA_2 Werte-DB für Bereich 2
DB 13 DATA_AREA_3 Werte-DB für Bereich 3
DB 14 DATA_AREA_5 Werte DB für Bereich 5
DB 15 DATA_AREA_6 Werte-DB für Bereich 6
DB 16 DATA_AREA_7 Werte-DB für Bereich 7
DB 905 IDB_MODBUS Instanz-DB für FB MODBUSCP

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


62 Programmierhandbuch, 11/2017, A5E32489394-AC
Applikationsbeispiele
9.2 Beispielprojekt in CFC

9.2 Beispielprojekt in CFC


Das Beispielprojekt wurde mit CFC V8.0 Update 1 erstellt. In dem Beispielprojekt in CFC
wurden für die Varianten SIMATIC S7-400-Station ist Client oder Server angelegt.

Verwendete Bausteine
Die aufgelisteten Bausteine werden im mitgelieferten Beispielprojekt für S7-Stationen mit FB
MODBUSCP verwendet. Die Systemfunktionen und Systemfunktionsbausteine und die von
CFC generierten Bausteine sind nicht aufgelistet.

Baustein Symbol Kommentar


OB 35 CYC_INT5 Zyklische Programmbearbeitung
OB 100 COMPLETE RESTART Anlauf-OB für Neustart
OB 121 PROG_ERR Programmierfehler-OB
FB 8 R_TRIG Erkennung einer positiven Flanke
FB 24 CTU Aufwärtszähler
FB 99 Save_STATUS Speicherung des Fehlers
FB 905 MODBUSCP Anwenderbaustein FB MODBUSCP
FB 906 MB_CPSRV intern aufgerufener FB MB_CPSRV
FB 908 MB_CPCLI intern aufgerufener FB MB_CPCLI
FC100 AG_CNTRL FC zum Verbindungsauf- und -abbau
FC 500 AG_LSEND FC zum Senden von Daten
FC 600 AG_LRECV FC zum Empfangen von Daten
DB 1 MEMORY_DB DB für Laufzeitparameter (nur wenn S7 Server ist)
DB 2 MODBUS_PARAM_CP_DB2 Parameter-DB für FB MODBUSCP
DB 3 LICENSE_DB Lizenz-DB für FB MODBUSCP
DB 11 DATA_AREA_1 Werte-DB für Bereich 1
DB 12 DATA_AREA_2 Werte-DB für Bereich 2
DB 13 DATA_AREA_3 Werte-DB für Bereich 3
DB 14 DATA_AREA_5 Werte-DB für Bereich 5
DB 15 DATA_AREA_6 Werte-DB für Bereich 6
DB 16 DATA_AREA_7 Werte-DB für Bereich 7

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 63
Applikationsbeispiele
9.2 Beispielprojekt in CFC

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


64 Programmierhandbuch, 11/2017, A5E32489394-AC
Literatur A
The MODBUS Organization
MODBUS APPLICATION PROTOCOL SPECIFICATION
V1.1b, December 28, 2006
Modbus Homepage (http://www.modbus.org)

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


Programmierhandbuch, 11/2017, A5E32489394-AC 65
Literatur

SIMATIC Modbus/TCP-Kommunikation über CP 343-1 und CP 443-1


66 Programmierhandbuch, 11/2017, A5E32489394-AC

Das könnte Ihnen auch gefallen