Anwendungsbeispiel y 09/2015 Modbus/TCP-Kommunikation · 2015. 10. 7. · 2 Lösung...
Transcript of Anwendungsbeispiel y 09/2015 Modbus/TCP-Kommunikation · 2015. 10. 7. · 2 Lösung...
https://support.industry.siemens.com/cs/ww/de/view/109479369
Anwendungsbeispiel 09/2015
Modbus/TCP-KommunikationS7-300 / S7-400 CPU, ET 200S CPU und STEP 7 V5.5
Gewährleistung und Haftung
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 2
Siem
ens
AG20
15Al
lrig
hts
rese
rved
Gewährleistung und HaftungHinweis Die Anwendungsbeispiele sind unverbindlich und erheben keinen Anspruch auf
Vollständigkeit hinsichtlich Konfiguration und Ausstattung sowie jeglicherEventualitäten. Die Anwendungsbeispiele stellen keine kundenspezifischenLösungen dar, sondern sollen lediglich Hilfestellung bieten bei typischenAufgabenstellungen. Sie sind für den sachgemäßen Betrieb der beschriebenenProdukte selbst verantwortlich. Diese Anwendungsbeispiele entheben Sie nichtder Verpflichtung zu sicherem Umgang bei Anwendung, Installation, Betrieb undWartung. Durch Nutzung dieser Anwendungsbeispiele erkennen Sie an, dass wirüber die beschriebene Haftungsregelung hinaus nicht für etwaige Schädenhaftbar gemacht werden können. Wir behalten uns das Recht vor, Änderungenan diesen Anwendungsbeispiele jederzeit ohne Ankündigung durchzuführen. BeiAbweichungen zwischen den Vorschlägen in diesem Anwendungsbeispiel undanderen Siemens Publikationen, wie z. B. Katalogen, hat der Inhalt der anderenDokumentation Vorrang.
Für die in diesem Dokument enthaltenen Informationen übernehmen wir keineGewähr.Unsere Haftung, gleich aus welchem Rechtsgrund, für durch die Verwendung derin diesem Applikationsbeispiel beschriebenen Beispiele, Hinweise, Programme,Projektierungs- und Leistungsdaten usw. verursachte Schäden ist ausgeschlossen,soweit nicht z. B. nach dem Produkthaftungsgesetz in Fällen des Vorsatzes, dergroben Fahrlässigkeit, wegen der Verletzung des Lebens, des Körpers oder derGesundheit, wegen einer Übernahme der Garantie für die Beschaffenheit einerSache, wegen des arglistigen Verschweigens eines Mangels oder wegenVerletzung wesentlicher Vertragspflichten zwingend gehaftet wird. Der Schadens-ersatz wegen Verletzung wesentlicher Vertragspflichten ist jedoch auf denvertragstypischen, vorhersehbaren Schaden begrenzt, soweit nicht Vorsatz odergrobe Fahrlässigkeit vorliegt oder wegen der Verletzung des Lebens, des Körpersoder der Gesundheit zwingend gehaftet wird. Eine Änderung der Beweislast zuIhrem Nachteil ist hiermit nicht verbunden.Weitergabe oder Vervielfältigung dieser Anwendungsbeispiele oder Auszügedaraus sind nicht gestattet, soweit nicht ausdrücklich von der Siemens AGzugestanden.
Security-hinweise
Siemens bietet Produkte und Lösungen mit Industrial Security-Funktionen an,die den sicheren Betrieb von Anlagen, Lösungen, Maschinen, Geräten und/oderNetzwerken unterstützen. Sie sind wichtige Komponenten in einemganzheitlichen Industrial Security-Konzept. Die Produkte und Lösungen vonSiemens werden unter diesem Gesichtspunkt ständig weiterentwickelt. Siemensempfiehlt, sich unbedingt regelmäßig über Produkt-Updates zu informieren.
Für den sicheren Betrieb von Produkten und Lösungen von Siemens ist eserforderlich, geeignete Schutzmaßnahmen (z. B. Zellenschutzkonzept) zuergreifen und jede Komponente in ein ganzheitliches Industrial Security-Konzeptzu integrieren, das dem aktuellen Stand der Technik entspricht. Dabei sind aucheingesetzte Produkte von anderen Herstellern zu berücksichtigen.Weitergehende Informationen über Industrial Security finden Sie unterhttp://www.siemens.com/industrialsecurity.
Um stets über Produkt-Updates informiert zu sein, melden Sie sich für unserenproduktspezifischen Newsletter an. Weitere Informationen hierzu finden Sieunter http://support.industry.siemens.com.
Inhaltsverzeichnis
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 3
Siem
ens
AG20
15Al
lrig
hts
rese
rved
InhaltsverzeichnisGewährleistung und Haftung ...................................................................................... 2
1 Aufgabe............................................................................................................... 4
2 Lösung ................................................................................................................ 5
2.1 Übersicht .............................................................................................. 52.2 Hard- und Software-Komponenten ...................................................... 62.2.1 Gültigkeit............................................................................................... 62.2.2 Verwendete Komponenten ................................................................... 6
3 Beschreibung des Modbus/TCP-Protokolls.................................................... 8
4 Funktionsweise .................................................................................................. 9
4.1 Funktionen ............................................................................................ 94.2 Verwendete Bausteine ......................................................................... 94.3 OB100 ................................................................................................ 124.4 FC1 „MODBUS_COMMUNICATION“ ................................................ 124.5 FC2 „DEVICE_HANDLING“ ............................................................... 12
5 Ändern der Anzahl der Modbus-Geräte ......................................................... 14
5.1 Bausteinänderungen .......................................................................... 14
6 Historie.............................................................................................................. 18
1 Aufgabe
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 4
Siem
ens
AG20
15Al
lrig
hts
rese
rved
1 AufgabeEinleitung
Es sollen Daten zwischen einer PN-CPU und mehreren Kommunikationspartnernausgetauscht werden. Dafür steht der CPU eine begrenzte Anzahl anVerbindungsressourcen zur Verfügung.Wenn die Anzahl an Modbus/TCP-Kommunikationspartnern die Anzahl anverfügbaren Verbindungsressourcen übersteigt, ist die gleichzeitigeKommunikation mit allen Partnern nicht möglich.
Beschreibung der AutomatisierungsaufgabeEs soll nur eine Verbindungsressource der PN-CPU verwenden werden, um Datenaus mehreren Kommunikationspartnern über Modbus/TCP auszulesen.In diesem Beispiel kommuniziert die PN-CPU über eine Verbindungsressource mit3 Modbus-Geräten.
2 Lösung
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 5
Siem
ens
AG20
15Al
lrig
hts
rese
rved
2 Lösung2.1 Übersicht
SchemaDie folgende Abbildung zeigt schematisch die wichtigsten Komponenten derLösung:Abbildung 2-1
Modbus-Server1
PN
L+ M
Industrial Ethernet
Modbus-Server2
PN
L+ M
Modbus-Server3
PN
L+ M
CPU 314C-2 PN/DPModbus-Client
BeschreibungFür die Realisierung des Datenaustausches agiert die PN-CPU als Modbus-Clientund die 3 Kommunikationspartner agieren als Modbus-Server. Die PN-CPU bautals Modbus-Client nacheinander die Verbindungen zu den Modbus-Geräten aufund liest Daten aus:1. Die PN-CPU baut die Verbindung zum ersten Modbus-Gerät auf. Wenn die
Verbindung erfolgreich aufgebaut ist, werden die Daten aus diesem Gerätgelesen und in einen Datenbaustein (DB) geschrieben. Anschließend wird dieVerbindung wieder abgebaut, so dass sie zum zweiten Modbus-Gerätaufgebaut werden kann.
2. Die PN-CPU baut die Verbindung zum zweiten Modbus-Gerät auf. Wenn dieVerbindung erfolgreich aufgebaut ist, werden die Daten aus diesem Gerätgelesen und in einen Datenbaustein (DB) geschrieben. Anschließend wird dieVerbindung wieder abgebaut, so dass sie zum dritten Modbus-Gerät aufgebautwerden kann.
3. Die PN-CPU baut die Verbindung zum dritten Modbus-Gerät auf. Wenn dieVerbindung erfolgreich aufgebaut ist, werden die Daten aus diesem Gerätgelesen und in einen Datenbaustein (DB) geschrieben. Anschließend wird dieVerbindung wieder abgebaut, so dass sie wieder zum ersten Modbus-Gerätaufgebaut werden kann.
2 Lösung
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 6
Siem
ens
AG20
15Al
lrig
hts
rese
rved
Vorteile Es wird nur eine Verbindungsressource in der PN-CPU verwendet. Die PN-CPU kann mit mehr Modbus-Geräten kommunizieren als
Verbindungsressourcen zur Verfügung stehen.
AbgrenzungDieses Anwendungsbeispiel soll als Hilfestellung bei der Verwendung der Software„SIMATIC Modbus/TCP PN-CPU“ (Artikelnummer 2XV9450-1MB02) dienen.Weitere Informationen zu Modbus/TCP im SIMATIC-Umfeld finden Sie unter:SIMATIC Modbus/TCPDa das Anwendungsbeispiel als Hilfestellung für komplexereKommunikationsanwendungen gedacht ist, wird hier nicht auf die Parametrierungeiner Modbus/TCP-Verbindung eingegangen.Die Parametrierung einer Modbus/TCP-Verbindung ist im Handbuch der Software„SIMATIC Modbus/TCP PN-CPU“ beschrieben.
2.2 Hard- und Software-Komponenten
2.2.1 Gültigkeit
Diese Applikation ist gültig für STEP 7 V5.5 S7-300 / S7-400 PN-CPUs ET 200S PN-CPU
2.2.2 Verwendete Komponenten
Die Applikation wurde mit den nachfolgenden Komponenten erstellt:
Hardware-KomponentenTabelle 2-1
Komponente Anz. Artikelnummer Hinweis
PS 307 10A 1 6ES7307-1KA00-0AA0CPU 314C-2 PN/DP 1 6ES7314-6EH04-0AB0 Alternativ können auch
andere PN-CPUs der S7-300,S7-400 und ET 200Sverwendet werden
Software-KomponentenTabelle 2-2
Komponente Anz. Artikelnummer Hinweis
STEP 7 V5.5 1 6ES7810-4CC10-0YE5SIMATICModbus/TCPPN-CPU V2.6.1
1 2XV9450-1MB02 Unter folgendem Linkkönnen Sie die Baustein-Bibliothek sowie dieHandbücher herunterladen:Beitrags-ID: 103473853
2 Lösung
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 7
Siem
ens
AG20
15Al
lrig
hts
rese
rved
Komponente Anz. Artikelnummer Hinweis
Modbus TCPWizard V1.4
1 Optional: Empfohlen für dieProjektierung desParameterdatenbausteinsDownload:Beitrags-ID: 31535566
Beispieldateien und ProjekteDie folgende Liste enthält alle Dateien und Projekte, die in diesem Beispielverwendet werden.
Tabelle 2-3
Komponente Hinweis
109479369_ModbusTCP_Communication_v10.zip Diese gepackte Dateienthält das STEP 7Projekt.
109479369_ModbusTCP_Communication_v10_d.pdf Dieses Dokument.
3 Beschreibung des Modbus/TCP-Protokolls
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 8
Siem
ens
AG20
15Al
lrig
hts
rese
rved
3 Beschreibung des Modbus/TCP-ProtokollsÜbersicht
Modbus/TCP ist ein Kommunikationsprotokoll, das auf der Client/Server-Architektur basiert. Eine genaue Protokollbeschreibung können Sie der Modbus-Spezifikation entnehmen, die sie unter http://www.modbus.org herunterladenkönnen.
KommunikationsablaufDie Modbus/TCP-Kommunikation läuft nach folgendem Schema ab:1. Der Modbus-Client schickt ein Anforderungstelegramm an einen Modbus-
Server.2. Der Modbus-Server antwortet mit einem Antworttelegramm, das die
angeforderten Daten enthält oder den Empfang des Anforderungstelegrammsquittiert.
4 Funktionsweise
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 9
Siem
ens
AG20
15Al
lrig
hts
rese
rved
4 FunktionsweiseFür die Kommunikation mit 3 Modbus-Geräten wird nur einParameterdatenbaustein benötigt, der die Parametrierung für das erste Modbus-Gerät enthält.Das Ändern der IP-Adressen, für die Kommunikation mit den anderen Modbus-Geräten, wird zur Laufzeit durch das Programm realisiert.Zur komfortablen Erstellung des Parameter-DB wird der Modbus/TCP Wizardverwendet.
4.1 Funktionen
Das S7-Programm realisiert die folgenden Funktionen: Initialisierung des MODBUSPN-Bausteins Auf- und Abbau der Verbindungen zu den Modbus-Geräten Auslesen der Daten aus den Geräten und Speichern in Datenbausteine Fehlerauswertung
4.2 Verwendete Bausteine
Die folgende Tabelle zeigt die Bausteine, die in diesem Anwendungsbeispielverwendet werden.Tabelle 4-1
Baustein Symbolischer Name Funktion
OBsOB1 CYCL_EXC Zyklische Programmbearbeitung,
Aufruf des FC1OB100 COMPLETE_RESTART Anlauf-OB für Neustart
Initialisierung des Modbus-Bausteins
Festlegen der IP-Adressen derModbus-Geräte
OB121 PROG_ERR Programmierfehler-OBFBsFB63 TSEND Kommunikationsbausteine aus der
Bibliothek „Standard Library >Communication Blocks“FB64 TRCV
FB65 TCONFB66 TDISCONFB102 MODBUSPN Bausteine für die Modbus-
Kommunikation aus der Bibliothek„Modbus_PN_CPU“FB103 TCP_COMM
FB104 MOD_CLIFB105 MOD_SERVFCsFC1 MODBUS_COMMUNICATION Aufruf des Modbus-Bausteins
(FB102) Aufruf der Auswertung (FC2)
4 Funktionsweise
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 10
Siem
ens
AG20
15Al
lrig
hts
rese
rved
Baustein Symbolischer Name Funktion
FC2 DEVICE_HANDLING Speichern der ausgelesenen Datenin den DB
Prüfung und Fehlerbehandlung Einstellen der IP-Adresse für das
nächste GerätDBsDB2 MODBUS_PARAM Parametrierung für die KommunikationDB3 LICENSE_DB LizenzschlüsselDB4 CONTROL_STATUS Daten zur Steuerung der KommunikationDB5 DEVICE_STATUS Anzeigen der Modbus-GeräteDB11 DATA_AREA Empfangspuffer für die Modbus-DatenDB21 DATA_DEVICE_1 Daten des ersten Modbus-GerätesDB22 DATA_DEVICE_2 Daten des zweiten Modbus-GerätesDB23 DATA_DEVICE_3 Daten des dritten Modbus-GerätesDB102 IDB_MODBUSPN Instanz-Datenbaustein des FB102
„MODBUSPN“
4 Funktionsweise
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 11
Siem
ens
AG20
15Al
lrig
hts
rese
rved
Abbildung 4-1
FC1MODBUS
PN(FB102)
MOD_SERV
(FB105)
TCP-COMM(FB103)
MOD_CLI
(FB104)
OB1
TSEND(FB63)
TRCV(FB64)
TCON(FB65)
TDISCON
(FB66)MODBUS_PARAM
(DB2)
LICENSE_DB (DB3)
DATA_AREA(DB11)
IDB_MODBUSPN DB102
DEVICE_HANDLING (FC2)
DATA_DEVICE_1
(DB21)
DATA_DEVICE_2
(DB22)
DATA_DEVICE_3
(DB23)
Anwenderprogramm Bibliotheksbausteine Systembausteine
4 Funktionsweise
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 12
Siem
ens
AG20
15Al
lrig
hts
rese
rved
4.3 OB100
FunktionDer OB100 wird beim Neustart der CPU aufgerufen.Die IP-Adressen der 3 Modbus-Geräte werden im DatenbausteinDEVICE_STATUS (DB5) gespeichert. Anschließend wird der Modbus-BausteinFB102 „MODBUSPN“ initialisiert. Bei fehlerfreier Initialisierung wird der Abrufzyklusgestartet. Ist die Initialisierung fehlerhaft, wird der STATUS gespeichert und keinAbrufzyklus gestartet.
4.4 FC1 „MODBUS_COMMUNICATION“
Der FC1 wird im OB1 aufgerufen. In diesem FC erfolgt der Aufruf des Modbus-Bausteins FB102 „MODBUSPN“ für die zyklische Telegrammbearbeitung.Anschließend wird die Auswertung mit Hilfe des FC2 „DEVICE_HANDLING“ausgeführt.
4.5 FC2 „DEVICE_HANDLING“
Parameter BeschreibungAn den FC2 werden jeweils die Adressen der Parameter übergeben. Die Wertewerden als Pointer angegeben.Tabelle 4-2
Parameter Datentyp Beschreibung
STATUS_FUNC ANY Variable „STATUS_FUNC“ vom DatentypString[8] ab Adresse 18.0 im DB4„CONTROL_STATUS“
DEVICE_START_ADR Pointer Array des Modbus-Gerätes im DB5„DEVICE_STATUS“
DEVICE_STAT_FUNC ANY Adresse der Variable „STATUS_FUNC“ vomDatentyp String[8] im DB5“DEVICE_STATUS”
NEXT_DEVICE_IP ANY Adresse der Variable “IP_address” vomDatentyp ARRAY[1..6] of Byte im DB5“DEVICE_STATUS”
REM_STADDR ANY Adresse der Variable “rem_staddr” im DB2“MODBUS_PARAM”
DATA_AREA ANY Adresse des Empfangs-DBs DB11“DATA_AREA“
DATA_DEVICE ANY Adresse des Datenbausteins DB2x„DATA_DEVICE_x“
4 Funktionsweise
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 13
Siem
ens
AG20
15Al
lrig
hts
rese
rved
FunktionDer FC „DEVICE_HANDLING“ verarbeitet die Daten des verbundenen Modbus-Gerätes.Bei einem fehlerfreien Auftrag werden die empfangenen Daten in denentsprechenden Datenbaustein DB2x „DATA_DEVICE_X“ kopiert.Falls bei der Kommunikation ein Fehler aufgetreten ist, wird die Fehlerinformationim Array des jeweiligen Gerätes im DB5 „DEVICE_STATUS“ gespeichert.Anschließend werden die Parameter für das Gerät, das als nächstes ausgelesenwerden soll, festgelegt und ein neuer Auftrag angestoßen.
5 Ändern der Anzahl der Modbus-Geräte
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 14
Siem
ens
AG20
15Al
lrig
hts
rese
rved
5 Ändern der Anzahl der Modbus-GeräteDas S7-Progeamm wurde für die Kommunikation mit 3 Modbus-Geräten erstellt.Sie können jedoch die Anzahl der Modbus-Geräte gemäß ihrer Anforderungenanpassen.Führen Sie dazu die im Kapitel beschriebene Anleitung aus.
5.1 Bausteinänderungen
DB4 „CONTROL_STATUS“Der DB4 „CONTROL_STATUS“ enthält die Daten zur Steuerung der Modbus-Kommunikation.Passen Sie die Anzahl der Modbus-Geräte im Parameter „Count_of_Devices“ an.Abbildung 5-1
5 Ändern der Anzahl der Modbus-Geräte
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 15
Siem
ens
AG20
15Al
lrig
hts
rese
rved
DB5 „DEVICE_STATUS“Der DB5 „DEVICE_STATUS“ enthält ein Array mit je einer Datenstruktur proModbus-Gerät. Die Größe des Arrays muss der Anzahl der Modbus-Geräteentsprechen.Passen Sie die Größe des Arrays entsprechend dem Parameter„Count_of_Devices“ an.Abbildung 5-2
DBx „DATA_DEVICE_x“Für jedes Gerät muss ein separater Modbus-Datenbaustein vorhanden sein, indem die empfangenen Daten abgelegt werden. Legen Sie für jedes weitere Geräteinen eigenen Datenbaustein an.Abbildung 5-3
5 Ändern der Anzahl der Modbus-Geräte
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 16
Siem
ens
AG20
15Al
lrig
hts
rese
rved
OB100Im OB100 werden die IP-Adressen der Modbus-Geräte im Datenbaustein DB5„DEVICE_STATUS“ gespeichert.Kopieren Sie den markierten Bereich und fügen Sie ihn je Gerät, das zusätzlichangeschlossen ist, in den OB ein.Abbildung 5-4
FC1 „MODBUS_COMMUNICATION“Der FC1 „MODBUS_COMMUNICATION“ enthält eine Sprungleiste für den Aufrufdes FC2 „DEVICE_HANDLING“. Für jedes Modbus-Gerät ist ein Aufruf des FC2„DEVICE_HANDLING“ notwendig, an den die gerätespezifischen Daten übergebenwerden.Erweitern Sie die Sprungleiste um die Anzahl der zusätzlichen Geräte.
5 Ändern der Anzahl der Modbus-Geräte
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 17
Siem
ens
AG20
15Al
lrig
hts
rese
rved
Abbildung 5-5
Hinweis Der Parameter „Current_Device_Number“ wird fortlaufend hochgezählt. Ausdiesem Grund müssen die Modbus-Geräte auch eine fortlaufende Nummeraufweisen.
Kopieren Sie ein Netzwerk, in dem der FC2 „DEVICE_HANDLING“ aufgerufenwird, und passen Sie die Übergabeparameter entsprechend an.
6 Historie
Modbus/TCP-KommunikationBeitrags-ID: 109479369, V1.0, 09/2015 18
Siem
ens
AG20
15Al
lrig
hts
rese
rved
Abbildung 5-6
6 HistorieTabelle 6-1
Version Datum Änderung
V1.0 09/2015 Erste Ausgabe