Sie sind auf Seite 1von 274

 Programmbausteine für SIMATIC NET ___________________

Vorwort

Übersichten und
S7-CPs ___________________
Allgemeines zur Hantierung 1
Programmbausteine für
___________________
Industrial Ethernet 2
SIMATIC NET Programmbausteine für
___________________
PROFINET 3

Programmbausteine für SIMATIC ___________________


Programmbausteine für
PROFIBUS 4
NET S7-CPs
___________________
Programmbausteine für
PROFIBUS FMS 5
Programmierhandbuch
___________________
Dokument-Historie A

___________________
Literaturverzeichnis B

09/2011
C79000-G8900-C229-04
Rechtliche Hinweise
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
mit Warndreieck bedeutet, dass eine leichte Körperverletzung eintreten kann, wenn die entsprechenden
Vorsichtsmaßnahmen nicht getroffen werden.

VORSICHT
ohne Warndreieck bedeutet, dass Sachschaden eintreten kann, wenn die entsprechenden
Vorsichtsmaßnahmen nicht getroffen werden.

ACHTUNG
bedeutet, dass ein unerwünschtes Ergebnis oder Zustand eintreten kann, wenn der entsprechende Hinweis
nicht beachtet wird.
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 C79000-G8900-C229-04 Copyright © Siemens AG


Industry Sector Ⓟ 10/2011 2008...2011.
Postfach 48 48 Änderungen vorbehalten
90026 NÜRNBERG
DEUTSCHLAND
Vorwort

Allgemeine Informationen zu diesem Handbuch

Zielgruppe und Motivation


Als Schnittstelle zu den Kommunikationsdiensten stehen für Ihr Anwenderprogramm
vorgefertigte Programmbausteine (FCs und FBs) zur Verfügung. Das vorliegende Handbuch
gibt Ihnen eine vollständige Beschreibung der Programmbausteine für SIMATIC NET S7-
CPs an die Hand. Es ergänzt die Beschreibungen in der Online-Hilfe der
Projektierwerkzeuge für STEP 7.
Das Handbuch wendet sich an Programmierer von STEP 7-Programmen und an Service-
Personal.

Aufbau des Handbuchs


Das Handbuch ist anhand der Netztypen und Kommunikationsdienste untergliedert.
Jeder Programmbaustein wird in folgenden Abschnitten beschrieben:
● Bedeutung
● Aufrufschnittstelle
● Arbeitsweise
● Erläuterung der Formalparameter
● Anzeigen
Diese Abschnitte können durch weitere spezifische Informationen ergänzt sein.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 3
Vorwort

Gültigkeitsbereich des Handbuchs


Der vorliegende Ausgabestand des Handbuchs ist gültig mit folgenden Ausgabeständen der
Projektiersoftware STEP 7:
● STEP 7 V5.5
● STEP 7 Professional V11.0

Hinweis
STEP 7 - synonyme Bezeichnung
Die Bezeichnung STEP 7 wird nachfolgend in diesem Handbuch synonym verwendet für
die Bezeichnungen STEP 7 V5.5 oder STEP 7 Professional

ACHTUNG
CP-Typen und Kommunikationsdienste
Beachten Sie, dass die Programmbausteine jeweils bestimmte Kommunikationsdienste
unterstützen. Die Verwendung ist daher an den Einsatz der CP-Typen gebunden, die
den jeweiligen Kommunikationsdienst unterstützen.

Bezeichnung "Programmbaustein"
Die Bezeichnung "Programmbaustein" wird im Handbuch als synonymer Oberbegriff für
folgende Begriffe verwendet:
● FC (Funktion) / FB (Funktionsbaustein)
Bei STEP 7 V5.5 verwendete Bezeichnungen, die den speziellen Typ des
Programmbausteines berücksichtigen. Bei STEP 7 Professional bestehen diese
Bausteintypen unverändert weiter, in den Bibliotheken werden jedoch nur die
symbolischen Namen angezeigt.
● Anweisung
Bei STEP 7 Professional verwendete Bezeichnung für systeminterne
Programmbausteine.

ACHTUNG
Lieferumfang STEP 7 / STEP 7 Professional
Die Lieferumfänge in den Bibliotheken von STEP 7 V5.5 und STEP 7 Professional
können voneinander abweichen.
Die in diesem Handbuch gezeigten Programmbaustein-Übersichten geben die
Verfügbarkeit für die jeweiligen Gerätefamilien S7-300 und S7-400 an. Die Übersichten
enthalten keine Angabe bzgl. der Verfügbarkeit in den jeweiligen Bibliotheken von
STEP 7 V5.5 oder STEP 7 Professional.

Neu in dieser Ausgabe


Diese Handbuchausgabe beinhaltet Korrekturen und Ergänzungen.

Programmbausteine für SIMATIC NET S7-CPs


4 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Vorwort

Über wesentliche inhaltliche Ergänzungen informiert folgende Tabelle:

Kapitel Änderung / Ergänzung


Programmbausteine zur Verbindungs- und Neuer Programmbaustein AG_CNTEX
Systemdiagnose (Seite 54)
generell Anpassung an die neue Projektiersoftware
STEP 7 Professional
Programmbausteine werden in der neuen
Projektiersoftware grundsätzlich nur mit ihren
symbolischen Namen angegeben. Das
vorliegende Handbuch trägt dem Rechnung,
indem die Namen der Programmbausteine
vorzugsweise verwendet werden. Eine
Zuordnung der Bezeichnungen mit Baustein-
Nummern gemäß der Verwendung in STEP 7
V5.5 ist aber nach wie vor enthalten.
FTP_CMD - universeller Programmbaustein für Ergänzter Programmbaustein FTP_CMD.
FTP-Dienste (Seite 85) Sie können SSL-gesicherte FTP-Verbindungen
einrichten.

CP-Dokumentation auf der Manual Collection (Bestell-Nr. A5E00069051)


Jedem S7-CP liegt die SIMATIC NET Manual Collection DVD bei. Diese DVD wird in
regelmäßigen Abständen aktualisiert und enthält die zum Erstellungszeitpunkt aktuellen
Gerätehandbücher und Beschreibungen.

Informationen zu aktuellen Versionen der Programmbausteine (FCs/FBs)


Verwenden Sie für neue Anwenderprogramme immer die aktuellen Bausteinversionen.
Informationen über die aktuellen Bausteinversionen sowie die aktuellen Programmbausteine
finden Sie im Internet unter folgender Beitrags-ID:
8797900 (http://support.automation.siemens.com/WW/view/de/8797900)
Für den Ersatzteilfall verfahren Sie bitte gemäß den Anweisungen im gerätespezifischen Teil
des Gerätehandbuchs zu Ihrem S7-CP.

Versionshistorie für die Programmausteine (FCs/FBs) und für die SIMATIC NET S7-CPs
Im Dokument "Versionshistorie/aktuelle Downloads für die SIMATIC NET S7-CPs" finden
Sie Informationen über alle bisher lieferbaren CPs für SIMATIC S7 (Ind. Ethernet,
PROFIBUS und IE/PB Link) sowie die Programmbausteine (FCs/FBs).
Eine jederzeit aktuelle Ausgabe dieser Dokumente finden Sie im Internet unter folgender
Beitrags-ID:
9836605 (http://support.automation.siemens.com/WW/view/de/9836605)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 5
Vorwort

SIMATIC NET Quick Start CD: Beispiele rund um das Thema Kommunikation
Eine Fundgrube für Beispielprogramme und Projektierungen stellt die separat beziehbare
Quick Start CD dar.
Diese können Sie direkt anfordern im Internet unter folgender Beitrags-ID::
21827955 (http://support.automation.siemens.com/WW/view/de/21827955)

Zusätzliche Informationen zu SIMATIC S7 und STEP 7 / STEP 7 Professional


Die zusätzlichen Dokumentationen über die Projektiersoftware STEP 7 / STEP 7
Professional des SIMATIC Automatisierungssystems finden Sie in elektronischer Form in
Ihrer STEP 7-Installation.
Darüber hinaus finden Sie Informationen zu SIMATIC Automatisierungssystemen auf der
Quick Start CD und über die Customer Support Online-Dienste im Internet:
unter (http://www.automation.siemens.com/net/index_00.htm)
(Allgemeine Informationen zu SIMATIC NET)
bzw.
unter (http://support.automation.siemens.com/WW/view/de)
(Produktinformationen und Downloads)

SIMATIC NET Glossar


Erklärungen zu den Fachbegriffen, die in dieser Dokumentation vorkommen, sind im
SIMATIC NET-Glossar enthalten.
Sie finden das SIMATIC NET-Glossar hier:
● SIMATIC NET Manual DVD -
Die DVD liegt den meisten SIMATIC NET-Produkten bei.
● Im Internet unter folgender Beitrags-ID:
50305045 (http://support.automation.siemens.com/WW/view/de/50305045)

Programmbausteine für SIMATIC NET S7-CPs


6 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Inhaltsverzeichnis

Vorwort ...................................................................................................................................................... 3
1 Übersichten und Allgemeines zur Hantierung .......................................................................................... 13
1.1 Programmbausteine für Ind. Ethernet / PROFINET ....................................................................13
1.2 Programmbausteine für PROFIBUS............................................................................................16
1.3 Aufrufe der Programmbausteine parametrieren ..........................................................................18
1.4 Parameter zur CP- und Verbindungszuordnung (Eingangsparameter).......................................19
1.5 Parameter zur Angabe eines CPU-Datenbereichs (Eingangsparameter)...................................21
1.6 Statusinformationen (Ausgangsparameter) .................................................................................22
2 Programmbausteine für Industrial Ethernet ............................................................................................. 23
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle) .........23
2.1.1 Programmbausteine und ihre Anwendung in der Übersicht ........................................................23
2.1.2 AG_SEND / AG_LSEND / AG_SSEND .......................................................................................29
2.1.2.1 Bedeutung und Aufruf - AG_SEND / AG_LSEND / AG_SSEND .................................................29
2.1.2.2 Arbeitsweise - AG_SEND / AG_LSEND / AG_SSEND................................................................30
2.1.2.3 Erläuterung der Formalparameter - AG_SEND / AG_LSEND / AG_SSEND ..............................33
2.1.2.4 Anzeigen AG_SEND, AG_LSEND und AG_SSEND ...................................................................34
2.1.3 AG_RECV / AG_LRECV / AG_SRECV .......................................................................................36
2.1.3.1 Bedeutung und Aufruf - AG_RECV / AG_LRECV / AG_SRECV .................................................36
2.1.3.2 Arbeitsweise AG_RECV / AG_LRECV / AG_SRECV ..................................................................37
2.1.3.3 Erläuterung der Formalparameter - AG_RECV / AG_LRECV / AG_SRECV ..............................44
2.1.3.4 Anzeigen AG_RECV, AG_LRECV und AG_SRECV ...................................................................45
2.2 Programmbausteine zur Zugriffskoordinierung bei FETCH/WRITE ............................................48
2.2.1 Programmbausteine und ihre Anwendung in der Übersicht ........................................................48
2.2.2 AG_LOCK ....................................................................................................................................50
2.2.2.1 Bedeutung und Aufruf - AG_LOCK..............................................................................................50
2.2.2.2 Erläuterung der Formalparameter - AG_LOCK ...........................................................................51
2.2.2.3 Anzeigen des Bausteins AG_LOCK ............................................................................................51
2.2.3 AG_UNLOCK ...............................................................................................................................52
2.2.3.1 Bedeutung und Aufruf - AG_UNLOCK.........................................................................................52
2.2.3.2 Erläuterung der Formalparameter - AG_UNLOCK ......................................................................53
2.2.3.3 Anzeigen des Bausteins AG_UNLOCK .......................................................................................53
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose .....................................................54
2.3.1 AG_CNTRL ..................................................................................................................................54
2.3.1.1 Bedeutung und Aufruf - AG_CNTRL............................................................................................54
2.3.1.2 Arbeitsweise AG_CNTRL.............................................................................................................56
2.3.1.3 Erläuterung der Formalparameter - AG_CNTRL .........................................................................57
2.3.1.4 Anzeigen AG_CNTRL ..................................................................................................................58
2.3.1.5 Kommandos und Auftragsergebnisse - AG_CNTRL ...................................................................60
2.3.2 AG_CNTEX ..................................................................................................................................67
2.3.2.1 Bedeutung und Aufruf - AG_CNTEX ...........................................................................................67
2.3.2.2 Arbeitsweise AG_CNTEX ............................................................................................................69

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 7
Inhaltsverzeichnis

2.3.2.3 Arbeitsweise der PING-Funktion................................................................................................. 70


2.3.2.4 Erläuterung der Formalparameter - AG_CNTEX ........................................................................ 72
2.3.2.5 Anzeigen AG_CNTEX ................................................................................................................. 73
2.3.2.6 Kommandos und Auftragsergebnisse - AG_CNTEX .................................................................. 75
2.4 Programmbausteine für FTP-Dienste ......................................................................................... 84
2.4.1 Übersicht zu FTP ........................................................................................................................ 84
2.4.2 FTP_CMD - universeller Programmbaustein für FTP-Dienste.................................................... 85
2.4.2.1 Bedeutung und Aufruf - FTP_CMD ............................................................................................. 85
2.4.2.2 Eingangsparameter - FTP_CMD................................................................................................. 87
2.4.2.3 Ausgangsparameter und Statusinformationen - FTP_CMD ....................................................... 92
2.4.2.4 Migration von FC 40-44 zum FTP_CMD..................................................................................... 95
2.4.3 FTP_CONNECT.......................................................................................................................... 97
2.4.3.1 Bedeutung und Aufruf - FTP_CONNECT ................................................................................... 97
2.4.3.2 Erläuterung der Formalparameter - FTP_CONNECT................................................................. 98
2.4.4 FTP_STORE ............................................................................................................................... 99
2.4.4.1 Bedeutung und Aufruf - FTP_STORE......................................................................................... 99
2.4.4.2 Erläuterung der Formalparameter - FTP_STORE .................................................................... 100
2.4.5 FTP_RETRIEVE........................................................................................................................ 102
2.4.5.1 Bedeutung und Aufruf - FTP_RETRIEVE ................................................................................. 102
2.4.5.2 Erläuterung der Formalparameter - FTP_RETRIEVE............................................................... 103
2.4.6 FTP_DELETE............................................................................................................................ 104
2.4.6.1 Bedeutung und Aufruf - FTP_DELETE ..................................................................................... 104
2.4.6.2 Erläuterung der Formalparameter - FTP_DELETE................................................................... 104
2.4.7 FTP_QUIT ................................................................................................................................. 106
2.4.7.1 Bedeutung und Aufruf - FTP_QUIT........................................................................................... 106
2.4.7.2 Erläuterung der Formalparameter - FTP_QUIT ........................................................................ 106
2.4.8 Parameter zur CP- und Verbindungszuordnung (Eingangsparameter).................................... 107
2.4.9 Statusinformationen (Ausgangsparameter) .............................................................................. 108
2.4.10 Datenbaustein File-DB .............................................................................................................. 111
2.4.10.1 Aufbau der Datenbausteine (File-DB) für FTP-Dienste - FTP-Client-Betrieb ........................... 111
2.4.10.2 Aufbau der Datenbausteine (File-DB) für FTP-Dienste - FTP-Server-Betrieb.......................... 113
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration .......................... 116
2.5.1 Arbeitsweise.............................................................................................................................. 116
2.5.2 So gehen Sie vor....................................................................................................................... 119
2.5.3 Konfigurations-Datenbaustein (CONF_DB) .............................................................................. 119
2.5.4 Konfigurations-Datenbaustein - Beispiel................................................................................... 121
2.5.5 Parameterblock für Systemdaten (IP-Konfiguration) ................................................................ 124
2.5.6 Parameterblöcke für Verbindungstypen.................................................................................... 125
2.5.6.1 Parameterblock für TCP-Verbindung........................................................................................ 126
2.5.6.2 Parameterblock für UDP- Verbindung ...................................................................................... 127
2.5.6.3 Parameterblock für ISO-on-TCP Verbindung ........................................................................... 128
2.5.6.4 Parameterblock für E-Mail-Verbindung..................................................................................... 129
2.5.6.5 Parameterblock für FTP-Verbindung ........................................................................................ 130
2.5.7 Subblock-Typen ........................................................................................................................ 131
2.5.8 IP_CONFIG - Bedeutung und Aufruf......................................................................................... 135
2.5.9 Arbeitsweise IP_CONFIG.......................................................................................................... 137
2.5.10 Erläuterung der Formalparameter - IP_CONFIG ...................................................................... 139
2.5.11 Reservierte Port-Nummern - IP_CONFIG................................................................................. 140
2.5.12 Anzeigen IP_CONFIG ............................................................................................................... 140
2.6 Programmbausteine für ERPC-CP ........................................................................................... 144
2.6.1 LOGICAL_TRIGGER für den logischen Trigger ....................................................................... 144

Programmbausteine für SIMATIC NET S7-CPs


8 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Inhaltsverzeichnis

2.6.2 Arbeitsweise LOGICAL_TRIGGER............................................................................................145


2.6.3 Erläuterung der Formalparameter - LOGICAL_TRIGGER ........................................................146
2.6.4 Anzeigen LOGICAL_TRIGGER .................................................................................................147
2.6.5 Der Konfigurations-Datenbaustein.............................................................................................149
2.7 Mengengerüst / Ressourcenbedarf der Programmbausteine (Ethernet) ..................................150
3 Programmbausteine für PROFINET ...................................................................................................... 153
3.1 Programmbausteine für PROFINET CBA..................................................................................153
3.1.1 PN_InOut / PN_InOut_Fast - Bedeutung und Aufruf .................................................................153
3.1.2 Erläuterung der Formalparameter - PN_InOut / PN_InOut_Fast ...............................................155
3.1.3 Anzeigen der Bausteine PN_InOut und PN_InOut_Fast ...........................................................155
3.1.4 Zeitgesteuerter Aufruf PN_InOut / PN_InOut_Fast - Empfehlung zur Anwendung ...................158
3.2 Programmbausteine für PROFINET IO (S7-300) ......................................................................159
3.2.1 Anwendung in der Übersicht......................................................................................................159
3.2.2 PNIO_SEND...............................................................................................................................160
3.2.2.1 Bedeutung und Aufruf - PNIO_SEND ........................................................................................160
3.2.2.2 Erläuterung der Formalparameter - PNIO_SEND......................................................................162
3.2.2.3 Anzeigen des Bausteins PNIO_SEND.......................................................................................166
3.2.3 PNIO_RECV...............................................................................................................................168
3.2.3.1 Bedeutung und Aufruf - PNIO_RECV ........................................................................................168
3.2.3.2 Erläuterung der Formalparameter - PNIO_RECV......................................................................170
3.2.3.3 Anzeigen des Bausteins PNIO_RECV.......................................................................................174
3.2.4 Allgemeines Verhalten der FCs für PROFINET IO....................................................................176
3.2.5 Datenkonsistenz ........................................................................................................................177
3.2.6 Ersatzwerte ................................................................................................................................178
3.2.7 PNIO_RW_REC .........................................................................................................................179
3.2.7.1 Bedeutung und Aufruf - PNIO_RW_REC...................................................................................179
3.2.7.2 Erläuterung der Formalparameter - PNIO_RW_REC ................................................................180
3.2.7.3 Anzeigen des Bausteins PNIO_RW_REC .................................................................................181
3.2.8 PNIO_ALARM ............................................................................................................................183
3.2.8.1 Bedeutung und Aufruf - PNIO_ALARM......................................................................................183
3.2.8.2 Erläuterung der Formalparameter - PNIO_ALARM ...................................................................184
3.2.8.3 Anzeigen des Bausteins PNIO_ALARM ....................................................................................186
3.3 Mengengerüst / Ressourcenbedarf der Programmbausteine (PROFINET)..............................188
4 Programmbausteine für PROFIBUS ...................................................................................................... 189
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle) .......189
4.1.1 Anwendung in der Übersicht......................................................................................................189
4.1.2 AG_SEND / AG_LSEND ............................................................................................................191
4.1.2.1 Bedeutung und Aufruf - AG_SEND / AG_LSEND......................................................................191
4.1.2.2 Arbeitsweise - AG_SEND / AG_LSEND ....................................................................................193
4.1.2.3 Erläuterung der Formalparameter - AG_SEND / AG_LSEND ...................................................194
4.1.2.4 Anzeigen AG_SEND und AG_LSEND.......................................................................................196
4.1.3 AG_RECV / AG_LRECV ............................................................................................................198
4.1.3.1 Bedeutung und Aufruf - AG_RECV / AG_LRECV......................................................................198
4.1.3.2 Arbeitsweise - AG_RECV / AG_LRECV ....................................................................................199
4.1.3.3 Erläuterung der Formalparameter - AG_RECV / AG_LRECV ...................................................201
4.1.3.4 Anzeigen AG_RECV und AG_LRECV.......................................................................................202
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300 ..............................................204
4.2.1 Anwendung in der Übersicht......................................................................................................204

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 9
Inhaltsverzeichnis

4.2.2 DP_SEND.................................................................................................................................. 205


4.2.2.1 Bedeutung und Aufruf - DP_SEND ........................................................................................... 205
4.2.2.2 Arbeitsweise - DP_SEND.......................................................................................................... 206
4.2.2.3 Erläuterung der Formalparameter - DP_SEND......................................................................... 208
4.2.2.4 Anzeigen DP_SEND ................................................................................................................. 209
4.2.3 DP_RECV.................................................................................................................................. 210
4.2.3.1 Bedeutung und Aufruf - DP_RECV ........................................................................................... 210
4.2.3.2 Arbeitsweise - DP_RECV.......................................................................................................... 211
4.2.3.3 Erläuterung der Formalparameter - DP_RECV......................................................................... 213
4.2.3.4 Anzeigen DP_RECV ................................................................................................................. 214
4.2.3.5 DPSTATUS - DP_RECV ........................................................................................................... 215
4.2.4 DP_DIAG................................................................................................................................... 217
4.2.4.1 Bedeutung und Aufruf - DP_DIAG ............................................................................................ 217
4.2.4.2 Arbeitsweise - DP_DIAG ........................................................................................................... 218
4.2.4.3 Erläuterung der Formalparameter - DP_DIAG.......................................................................... 220
4.2.4.4 Auftragsarten - DP_DIAG.......................................................................................................... 221
4.2.4.5 Ringpuffer für Diagnosedaten - DP_DIAG ................................................................................ 223
4.2.4.6 Anzeigen DP_DIAG................................................................................................................... 224
4.2.5 DP_CTRL .................................................................................................................................. 227
4.2.5.1 Bedeutung und Aufruf - DP_CTRL............................................................................................ 227
4.2.5.2 Arbeitsweise - DP_CTRL .......................................................................................................... 228
4.2.5.3 Erläuterung der Formalparameter - DP_CTRL ......................................................................... 229
4.2.5.4 Auftragsarten - DP_CTRL ......................................................................................................... 231
4.2.5.5 Command Mode und Group Select - DP_CTRL ....................................................................... 234
4.2.5.6 Anzeigen DP_CTRL .................................................................................................................. 235
4.3 Mengengerüst / Ressourcenbedarf der Programmbausteine (PROFIBUS)............................. 239
5 Programmbausteine für PROFIBUS FMS.............................................................................................. 241
5.1 Anwendung in der Übersicht ..................................................................................................... 241
5.2 FMS-Bausteinparameter ........................................................................................................... 242
5.3 IDENTIFY .................................................................................................................................. 247
5.3.1 Bedeutung und Aufruf - IDENTIFY ........................................................................................... 247
5.3.2 Arbeitsweise - IDENTIFY .......................................................................................................... 248
5.4 READ ........................................................................................................................................ 249
5.4.1 Bedeutung und Aufruf - READ .................................................................................................. 249
5.4.2 Arbeitsweise READ................................................................................................................... 250
5.5 REPORT ................................................................................................................................... 252
5.5.1 Bedeutung und Aufruf - REPORT............................................................................................. 252
5.5.2 Arbeitsweise REPORT.............................................................................................................. 253
5.6 STATUS .................................................................................................................................... 254
5.6.1 Bedeutung und Aufruf - STATUS.............................................................................................. 254
5.6.2 Arbeitsweise STATUS............................................................................................................... 255
5.7 WRITE....................................................................................................................................... 257
5.7.1 Bedeutung und Aufruf - WRITE ................................................................................................ 257
5.7.2 Arbeitsweise WRITE ................................................................................................................. 259
5.8 Anzeigen und Fehlermeldungen - FMS Bausteine ................................................................... 260
5.8.1 Lokal erkannte Fehler ............................................................................................................... 261
5.8.2 Vom FMS-Partner gemeldete Fehler ........................................................................................ 264

Programmbausteine für SIMATIC NET S7-CPs


10 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Inhaltsverzeichnis

5.9 Mengengerüst / Ressourcenbedarf der FBs (PROFIBUS FMS) ...............................................266


A Dokument-Historie ................................................................................................................................. 267
A.1 Dokument-Historie .....................................................................................................................267
B Literaturverzeichnis................................................................................................................................ 269
Index...................................................................................................................................................... 273

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 11
Inhaltsverzeichnis

Programmbausteine für SIMATIC NET S7-CPs


12 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Übersichten und Allgemeines zur Hantierung 1
1.1 Programmbausteine für Ind. Ethernet / PROFINET

Lieferform - Bausteinbibliothek
Die SIMATIC NET Programmbausteine werden, soweit nicht anders angegeben, zusammen
mit der Projektiersoftware STEP 7 geliefert.

ACHTUNG
Lieferumfang STEP 7 / STEP 7 Professional
Die Lieferumfänge in den Bibliotheken von STEP 7 V5.5 und STEP 7 Professional können
voneinander abweichen.

Nachfolgende Liste gibt die bei der Lieferung verwendeten Bausteinnummern an.
Entnehmen Sie ferner unter der Rubrik SIMATIC_NET_CP, in welchem Verzeichnis
Bausteine abgelegt sind. Beachten Sie bitte, dass Sie unterschiedliche Programmbausteine
für S7-300 und S7-400 (getrennte Bibliotheken) verwenden müssen.

Kommunikationsdienst / Programmbaustein Bibliothek für SIMATIC NET


Funktionsbereich
SIMATIC_NET_CP
CP 300 CP 400
SEND / RECEIVE AG_SEND FC5 x x
(Offene Kommunikationsdienste) AG_LSEND FC50 x 2) x
AG_SSEND FC53 x3)
AG_RECV FC6 x x
AG_LRECV FC60 x 2) x
AG_SRECV FC63 x3)
AG_LOCK FC7 x x
AG_UNLOCK FC8 x x
AG_CNTEX FC9 x 3) x 3)
AG_CNTRL FC10 x 3) x 3)
Programmierte IP_CONFIG FB55 x x
Kommunikationsverbindungen und
IP-Konfiguration
S7-Kommunikation 4) BSEND FB12 x
BRCV FB13 x
PUT FB15 x
GET FB14 x
USEND FB8 x

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 13
Übersichten und Allgemeines zur Hantierung
1.1 Programmbausteine für Ind. Ethernet / PROFINET

Kommunikationsdienst / Programmbaustein Bibliothek für SIMATIC NET


Funktionsbereich
SIMATIC_NET_CP
CP 300 CP 400
URCV FB9 x
C_CNTRL FC62 x
FTP (Advanced-CPs) FTP_CMD FB40 x x
FTP_CONNECT FC40 x x
FTP_STORE FC41 x x
FTP_RETRIEVE FC42 x x
FTP_DELETE FC43 x x
FTP_QUIT FC44 x x
PROFINET CBA PN_InOut 1) FB88 1) x 1) x 1)
PN_InOut_Fast 1) FB90 1) x 1)
PROFINET IO PNIO_SEND FC11 x
PNIO_RECV FC12 x
PNIO_RW_REC FB52 x
PNIO_ALARM FB54 x

Legende:
1) Der FB88 / FB90 wird zusammen mit dem Engineering-Werkzeug SIMATIC iMap geliefert und wird mit der
Installation des STEP 7-Addon in der PROFINET System-Library eingetragen.
2) Nicht für aktuelle CPs zu verwenden und nicht mehr Lieferbestandteil der aktuellen Bibliothek "SIMATIC_NET_CP".
3) Abhängig vom CP-Typ
4) Beschrieben in der STEP 7 Dokumentation

Welche Bausteinversion verwenden ?


Die folgenden Beschreibungen enthalten auch Hinweise auf abweichende Verhaltensweisen
bei unterschiedlichen Bausteinversionen. Bitte achten Sie auf die Versionskennzeichnungen
der von Ihnen verwendeten Bausteine.
Die mit STEP 7 installierten SIMATIC NET-Bausteinbibliotheken enthalten die zum Zeitpunkt
der STEP 7-Freigabe aktuellen Bausteinversionen.

Hinweis
Es wird empfohlen, für alle Baugruppentypen immer die aktuellen Bausteinversionen zu
verwenden.
Informationen über die aktuellen Bausteinversionen sowie die aktuellen Bausteine zum
Download finden Sie beim Customer Support im Internet unter folgender Beitrags-ID:
8797900 (http://support.automation.siemens.com/WW/view/de/8797900)
Diese Empfehlung setzt voraus, dass Sie den für diesen Baugruppentyp aktuellen Firmware-
Stand verwenden.

Programmbausteine für SIMATIC NET S7-CPs


14 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Übersichten und Allgemeines zur Hantierung
1.1 Programmbausteine für Ind. Ethernet / PROFINET

Programmbausteine im Ersatzteilfall
Unter Ersatzteilfall wird der Austausch einer Baugruppe gegen eine andere Baugruppe mit
eventuell neuerem Ausgabestand verstanden.

ACHTUNG

Beachten Sie, dass Sie im Ersatzteilfall im Anwenderprogramm nur die für den projektierten
CP-Typ zugelassenen Bausteine verwenden.
Es wird empfohlen, für alle Baugruppentypen immer die aktuellen Bausteinversionen zu
verwenden.
Diese Empfehlung setzt voraus, dass Sie den für diesen Baugruppentyp aktuellen
Firmware-Stand verwenden.

Die spezifischen Gerätehandbücher geben Auskunft über die Kompatibilität der S7-CPs und
der zugehörenden Programmbausteine.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 15
Übersichten und Allgemeines zur Hantierung
1.2 Programmbausteine für PROFIBUS

1.2 Programmbausteine für PROFIBUS

Lieferform - Bausteinbibliothek
Die SIMATIC NET Programmbausteine werden, soweit nicht anders angegeben, zusammen
mit der Projektiersoftware STEP 7 geliefert.

ACHTUNG
Lieferumfang STEP 7 / STEP 7 Professional
Die Lieferumfänge in den Bibliotheken von STEP 7 V5.5 und STEP 7 Professional können
voneinander abweichen.

Nachfolgende Liste gibt die bei der Lieferung verwendeten Bausteinnummern an.
Entnehmen Sie ferner unter der Rubrik SIMATIC_NET_CP, in welchem Verzeichnis
Bausteine abgelegt sind. Beachten Sie, dass Sie unterschiedliche Programmbausteine für
S7-300 und S7-400 (getrennte Bibliotheken) verwenden müssen.

Kommunikationsdienst / Programmbaustein Bibliothek für SIMATIC NET


Funktionsbereich
SIMATIC_NET_CP
CP 300 CP 400
PROFIBUS DP DP_SEND FC1 x
DP_RECV FC2 x
DP_DIAG FC3 x
DP_CTRL FC4 x
SEND / RECEIVE AG_SEND FC5 x x
(Offene Kommunikationsdienste) AG_LSEND FC50 x 2)
AG_RECV FC6 x x
AG_LRECV FC60 x 2)
S7-Kommunikation 1) BSEND FB12 x 1)

BRCV FB13 x 1)

PUT FB15 x 1)

GET FB14 x 1)

USEND FB8 x 1)

URCV FB9 x 1)

C_CNTRL FC62 x 1)

PROFIBUS FMS IDENTIFY FB2 x x


READ FB3 x x
REPORT FB4 x x
STATUS FB5 x x
WRITE FB6 x x

Programmbausteine für SIMATIC NET S7-CPs


16 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Übersichten und Allgemeines zur Hantierung
1.2 Programmbausteine für PROFIBUS

Kommunikationsdienst / Programmbaustein Bibliothek für SIMATIC NET


Funktionsbereich
SIMATIC_NET_CP
CP 300 CP 400
1) Beschrieben in der STEP 7-Dokumentation. Entsprechend für S7-400 zu verwendende SFBs werden in der STEP 7-
Bibliothek zur Verfügung gestellt.
2) Kann genutzt werden, hat jedoch unter PROFIBUS keine besondere Funktion.

Welche Bausteinversion verwenden ?


Die folgenden Beschreibungen enthalten auch Hinweise auf abweichende Verhaltensweisen
bei unterschiedlichen Bausteinversionen. Bitte achten Sie auf die Versionskennzeichnungen
der von Ihnen verwendeten Bausteine.
Die mit STEP 7 installierten SIMATIC NET-Bausteinbibliotheken enthalten die zum Zeitpunkt
der STEP 7-Freigabe aktuellen Bausteinversionen.

Hinweis
Es wird empfohlen, für alle Baugruppentypen immer die aktuellen Bausteinversionen zu
verwenden.
Informationen über die aktuellen Bausteinversionen sowie die aktuellen Bausteine zum
Download finden Sie beim Customer Support im Internet unter folgender Beitrags-ID:
8797900 (http://support.automation.siemens.com/WW/view/de/8797900)
Diese Empfehlung setzt voraus, dass Sie den für diesen Baugruppentyp aktuellen Firmware-
Stand verwenden.

Programmbausteine im Ersatzteilfall
Unter Ersatzteilfall wird der Austausch einer Baugruppe gegen eine andere Baugruppe, mit
eventuell neuerem Ausgabestand verstanden.

ACHTUNG

Beachten Sie, dass Sie im Ersatzteilfall im Anwenderprogramm nur die für den projektierten
CP-Typ zugelassenen Bausteine verwenden.
Es wird empfohlen, für alle Baugruppentypen immer die aktuellen Bausteinversionen zu
verwenden.
Diese Empfehlung setzt voraus, dass Sie den für diesen Baugruppentyp aktuellen
Firmware-Stand verwenden.

Die Gerätehandbücher geben Auskunft über die Kompatibilität der S7-CPs und der
zugehörenden Programmbausteine.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 17
Übersichten und Allgemeines zur Hantierung
1.3 Aufrufe der Programmbausteine parametrieren

1.3 Aufrufe der Programmbausteine parametrieren

Allgemeine Hinweise zum Aufruf und zur Parametrierung


Bevor die Programmbausteine im Detail beschrieben werden, folgen an dieser Stelle einige
allgemeine Hinweise zum Aufruf und zur Parametrierung.
Allgemeine Angaben können hier zu folgenden, bei allen Programmbausteinen vorhandenen
Parametergruppen gemacht werden:
● Parameter zur CP- und Verbindungszuordnung (Eingangsparameter)
● Parameter zur Angabe eines CPU-Datenbereichs (Eingangsparameter)
● Statusinformationen (Ausgangsparameter)

VORSICHT
Kommunikations-Bausteine für S7-300 aufrufen
Es ist nicht zulässig, die Kommunikations-Bausteine für S7-300 (SIMATIC NET
Bausteinbibliotheken für S7-300 in STEP 7) in mehreren Ablaufebenen aufzurufen!
Wenn Sie beispielsweise einen Kommunikations-Baustein in OB1 und in OB35 aufrufen,
könnte die Bausteinbearbeitung durch den jeweils höherprioren OB unterbrochen
werden.
Wenn Sie die Bausteine in mehreren OBs aufrufen, müssen Sie programmtechnisch
dafür sorgen, dass ein laufender Kommunikations-Baustein nicht durch einen anderen
Kommunikations-Baustein unterbrochen wird (beispielsweise über SFC Alarme
sperren/freigeben).

Programmbausteine für SIMATIC NET S7-CPs


18 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Übersichten und Allgemeines zur Hantierung
1.4 Parameter zur CP- und Verbindungszuordnung (Eingangsparameter)

1.4 Parameter zur CP- und Verbindungszuordnung


(Eingangsparameter)
Beim Aufruf eines Programmausteins übergeben Sie im Parameter CPLADDR bzw. LADDR
die Baugruppen-Anfangsadresse des S7-CP. Die Baugruppen-Anfangsadresse des S7-CP
ist bei der Projektierung des CP dem Parameter "Adresse/Eingang" zu entnehmen.
Bei verbindungsorientierten Aufträgen müssen Sie zusätzlich die zu verwendende
Verbindung über deren Verbindungs-ID referenzieren . Die Angabe hierzu finden Sie im
Eigenschaftendialog der Verbindung unter "Bausteinparameter" (siehe Angaben in NetPro).

Bausteinparameter automatisch übernehmen (hier beschrieben für STEP 7 V5.5)


Um eine korrekte Parametrierung der Bausteinaufrufe zu gewährleisten, bietet STEP 7 im
KOP/AWL/FUP-Editor die Möglichkeit, sämtliche relevanten Parameter aus der Hardware-
Konfiguration (HW Konfig) und aus der Verbindungsprojektierung (NetPro) automatisch zu
übernehmen.
Gehen Sie hierzu bei der Parametrierung des Bausteines im Anwenderprogramm wie folgt
vor:
1. Markieren Sie den Bausteinaufruf und dessen Bausteinparameter;
2. Wählen Sie mit der rechten Maustaste den Menüpunkt "Verbindungen...".
3. Je nach Bausteintyp können Sie nun aus einer Liste die für den Baustein vorgesehene
Verbindung und / oder Baugruppe auswählen.
4. Bestätigen Sie die Auswahl; soweit möglich werden dann die verfügbaren
Parameterwerte in den Bausteinaufruf eingetragen.

Verhalten bei falscher Adressangabe


Kann die S7-CPU unter der angegebenen Baugruppen-Anfangsadresse den PROFIBUS-CP
nicht erreichen oder nicht als CP identifizieren, so ergeben sich die nachfolgend
beschriebenen Fehlerbilder.

Ursache Reaktion bzw. Anzeige


Unter der angegebenen CP- Die CPU bleibt im Zustand STOP mit Systemfehler; werten Sie in
Adresse ist keine Baugruppe diesem Fall den Diagnosepuffer der CPU aus.
adressierbar oder identifizierbar.
Die CP-Adresse zeigt auf einen mögliche Fehleranzeige im Parameter STATUS des
anderen Baugruppentyp. Kommunikationsbausteines:
8184H Systemfehler
80B0H Baugruppe kennt den Datensatz nicht.
80C0H Datensatz kann nicht gelesen werden.
80C3H Betriebsmittel (Speicher) belegt.
80D2H Logische Basisadresse ist falsch.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 19
Übersichten und Allgemeines zur Hantierung
1.4 Parameter zur CP- und Verbindungszuordnung (Eingangsparameter)

ACHTUNG

Wenn Sie irrtümlich keinen CP sondern einen anderen Baugruppentyp adressieren,


entstehen Fehlerbilder, die nicht durch Fehlermeldungen der Programmbausteine selbst
angezeigt werden.

Programmbausteine für SIMATIC NET S7-CPs


20 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Übersichten und Allgemeines zur Hantierung
1.5 Parameter zur Angabe eines CPU-Datenbereichs (Eingangsparameter)

1.5 Parameter zur Angabe eines CPU-Datenbereichs


(Eingangsparameter)

Angabe des Datenbereiches in der CPU


Beim Aufruf eines Programmbausteins übergeben Sie die Adresse und Länge des
Datenbereiches in der CPU, in dem Nutzdaten bereitgestellt oder abgelegt werden sollen
oder weitere Parametrierinformationen enthalten sein können
Zur Adressierung dieses Bereiches wird der Datentyp ANY- Pointer verwendet.
Weitergehende Informationen zu diesem Datentyp finden Sie in der Online-Hilfe zu STEP 7.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 21
Übersichten und Allgemeines zur Hantierung
1.6 Statusinformationen (Ausgangsparameter)

1.6 Statusinformationen (Ausgangsparameter)

Statusanzeigen auswerten
Für die Statusauswertung sind im Anwenderprogramm die Parameter auszuwerten:
● DONE bzw. NDR
Diese Parameter (DONE bei Sendaufträgen bzw. NDR bei Empfangsaufträgen) melden
den (positiven) Abschluss einer Auftragsausführung.
● ERROR
Meldet, wenn der Auftrag nicht fehlerfrei ausgeführt werden konnte.
● STATUS
Der Parameter liefert Detailinformation zur Auftragsausführung. Statusanzeigen können
bereits während der Auftragsausführung geliefert werden (DONE=0 und ERROR=0).

Hinweis
Beachten Sie, dass die Statusanzeigen DONE, NDR, ERROR, STATUS bei jedem
Bausteinaufruf aktualisiert werden.

Statusanzeigen beim CP-Anlauf


Bei einem Neu-/Wiederanlauf des Ethernet-CP (z. B. wegen Schalterbetätigung) werden die
Ausgabeparameter des FC-Bausteines wie folgt zurückgesetzt:
● DONE = 0
● NDR = 0
● ERROR = 0
● STATUS =
– 8180H bei AG_RECV / AG_LRECV
– 8181 H bei AG_SRECV
– 8181H bei AG_SEND /AG_LSEND / AG_SSEND

Programmbausteine für SIMATIC NET S7-CPs


22 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet 2
2.1 Programmbausteine für Offene Kommunikationsdienste
(SEND/RECEIVE-Schnittstelle)

2.1.1 Programmbausteine und ihre Anwendung in der Übersicht

Übersicht
Für die Übertragung von Daten an der SEND/RECEIVE-Schnittstelle stehen folgende
Programmbausteine zur Verfügung:

Programmbaustein verwendbar bei 1) Bedeutung


S7-300 S7-400
AG_SEND (FC5) x x für Daten senden
AG_RECV (FC6) x x für Daten empfangen
AG_LSEND (FC50) x für Daten senden
AG_LRECV (FC60) x für Daten empfangen
AG_SSEND (FC53) x für Daten senden
AG_SRECV (FC63) x für Daten empfangen

1) Anmerkungen zu den Programmbausteinen bei S7-300 und S7-400

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 23
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

● für S7-300 gilt:


– Bei den aktuellen Ausgabeständen der Ethernet-CPs werden ausschließlich die
Programmbausteine AG_SEND und AG_RECV verwendet; die Datenlänge kann hier
bis zu 8192 Byte betragen.
– In S7–300-CPs (bis zum 6GK7 343–1EX10–0XE0 mit Firmware-Stand V2.2) müssen
Sie auf TCP-Verbindungen statt des FC6 den FC60 verwenden. Für den CP 343-1
(EX10) können Sie den FC5/FC6 bis zur Bausteinversion V3.0 einsetzen.
● für S7-400 gilt:
– Bei den Programmbausteinen AG_SEND / AG_RECV ist die Datenlänge pro Auftrag
auf <=240 Byte beschränkt.
Längere Datensätze (bis zu 8192 Byte) können mit Hilfe der FCs AG_LSEND oder
AG_LRECV übertragen werden.
– Die Programmbausteine AG_SSEND und AG_SRECV dienen der beschleunigten
Übertragung von Daten, indem eine optimierte Bausteinkommunikation zwischen CPU
und CP in der S7−Station verwendet wird. Die schnelle Kommunikation bleibt ohne
Auswirkung auf die LAN−Kommunikation.
– In der S7–400 kann auf TCP-Verbindungen der FC6 nicht verwendet werden, sondern
nur der FC60 oder der FC63.

Weitere Informationen
Bitte informieren Sie sich zu dem von Ihnen verwendeten S7-CP im gerätespezifischen
Handbuch bzgl. des unterstützten Datenbereiches. Eine Übersicht über die Versionen der
FCs/FBs finden Sie in der SIMATIC NET-Bausteinhistorie.

Programmbausteine für SIMATIC NET S7-CPs


24 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Anwendung
Die folgende Darstellung verdeutlicht die Anwendung der hier beschriebenen
Programmbausteine für den bidirektionalen Datentransfer über eine projektierte Verbindung.

&38 (WKHUQHW&3 (WKHUQHW&3 &38

67(3 67(3
$QZHQGHU $QZHQGHU
SURJUDPP SURJUDPP

$QZHQGHU $QZHQGHU
'DWHQEHUHLFKH 'DWHQEHUHLFKH
$*B6(1' VHQGHQ HPSIDQJHQ $*B5(&9
9HUELQGXQJ
$*B5(&9 HPSIDQJHQ VHQGHQ $*B6(1'

Hinweis
Auf dieser und den nachfolgenden Seiten gelten, sofern nicht ausdrücklich anders
angegeben, die Ausführungen für die Bausteine AG_SEND / AG_LSEND / AG_SSEND bzw.
AG_RECV / AG_LRECV / AG_SRECV.

Programmbeispiele
Bitte beachten sie als Hilfestellung auch die nachfolgend genannten Programmbeispiele im
Internet unter folgender Beitrags-ID
● Programmbeispiel für die SEND/RECEIVE-Schnittstelle mit den Bausteinen FC5
(AG_SEND) und FC6 (AG_RECV) für S7-300:
17853532 (http://support.automation.siemens.com/WW/view/de/17853532)
● Programmbeispiel für die SEND/RECEIVE-Schnittstelle mit den Bausteinen FC50
(AG_LSEND) und FC60 (AG_LRECV) für S7-400:
18513371 (http://support.automation.siemens.com/WW/view/de/18513371)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 25
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Angabe des Datenbereiches in der CPU


Beim Aufruf eines FC-Bausteines übergeben Sie Adresse und Länge des Datenbereiches in
der CPU. Beachten Sie bitte, dass die maximale Länge des Datenbereiches vom
verwendeten Bausteintyp und der Bausteinversion abhängig ist.
● AG_SEND und AG_RECV
Mit diesen Bausteinen können bis zur Bausteinversion V3.0 maximal 240 Byte gesendet
oder empfangen werden. Die aktuellen Bausteinversionen lassen bei S7-300 einen
Datenbereich bis zu 8192 Byte zu. Bei S7-400 müssen für die Übertragung größerer
Datenbereiche weiterhin die FCs AG_LSEND / AG_LRECV verwendet werden.
● AG_LSEND / AG_LRECV
Bei den CPs der S7-400 sowie bei früheren Ausgabeständen der S7-300 können größere
Datenbereiche nur über die FCs AG_LSEND bzw. AG_LRECV übertragen werden. Bitte
informieren Sie sich in der Produktinformation des CP bzgl. des unterstützten
Datenbereiches.
● AG_SSEND / AG_SRECV
Mit CPs der S7−400, die PROFINET-Kommunikation zusammen mit CPUs ab
Ausgabestand 5.1 unterstützen, können Daten über die FCs AG_SSEND bzw.
AG_SRECV mit einer höheren Übertragungsgeschwindigkeit übertragen werden (gilt
nicht für den CP 443−1 Advanced 6GK7 443–1EX41–0XE0).
Welche CP-Typen von CPUs ab Ausgabestand 5.1 unterstützt werden, können Sie dem
Gerätehandbuch Ihres CP entnehmen (Kapitel "Voraussetzungen für den Einsatz").
Die folgende Tabelle gibt an, welche Grenzwerte bei den verschiedenen Verbindungstypen
gelten.

FC ISO-Transport ISO-on-TCP TCP UDP


AG_LSEND (S7-400) 8192 Byte 8192 Byte 8192 Byte 2048 Byte
AG_SEND (S7-300)
AG_SEND (S7-400) 240 Byte 240 Byte 240 Byte 240 Byte
AG_LRECV (S7-400) 8192 Byte 8192 Byte 8192 Byte 2048 Byte
AG_RECV (S7-300)
AG_RECV (S7-400) 240 Byte 240 Byte 240 Byte 240 Byte
AG_SSEND (S7-400) 1452 Byte 1452 Byte 1452 Byte 1452 Byte
AG_SRECV (S7-400)

Hinweis
Beachten Sie zur Länge des übertragbaren Datenbereiches bei älteren Ausgabeständen der
Ethernet-CPs bitte die Angaben in der Produktinformation / Gerätehandbuches des von
Ihnen verwendeten Ethernet-CPs.

Programmbausteine für SIMATIC NET S7-CPs


26 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Anwendung ohne Auftragsheader


Bei spezifizierter Verbindung sind Adress- und Auftragsparameter durch die
Verbindungsprojektierung festgelegt. Das Anwenderprogramm stellt daher nur die Nutzdaten
im UDP-Datenbereich beim Senden mit AG_SEND / AG_LSEND / AG_SSEND bereit, bzw.
empfängt diese mit AG_RECV / AG_LRECV / AG_SRECV.

Anwendung mit Auftragsheader


Freie UDP-Verbindungen erfordern einen Auftragsheader im Anwender-Datenbereich.
Entnehmen Sie der folgenden Darstellung die Struktur des Auftragspuffers und die
Bedeutung und Platzierung (high byte / low byte) der Parameter im Auftragsheader.

$QZHQGHU'DWHQEHUHLFK
3RUW  + +LJK%\WH  (% + /RZ%\WH  %\WH
$XIWUDJVSXIIHU (+ % + %\WH
,3$GUHVVH
 +  + %\WH
$XIWUDJVKHDGHU

'DWHQE\WH 'DWHQE\WH %\WH

1XW]GDWHQ

'DWHQE\WH 'DWHQE\WH %\WH

Bild 2-1 Senden und Empfangen über eine frei UDP-Verbindung per Programm

● Im Bild (Eingaben sind hexadezimal) wird beispielhaft von folgender IP-Adresse


ausgegangen: 142.11.40.35;
● Für die Port-Adresse 1003 ist z. B. einzutragen: für High Byte: 03H; für Low Byte: EBH.
● Der Anwender-Datenbereich kann bis zu 2048 Byte umfassen. Es können bis zu 2042
Byte Nutzdaten übertragen werden. 6 Byte sind für den Auftragsheader reserviert.
Beachten Sie, dass die beim Bausteinaufruf angegebene Datenlänge (Parameter LEN)
den Header und die Nutzdaten umfassen muss!

Aufrufparameter erst nach Auftragsbestätigung verändern

ACHTUNG

Die Aufrufparameter an der Aufrufschnittstelle der Programmbausteine AG_SEND bzw.


AG_RECV dürfen Sie nach dem Auftragsanstoß erst dann wieder verändern, nachdem der
FC die Auftragsausführung mit DONE=1 oder mit ERROR=1 bestätigt hat.
Wird dies nicht beachtet, kann es sein, dass die Auftragsausführung mit Fehler
abgebrochen wird.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 27
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Statusanzeige an der FC-Aufrufschnittstelle; Besonderheit der FC-Versionen (nur bei S7-300) *)


Bei den FCs AG_SEND (FC 5) und AG_RECV (FC 6) erhalten Sie in folgenden
Betriebsfällen die nachfolgend genannten Anzeigen:
● CP befindet sich in STOP;
● Verbindung ist nicht projektiert;
● Verbindung ist nicht aufgebaut
● Verbindung ist abgebrochen;
Anzeigen:
● AG_SEND:
DONE=0; ERROR=1; Status=8183H
● AG_RECV:
DONE=0; ERROR=0; Status=8180H
oder
DONE=0; ERROR=1; Status=8183H
*) gültig für FCs ab Version 4.0

Programmbausteine für SIMATIC NET S7-CPs


28 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

2.1.2 AG_SEND / AG_LSEND / AG_SSEND

2.1.2.1 Bedeutung und Aufruf - AG_SEND / AG_LSEND / AG_SSEND

Bedeutung des Bausteins


Der Programmbaustein AG_SEND / AG_LSEND / AG_SSEND übergibt Daten an den
Ethernet-CP zur Übertragung über eine projektierte Verbindung.
Der angegebene Datenbereich kann ein Merkerbereich oder ein Datenbausteinbereich sein.
Eine fehlerfreie Ausführung wird signalisiert, wenn der gesamte Anwenderdatenbereich über
Ethernet gesendet werden konnte.
Anmerkung:
Alle folgenden Angaben gelten, soweit nicht anders angegeben, gleichermaßen für die FCs
AG_SEND, AG_LSEND und AG_SSEND.

Aufrufschnittstelle
Aufrufschnittstelle in FUP-Darstellung

$*B6(1'$*B/6(1'$*B66(1'

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

$1< 6(1'

,17 /(1

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 5 ( //Bausteinaufruf
ACT := M 10.0, //Auftragsanstoß über Merkerbit
ID := MW 12, //Verbindungs-ID gemäß Projektierung
LADDR := W#16#0100, //=LADDR 256 dez. in Hardware-Konfiguration
SEND := P#db99.dbx10.0 byte 240, //Puffer mit Sendedaten
LEN := MW 14, //Längenangabe für Sendedaten
DONE := M 10.1, //Ausführungsanzeige
ERROR := M 10.2, //Fehleranzeige
STATUS := MW 16 ); //Statusanzeige

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 29
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Hinweis
Falls Sie den FC53 AG_SSEND nutzen wollen, dann müssen Sie in der
Verbindungsprojektierung bei den Verbindungseigenschaften die Betriebsart "SPEED
SEND/RECV" auswählen.

2.1.2.2 Arbeitsweise - AG_SEND / AG_LSEND / AG_SSEND

Arbeitsweise
Die folgenden Ablaufdarstellungen zeigen den normalen zeitlichen Ablauf einer mit
AG_SEND im Anwenderprogramm angestoßenen Datenübertragung.
Die Arbeitsweise des FC ist hierbei vom verwendeten CP-Typ abhängig:
● Fall 1: Ablauf bei FC5, FC50, FC53 in S7–400−CPs
In der S7–400 wird die Übertragung des gesamten Datenbereichs, unabhängig von
seiner Länge, nach dem erstmaligen Bausteinaufruf vom CP abgewickelt.
● Fall 2: Ablauf beim FC5 in S7–300−CPs
In der S7 300 erfolgt die Übertragung in mehreren Datensegmenten (jeweils 240 Byte
Nutzdaten) und erfordert für die vollständige Datenübertragung mehrere FC Aufrufe.

Programmbausteine für SIMATIC NET S7-CPs


30 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Fall 1: Ablauf bei FC5, FC50, FC53 in S7–400−CPs


Der Sendeauftrag wird ausgeführt, sobald der Parameter ACT = 1 übergeben wird.
Anschließend müssen Sie in mindestens einem weiteren Aufruf den Parameter ACT = 0
übergeben.
Die Statusanzeige in den Ausgabeparametern DONE, ERROR und STATUS wird bei jedem
Bausteinaufruf aktualisiert und kann ausgewertet werden. Zur weiteren Aktualisierung der
Statusanzeige ohne erneuten Sendeauftrag ist daher jeweils ein weiterer Bausteinaufruf mit
dem Parameter ACT = 0 abzusetzen.

$QZHQGHUSURJUDPP (WKHUQHW&3 .RPPXQLNDWLRQVSDUWQHU


&38=\NOXV

$*B6(1'PLW'DWHQಬ;ಬ
YHUVRUJHQ
$&7 

$*B6(1'
$XIWUDJO¦XIW

$*B6(1'YHUVRUJHQ
$&7 
žEHUWUDJXQJYRQಬ;ಬ
$*B6(1' ¾EHU(WKHUQHWO¦XIW

$XIWUDJO¦XIW

$*B6(1'
$XIWUDJIHUWLJRKQH)HKOHU 

=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH'21((552567$786

Fall 2: Ablauf beim FC5 in S7–300−CPs


Der Sendeauftrag wird begonnen, sobald der Parameter ACT = 1 übergeben wird.
Im Gegensatz zu Fall 1, erfordert das hier verwendete Protokoll für die Übertragung der
Datensegmente (240 Byte Nutzdaten) jeweils einen erneuten Aufruf des FCs.
Abhängig von der Länge der Nutzdaten müssen Sie daher den FC so lange mit ACT=0
erneut aufrufen, bis die vollständige Übertragung angezeigt wird; es ist mindestens 1
weiterer Aufruf erforderlich. Die Übertragung zum Kommunikationspartner erfolgt in
Segmenten von jeweils 240 Byte Länge.
Die Statusanzeige in den Ausgabeparametern DONE, ERROR und STATUS wird bei jedem
Bausteinaufruf aktualisiert und kann ausgewertet werden.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 31
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

$QZHQGHUSURJUDPP (WKHUQHW&3 .RPPXQLNDWLRQVSDUWQHU


&38=\NOXV

$*B6(1'PLW'DWHQಬ;ಬ
YHUVRUJHQ
$&7 

$*B6(1'
$XIWUDJO¦XIW žEHUQDKPHYRQ
%ORFN
LQ6HQGHSXIIHU
$*B6(1'YHUVRUJHQ
$&7 

$*B6(1'
$XIWUDJO¦XIW žEHUQDKPHYRQ
%ORFN
LQ6HQGHSXIIHU

$*B6(1'
$XIWUDJO¦XIW žEHUQDKPHYRQ
%ORFNQ
LQ6HQGHSXIIHU

žEHUWUDJXQJ 'DWHQVDW];ZLUG
¾EHU(WKHUQHWO¦XIW ¾EHUWUDJHQ
$*B6(1'
$XIWUDJIHUWLJRKQH)HKOHU

=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH'21((552567$786

Hinweis
Es ist prinzipiell möglich, den FC innerhalb eines CPU-Zyklus mehrfach aufzurufen, um die
Abwicklung eines Auftrages zu beschleunigen. Sie sollten jedoch bedenken, dass dadurch
der CPU-Zyklus entsprechend belastet wird (je nach CPU-Typ unterschiedlich)!

Programmbausteine für SIMATIC NET S7-CPs


32 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

2.1.2.3 Erläuterung der Formalparameter - AG_SEND / AG_LSEND / AG_SSEND

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion
AG_SEND / AG_LSEND / AG_SSEND:

Parameter Deklaration Datentyp Wertebereich Beschreibung


ACT INPUT BOOL 0,1 Beim FC-Aufruf mit ACT = 1 werden LEN Bytes aus
dem mit dem Parameter SEND angegebenen
Datenbereich gesendet.
Beim FC-Aufruf mit ACT = 0 werden die
Statusanzeigen DONE, ERROR und STATUS
aktualisiert.
ID INPUT INT 1, 2...64 Im Parameter ID wird die Verbindungsnummer der
(S7-400) Verbindung angegeben.
1, 2...16
(S7-300)
LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP mit STEP 7 wird die
Baugruppen-Anfangsadresse ausgegeben. Geben Sie
diese Adresse hier an.
SEND INPUT ANY Angabe von Adresse und Länge
Die Adresse des Datenbereiches verweist alternativ
auf:
 Merkerbereich
 Datenbausteinbereich
LEN INPUT INT bei ISO-Transport und Anzahl der Bytes, die mit dem Auftrag aus dem
ISO-on-TCP / TCP: Datenbereich gesendet werden sollen. Die Angabe
1, 2...8192 bzw. bis kann im Bereich von 1 bis "Längenangabe beim
"Längenangabe beim Parameter SEND" liegen.
Parameter SEND")  Bausteintyp beachten:
– bei S7300
bei UDP: Mit den aktuellen Versionen des FC AG_SEND
1, 2...2048 bzw. bis lassen sich bis zu 8192 Byte (2048 Byte bei
"Längenangabe beim UDP) übertragen.
Parameter SEND") – bei S7-400
Mit dem FC AG_SEND ist der Datenbereich
generell auf maximal 240 Byte beschränkt.

Bei S7-400 ist zu beachten:


 Erhöhte Performance bei kurzen Datensätzen:
Die Übertragung von Datensätzen bis zu 240 Byte
erfolgt mit erhöhter Performance! Dies gilt
unabhängig vom verwendeten Bausteintyp
(AG_SEND/AG_LSEND).
 Mit dem AG_SSEND ist der Datenbereich auf
maximal 1452 Byte beschränkt.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 33
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Parameter Deklaration Datentyp Wertebereich Beschreibung


DONE OUTPUT BOOL 0: Auftrag läuft Der Zustandsparameter zeigt an, ob der Auftrag
1: Auftrag ausgeführt fehlerfrei abgewickelt wurde.
Solange DONE = 0 kann kein weiterer Auftrag
angestoßen werden. DONE wird vom CP bei
Auftragsannahme auf 0 gesetzt
Zur Bedeutung im Zusammenhang mit den Parametern
ERROR und STATUS siehe unter Anzeigen AG_SEND,
AG_LSEND und AG_SSEND (Seite 34)
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den Parametern
DONE und STATUS siehe unter Anzeigen AG_SEND,
AG_LSEND und AG_SSEND (Seite 34)
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den Parametern
DONE und ERROR siehe unter Anzeigen AG_SEND,
AG_LSEND und AG_SSEND (Seite 34)

2.1.2.4 Anzeigen AG_SEND, AG_LSEND und AG_SSEND

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

DONE ERROR STATUS Bedeutung


1 0 0000H Auftrag fertig ohne Fehler.
0 0 0000H Kein Auftrag in Bearbeitung.
0 0 8181H Auftrag läuft.
0 1 7000H Die Anzeige ist nur bei S7-400 möglich: Der FC wurde mit ACT=0 aufgerufen; der
Auftrag wird jedoch nicht bearbeitet.
0 1 8183H Die Projektierung fehlt oder der ISO-/TCP-Dienst im Ethernet-CP ist noch nicht
gestartet.
0 1 8184H  Unzulässiger Datentyp für den Parameter SEND angegeben.
 Systemfehler (Der Quelldatenbereich ist fehlerhaft).
0 1 8185H Parameter LEN größer als Quell-Bereich SEND.

Programmbausteine für SIMATIC NET S7-CPs


34 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

DONE ERROR STATUS Bedeutung


0 1 8186H Parameter ID ungültig.
 ID != 1, 2....16 (S7-300).
 ID != 1, 2....64.(S7-400)
0 1 8302H keine Empfangsressourcen bei Ziel-Station, Empfänger-Station kann empfangene
Daten nicht schnell genug verarbeiten bzw. hat kein Empfangsressourcen
bereitgestellt.
0 1 8304H Die Verbindung ist nicht aufgebaut. Der Sendeauftrag sollte erst nach einer Wartezeit
>100 ms erneut abgesetzt werden.
0 1 8311H Zielstation ist unter der angegebenen Ethernet-Adresse nicht erreichbar.
0 1 8312H Ethernet-Fehler im CP.
0 1 8F22H Quell-Bereich ungültig. z.B.:
Bereich im DB nicht vorhanden
Parameter LEN < 0
0 1 8F24H Bereichsfehler beim Lesen eines Parameters.
0 1 8F28H Ausrichtungsfehler beim Lesen eines Parameters.
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F33H DB-Nummer Fehler.
0 1 8F3AH Bereich nicht geladen (DB).
0 1 8F42H Quittungsverzug beim Lesen eines Parameters aus dem
Peripheriebereich.
0 1 8F44H Der Zugriff auf einen in der Bausteinbearbeitung zu lesenden Parameter ist gesperrt.
0 1 8F7FH Interner Fehler. z.B. unzulässige ANY-Referenz
z.B. Parameter LEN = 0 .
0 1 8090H  Baugruppe mit dieser Baugruppen-Anfangsadresse nicht vorhanden;
 Der verwendete FC passt nicht zur verwendeten Systemfamilie (es sind
unterschiedliche FCs für S7-300 und S7-400 zu verwenden).
0 1 8091H Baugruppen-Anfangsadresse nicht auf Doppel-Wort-Raster.
0 1 8092H In ANY-Referenz ist eine Typangabe ungleich BYTE angegeben.
(nur bei S7-400)
0 1 80A4H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut.
(bei neueren CPU-Ausgabeständen)
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H Die Längenangabe (im Parameter LEN) ist falsch.
0 1 80B2H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut.
0 1 80C0H Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Die Betriebsmittel (Speicher) der CPU sind temporär belegt.
0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist eine Wiederholung im
Anwenderprogramm sinnvoll.)
0 1 80D2H Baugruppen-Anfangsadresse ist falsch.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 35
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

2.1.3 AG_RECV / AG_LRECV / AG_SRECV

2.1.3.1 Bedeutung und Aufruf - AG_RECV / AG_LRECV / AG_SRECV

Bedeutung des Bausteins


Der Programmbaustein AG_RECV / AG_LRECV / AG_SRECV übernimmt vom Ethernet-CP
die über eine projektierte Verbindung übertragenen Daten.
Der für die Datenübernahme angegebene Datenbereich kann ein Merkerbereich oder ein
Datenbausteinbereich sein.
Eine fehlerfreie Ausführung wird signalisiert, wenn die Daten vom Ethernet-CP übernommen
werden konnten.
Anmerkung:
Alle folgenden Angaben gelten, soweit nicht anders angegeben, gleichermaßen für die FCs
AG_RECV und AG_LRECV / AG_SRECV.

Aufruf
Aufrufschnittstelle in FUP-Darstellung

$*B5(&9$*B/5(&9$*B65(&9

1'5 %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

$1< 5(&9 /(1 ,17

Beispiel in AWL-Darstellung

AWL Erläuterungen
call fc 6 ( //Bausteinaufruf
ID := MW 40, //Verbindungs-ID gemäß Projektierung
LADDR := W#16#0100, //=LADDR 256 dez. in Hardware-Konfiguration
RECV := P#M 0.0 BYTE 100, //Puffer für Empfangsdaten
NDR := DB 110.DBX 0.6, //Empfangsanzeige
ERROR := DB 110.DBX 0.7, //Fehleranzeige
STATUS := DB 110.DBW 2, //Statusanzeige
LEN := DB 110.DBW 4 ); //Empfangsdatenlänge

Programmbausteine für SIMATIC NET S7-CPs


36 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Hinweis
Falls Sie den FC63 AG_SRECV nutzen wollen, dann müssen Sie in der
Verbindungsprojektierung bei den Verbindungseigenschaften die Betriebsart "SPEED
SEND/RECV" auswählen.

2.1.3.2 Arbeitsweise AG_RECV / AG_LRECV / AG_SRECV

Arbeitsweise
Die folgenden Ablaufdarstellungen zeigen den normalen zeitlichen Ablauf einer mit
AG_RECV im Anwenderprogramm angestoßenen Datenübernahme.
Jeder AG_RECV Auftrag des Anwenderprogrammes wird mit einer Anzeige in den
Ausgabeparametern NDR, ERROR und STATUS vom Ethernet-CP quittiert.
Die Arbeitsweise des FC ist hierbei vom verwendeten CP-Typ und von den
Verbindungstypen abhängig:

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 37
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

● Fall 1: Ablauf beim FC6 in S7-300 CPs


Bei den aktuellen CP-Typen steht eine optimierte Datenübertragung für die
SEND/RECEIVE-Schnittstelle zur Verfügung. Diese ermöglicht insbesondere bei
längeren Datensätzen einen wesentlich höheren Datendurchsatz an der Schnittstelle
zwischen CPU und CP.
● Fall 2: Ablauf bei FC6 und FC60 in S7-400 CPs
Beim FC6 / FC60 AG_RECV unterscheidet sich das Verhalten in der S7 400 je nach
verwendetem Protokoll.
– Fall 2a: Ablauf bei ISO−Transport−, ISO−on−TCP−, UDP−Verbindungen
Bei diesen Verbindungstypen wird die Übertragung des Datenbereichs je nach Länge
durch ein− oder mehrmaligen Bausteinaufruf des FC6 /FC60 vom CP abgewickelt.
– Fall 2b: Ablauf bei TCP-Verbindungen
Bei der TCP-Verbindung ist die Längenangabe im ANY-Pointer des Parameters
RECV maßgebend. Ein FC6 /FC60 -Auftrag wird mit der Anzeige NDR=1
abgeschlossen, sobald eine der Längenangabe entsprechende Datenmenge in den
Empfangspuffer geschrieben wurde.
● Fall 3: Ablauf bei FC63 in S7-400 CPs
Beim FC63 AG_SRECV unterscheidet sich das Verhalten in der S7 400 je nach
verwendetem Protokoll.
– Fall 3a: Ablauf bei ISO−Transport−, ISO−on−TCP−, UDP−Verbindungen
Bei diesen Verbindungstypen wird die Übertragung des gesamten Datenbereichs,
unabhängig von seiner Länge, nach dem erstmaligen Bausteinaufruf vom CP
abgewickelt.
– Fall 3b: Ablauf bei TCP-Verbindungen
Bei der TCP-Verbindung werden mit jedem Aufruf die im CP vorliegenden Daten bis
zur maximal vorgegebenen Auftragslänge übernommen.
Der Aufruf ist zu wiederholen, bis ein Datensatz vollständig und konsistent im
Empfangspuffer abgelegt wurde. Die vollständige Übernahme des Datensatzes wird
bei einem der weiteren FC−Aufrufe mit dem Parameter NDR=1 angezeigt.

Programmbausteine für SIMATIC NET S7-CPs


38 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Fall 1: Ablauf beim FC6 in S7-300 CPs


Mit dem Aufruf des FC6 stellt das Anwenderprogramm den Puffer für die Empfangsdaten
bereit und veranlasst den CP, empfangene Daten dort einzutragen.
Das hier verwendete Protokoll erfordert für die Übertragung in den Empfangspuffer jeweils
einen erneuten Aufruf des FC für jedes Datensegment (240 Byte Nutzdaten).
Abhängig von der Länge der Nutzdaten muss der FC so oft aufrufen, bis die vollständige
Übertragung im Parameter NDR=1 angezeigt wird.
Die Statusanzeige in den Ausgabeparametern NDR, ERROR und STATUS wird bei jedem
Bausteinaufruf aktualisiert und kann ausgewertet werden.

$QZHQGHUSURJUDPP (WKHUQHW&3 .RPPXQLNDWLRQVSDUWQHU


&38=\NOXV 

$*B5(&9
(VOLHJHQQRFKNHLQH'DWHQYRU 

žEHUWUDJXQJYRQಬ$ಬ
$*B5(&9 ]%%\WH ¾EHU
(WKHUQHWO¦XIW
(VOLHJHQQRFKNHLQH'DWHQYRU 

$*B5(&9
$XIWUDJIHUWLJRKQH)HKOHU 

(PSIDQJHQH'DWHQಬ$ಬ
HQWJHJHQQHKPHQ
žEHUWUDJXQJYRQಬ%ಬ
DXVZHUWHQ
]%%\WH ¾EHU
(WKHUQHWO¦XIW
$*B5(&9
(VOLHJHQQRFKNHLQH'DWHQYRU 

$*B5(&9
$XIWUDJIHUWLJRKQH)HKOHU 

(PSIDQJHQH'DWHQಬ%ಬ
HQWJHJHQQHKPHQ
DXVZHUWHQ

$*B5(&9
žEHUWUDJXQJYRQಬ&ಬ
¾EHU(WKHUQHWO¦XIW

=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH1'5(552567$786

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 39
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Fall 2a: Ablauf bei FC6 und FC60 in S7-400 CPs (bei ISO−Transport−, ISO−on−TCP−, UDP-
Verbindungen)
Mit dem Aufruf des FC stellt das Anwenderprogramm den Puffer für die Empfangsdaten
bereit und veranlasst den CP, alle verfügbaren Daten dort einzutragen.
Sobald ein Datensatz vollständig und konsistent im Empfangspuffer abgelegt wurde, wird
dies bei einem der weiteren FC−Aufrufe im Parameter mit NDR=1 angezeigt.
Die Statusanzeige in den Ausgabeparametern NDR, ERROR und STATUS wird bei jedem
Bausteinaufruf aktualisiert und kann ausgewertet werden.

$QZHQGHUSURJUDPP (WKHUQHW&3 .RPPXQLNDWLRQVSDUWQHU


&38=\NOXV

$*B5(&9 žEHUWUDJXQJYRQಬ$ಬ
(VOLHJHQQRFKNHLQH'DWHQYRU ¾EHU(WKHUQHWO¦XIW

$*B5(&9
$XIWUDJIHUWLJRKQH)HKOHU

(PSIDQJHQH'DWHQಬ$ಬ
HQWJHJHQQHKPHQ
DXVZHUWHQ
žEHUWUDJXQJYRQಬ%ಬ
¾EHU(WKHUQHWO¦XIW
$*B5(&9
(VOLHJHQQRFKNHLQH'DWHQYRU

$*B5(&9
$XIWUDJIHUWLJRKQH)HKOHU

(PSIDQJHQH'DWHQಬ%ಬ
HQWJHJHQQHKPHQ
DXVZHUWHQ

$*B5(&9
žEHUWUDJXQJYRQಬ&ಬ
¾EHU(WKHUQHWO¦XIW

=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH'21((552567$786

Programmbausteine für SIMATIC NET S7-CPs


40 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Fall 2b: Ablauf bei FC6 / FC60 in S7-400 CPs (nur bei TCP-Verbindungen)
Bei der TCP-Verbindung ist die Längenangabe im ANY-Pointer des Parameters RECV
maßgebend. Ein FC6 /FC60 -Auftrag wird mit der Anzeige NDR=1 abgeschlossen, sobald
eine der Längenangabe entsprechende Datenmenge in den Empfangspuffer geschrieben
wurde.
Das Ablaufbeispiel zeigt den Fall, dass bei einem FC60 die Längenangabe im ANY-Pointer
auf 400 Byte parametriert wurde.

$QZHQGHUSURJUDPP (WKHUQHW&3 .RPPXQLNDWLRQVSDUWQHU


&38=\NOXV 

$*B5(&9
(VOLHJHQQRFKNHLQH'DWHQYRU 

žEHUWUDJXQJYRQಬ$ಬ
$*B5(&9 ]%%\WH ¾EHU
(WKHUQHWO¦XIW
(VOLHJHQQRFKNHLQH'DWHQYRU 

$*B5(&9
$XIWUDJIHUWLJRKQH)HKOHU 

(PSIDQJHQH'DWHQಬ$ಬ
HQWJHJHQQHKPHQ
žEHUWUDJXQJYRQಬ%ಬ
DXVZHUWHQ
]%%\WH ¾EHU
(WKHUQHWO¦XIW
$*B5(&9
(VOLHJHQQRFKNHLQH'DWHQYRU 

$*B5(&9
$XIWUDJIHUWLJRKQH)HKOHU 

(PSIDQJHQH'DWHQಬ%ಬ
HQWJHJHQQHKPHQ
DXVZHUWHQ

$*B5(&9
žEHUWUDJXQJYRQಬ&ಬ
¾EHU(WKHUQHWO¦XIW

=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH1'5(552567$786

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 41
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Fall 3a: Ablauf beim FC63 in S7-400 CPs (bei ISO−Transport−, ISO−on−TCP−, UDP-Verbindungen)
Mit dem Aufruf des FC stellt das Anwenderprogramm den Puffer für die Empfangsdaten
bereit und veranlasst den CP, alle Daten bis zum Ende der Übertragung dort einzutragen,
d. h. wenn die im ANY-Pointer angegebene Länge erreicht ist.
Sobald der Datensatz vollständig und konsistent im Empfangspuffer abgelegt wurde, wird
dies bei einem der weiteren FC−Aufrufe im Parameter NDR=1 angezeigt.
Die maximale Länge der Empfangsdaten beträgt 1452 Byte. Die Größe des
Empfangspuffers muss immer auf diesen Wert eingestellt sein.
Die Statusanzeige in den Ausgabeparametern NDR, ERROR und STATUS wird bei jedem
Bausteinaufruf aktualisiert und kann ausgewertet werden.

$QZHQGHUSURJUDPP (WKHUQHW&3 .RPPXQLNDWLRQVSDUWQHU


&38=\NOXV 

$*B5(&9
žEHUWUDJXQJYRQಬ$ಬ
¾EHU(WKHUQHWO¦XIW
$OOH'DWHQDXVGHP
'DWHQVDW]$ZHUGHQ
LP3XIIHUDEJHOHJW
$XIWUDJIHUWLJRKQH)HKOHU 

(PSIDQJHQH'DWHQಬ$ಬ
HQWJHJHQQHKPHQ
DXVZHUWHQ

=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH1'5(552567$786

Programmbausteine für SIMATIC NET S7-CPs


42 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Fall 3b: Ablauf beim FC63 in S7-400 CPs (nur bei TCP-Verbindungen)
Mit dem Aufruf des FC stellt das Anwenderprogramm den Puffer für die Empfangsdaten
bereit und veranlasst den CP, die derzeit verfügbaren Daten dort einzutragen. Solange die
Daten nicht vollständig im Empfangspuffer abgelegt wurden, erfolgt die Meldung "Auftrag
läuft" (8181H).
Mit dem erneuten Aufruf des FC werden die dann aktuell verfügbaren Daten im
Empfangspuffer abgelegt. Wenn der Datensatz vollständig und konsistent im
Empfangspuffer abgelegt wurde, wird dies bei einem der weiteren FC−Aufrufe im Parameter
NDR=1 angezeigt.
Die maximale Länge der Empfangsdaten beträgt 1452 Byte. Die Größe des
Empfangspuffers muss immer auf diesen Wert eingestellt sein.
Die Statusanzeige in den Ausgabeparametern NDR, ERROR und STATUS wird bei jedem
Bausteinaufruf aktualisiert und kann ausgewertet werden.

$QZHQGHUSURJUDPP (WKHUQHW&3 .RPPXQLNDWLRQVSDUWQHU


&38=\NOXV 

$*B5(&9

67$786 
žEHUWUDJXQJYRQಬ$ಬ
¾EHU(WKHUQHWO¦XIW

$*B5(&9
9HUI¾JEDUH'DWHQLQGHQ3XIIHU $XIWUDJIHUWLJRKQH)HKOHU

(PSIDQJHQH'DWHQಬ$ಬ
HQWJHJHQQHKPHQ
DXVZHUWHQ

=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH1'5(552567$786

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 43
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

2.1.3.3 Erläuterung der Formalparameter - AG_RECV / AG_LRECV / AG_SRECV

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion
AG_RECV / AG_LRECV / AG_SRECV:

Parameter Deklaration Datentyp Wertebereich Beschreibung


ID INPUT INT 1, 2...64 (S7-400) Im Parameter ID wird die Verbindungsnummer der
1, 2...16 (S7-300) ISO-Transport-Verbindung angegeben.
LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP mit STEP 7 wird die
Baugruppen-Anfangsadresse ausgegeben. Geben Sie
diese Adresse hier an.
RECV INPUT ANY Angabe von Adresse und Länge
Die Adresse des Datenbereiches verweist alternativ
auf:
 Merkerbereich
 Datenbausteinbereich
Beachten Sie für die Längenangabe:
Die Übertragung von Datensätzen bis zu 212 Byte
erfolgt mit erhöhter Performance, wenn Sie die
Längenangabe am Parameter RECV ebenfalls auf 212
Byte beschränken!
Beachten Sie beim FC63 AG_SRECV:
Beim FC63 AG_SRECV müssen Sie RECV immer auf
die maximale Empfangspufferlänge von 1452 Byte
setzen. Andernfalls kann es in bestimmten Fällen zu
folgendem Fehler kommen:
NDR=0; ERROR=1; STATUS=8185H
NDR OUTPUT BOOL 0: - Der Parameter zeigt an, ob neue Daten übernommen
1: neue Daten wurden.
Zur Bedeutung im Zusammenhang mit den Parametern
ERROR und STATUS siehe unter Anzeigen
AG_RECV, AG_LRECV und AG_SRECV (Seite 45)
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den Parametern
NDR und STATUS siehe unter Anzeigen AG_RECV,
AG_LRECV und AG_SRECV (Seite 45)

Programmbausteine für SIMATIC NET S7-CPs


44 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Parameter Deklaration Datentyp Wertebereich Beschreibung


STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den Parametern
NDR und ERROR siehe unter Anzeigen AG_RECV,
AG_LRECV und AG_SRECV (Seite 45)
LEN OUTPUT INT bei ISO-Transport und Gibt die Anzahl der Bytes an, die vom Ethernet-CP in
ISO-on-TCP: den Datenbereich übernommen wurden.
1, 2...8192 Bausteintyp beachten:
 bei S7-300
bei UDP: Mit den aktuellen Versionen des FC AG_RECV
1, 2...2048 lassen sich bis zu 8192 Byte (2048 Byte bei UDP)
übertragen.
 bei S7-400
Mit dem FC AG_RECV ist der Datenbereich
generell auf max. 240 Byte beschränkt.
Mit dem FC AG_SRECV ist der Datenbereich auf
max. 1452 Byte beschränkt.

2.1.3.4 Anzeigen AG_RECV, AG_LRECV und AG_SRECV

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus NDR, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

Tabelle 2- 1 Anzeigen AG_RECV / AG_LRECV / AG_SRECV

NDR ERROR STATUS Bedeutung


1 0 0000H Neue Daten übernommen.
0 0 8180H Es liegen noch keine Daten vor (nicht bei AG_SRECV).
0 0 8181H Auftrag läuft.
0 1 8183H  Die Projektierung fehlt;
 Der ISO-Transport-Dienst im Ethernet-CP ist noch nicht gestartet;
 Die Verbindung ist nicht aufgebaut.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 45
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

NDR ERROR STATUS Bedeutung


0 1 8184H  Unzulässiger Datentyp für den Parameter RECV angegeben;
 Systemfehler.
0 1 8185H Ziel-Puffer (RECV)ist zu klein.
0 1 8186H Parameter ID ungültig.
ID != 1, 2....16 (S7-300).
ID != 1, 2....64.(S7-400)
0 1 8304H Die Verbindung ist nicht aufgebaut. Der Empfangsauftrag sollte erst nach einer
Wartezeit >100 ms erneut abgesetzt werden.
0 1 8F23H Quell-Bereich ungültig. z. B.:
Bereich im DB nicht vorhanden.
0 1 8F25H Bereichsfehler beim Schreiben eines Parameters.
0 1 8F29H Ausrichtungsfehler beim Schreiben eines Parameters
0 1 8F30H Parameter liegt im schreibgeschützten 1. aktuellen Datenbaustein.
0 1 8F31H Parameter liegt im schreibgeschützten 2. aktuellen Datenbaustein.
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F33H DB-Nummer Fehler.
0 1 8F3AH Zielbereich nicht geladen (DB).
0 1 8F43H Quittungsverzug beim Schreiben eines Parameters in den
Peripheriebereich.
0 1 8F45H Adresse des zu schreibenden Parameters in der Zugriffsspur gesperrt.
0 1 8F7FH Interner Fehler. z.B. unzulässige ANY-Referenz.
0 1 8090H  Baugruppe mit dieser Baugruppen-Anfangsadresse nicht vorhanden oder CPU in
STOP;
 Der verwendete FC passt nicht zur verwendeten Systemfamilie (es sind
unterschiedliche FCs für S7-300 und S7-400 zu verwenden).
0 1 8091H Baugruppen-Anfangsadresse nicht auf Doppel-Wort-Raster.
0 1 8092H In ANY-Referenz ist eine Typangabe ungleich BYTE angegeben.
(nur bei S7-400)
0 1 80A0H Negative Quittung beim Lesen von Baugruppe.
0 1 80A4H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut.
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H Mögliche Ursachen:
 Der Zielbereich ist ungültig.
 Der Zielbereich ist zu klein.

Der Zielbereich für die Empfangsdaten wurde nicht ausreichend bemessen.


Abhilfe: Führen sie einen weiteren Empfangsaufruf mit maximaler
Empfangspuffergröße durch. Dies gilt unabhängig vom Verbindungstyp (Uni-/Multi-
/Broadcast) und von der Gerätefamilie (S7-300 / S7-400).
0 1 80B2H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut.
0 1 80C0H Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Die Betriebsmittel (Speicher) der CPU sind temporär belegt.

Programmbausteine für SIMATIC NET S7-CPs


46 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

NDR ERROR STATUS Bedeutung


0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist eine Wiederholung im
Anwenderprogramm sinnvoll.)
0 1 80D2H Baugruppen-Anfangsadresse ist falsch.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 47
Programmbausteine für Industrial Ethernet
2.2 Programmbausteine zur Zugriffskoordinierung bei FETCH/WRITE

2.2 Programmbausteine zur Zugriffskoordinierung bei FETCH/WRITE

2.2.1 Programmbausteine und ihre Anwendung in der Übersicht

Übersicht
Für die Funktion FETCH/WRITE stehen folgende Programmbausteine für die
Zugriffskoordinierung zur Verfügung:

Programmbaustein verwendbar bei Bedeutung


S7-300 S7-400
AG_LOCK (FC7) x x Sperren des externen Datenzugriffes
mittels FETCH/WRITE.
AG_UNLOCK (FC8) x x Freigeben des externen
Datenzugriffes mittels
FETCH/WRITE.

Projektierung beachten
Wenn Sie die Programmbausteine AG_LOCK und AG_UNLOCK verwenden, müssen Sie für
CPs in S7-400 Stationen folgende Angaben in der Projektierung vornehmen:
● Unter "Eigenschaften > Adressen"
Es ist die Option "Adresseinstellung für LOCK/UNLOCK" zu wählen, sofern diese
Auswahlmöglichkeit besteht.

Arbeitsweise
Mit diesen Programmbausteinen haben Sie die Möglichkeit, den Zugriff auf
Systemspeicherbereiche so zu koordinieren, dass keine inkonsistenten Daten erzeugt und
übertragen werden. Die Kontrolle geht hierbei vom Anwenderprogramm in der S7-CPU aus,
das über den AG_LOCK-Aufruf einen externen FETCH/WRITE-Zugriff bei Bedarf sperren
kann. Nach einer bestimmten Zeit oder nachdem der eigene Schreib-/Lesezugriff
abgeschlossen ist, kann mit einem AG_UNLOCK-Auftrag der externe Zugriff wieder
freigegeben werden.
Zusätzlich kann ausgenutzt werden, dass die Zugriffssperre nur auf der im Aufruf
angegebene FETCH/WRITE-Verbindung gilt. Falls mehrere FETCH/WRITE-Verbindungen
projektiert werden, können diese dann beispielsweise gezielt für bestimmte
Systemspeicherbereiche genutzt werden und es kann eine entsprechend selektive
Zugriffskoordination realisiert werden.
Die folgende Ablaufdarstellung zeigt den üblichen zeitlichen Ablauf einer mit AG_LOCK und
AG_UNLOCK gesteuerten Speicherzugriffskoordination im Anwenderprogramm.

Programmbausteine für SIMATIC NET S7-CPs


48 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.2 Programmbausteine zur Zugriffskoordinierung bei FETCH/WRITE

$QZHQGHUSURJUDPP (WKHUQHW&3 .RPPXQLNDWLRQVSDUWQHU


&38=\NOXV

^
$*B/2&.
=\NOXVQ /2&.(' 

)(7&+:5,7(=XJULII

^
DXI'%[O¦XIW
$*B/2&.
=\NOXVQ
/2&.(' 

=\NOXVQ

^
 'DWHQEHDUEHLWXQJ
LQ'%[
$*B/2&.
/2&.('  )(7&+:5,7(

)(7&+:5,7(DEJHZLHVHQ

^
$*B81/2&.

=\NOXVQP
67$786 [
)(7&+:5,7(=XJULII
DXI'%[O¦XIW

=HLW =HLW =HLW

Der Sperrauftrag muss zunächst im Anwenderprogramm über die Anzeige im


Rückgabeparameter LOCKED überwacht werden. Solange LOCKED=0 angezeigt wird,
muss von einem noch laufenden externen FETCH/WRITE-Zugriff ausgegangen werden.
Mit LOCKED=1 wird angezeigt, dass die Sperre aktiv ist; Daten können jetzt vom
Anwenderprogramm aus verändert werden.
Die Statusanzeige wird bei jedem Bausteinaufruf aktualisiert.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 49
Programmbausteine für Industrial Ethernet
2.2 Programmbausteine zur Zugriffskoordinierung bei FETCH/WRITE

2.2.2 AG_LOCK

2.2.2.1 Bedeutung und Aufruf - AG_LOCK

Bedeutung des Bausteins


Mit Hilfe des Bausteins AG-LOCK wird der Datenaustausch mittels FETCH bzw. WRITE
über die durch den Parameter ID selektierte Verbindung gesperrt. Der Ausgang LOCKED
zeigt an, ob das Sperren erfolgreich war oder nicht. War das Sperren nicht erfolgreich, muss
der Auftrag in einem folgenden CPU-Zyklus erneut angestoßen werden.
Der Ausgang STATUS gibt den Zustand des CPs für diese Verbindung an.

Aufruf
Aufrufschnittstelle in FUP-Darstellung

$*B/2&.

,' /2&.('

/$''5 67$786

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 7 ( //Bausteinaufruf
ID := DB 100.DBW 2, //Verbindungs-ID gemäß Projektierung
LADDR := W#16#0100, //=LADDR 256 dez. in Hardware-Konfiguration
LOCKED := DB 100.DBX 0.6, //Zustandsanzeige der Zugriffssperre
STATUS := DB 100.DBW 4 ); //Statusanzeige

Programmbausteine für SIMATIC NET S7-CPs


50 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.2 Programmbausteine zur Zugriffskoordinierung bei FETCH/WRITE

2.2.2.2 Erläuterung der Formalparameter - AG_LOCK

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion AG_LOCK:

Parameter Deklaration Datentyp Wertebereich Beschreibung


ID INPUT INT 1,2...16 bei S7-300 Im Parameter ID wird die Verbindungsnummer der
1,2...64 bei S7-400 Verbindung angegeben.
LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP mit STEP 7 wird die
Baugruppen-Anfangsadresse ausgegeben. Geben Sie
diese Adresse hier an.
LOCKED OUTPUT BOOL 0: (noch) nicht gesperrt Anzeige des Zustandes für die auf der angegebenen
1: gesperrt FETCH/WRITE-Verbindung angeforderte
Zugriffssperre.
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung siehe unter
Anzeigen des Bausteins AG_LOCK (Seite 51)

2.2.2.3 Anzeigen des Bausteins AG_LOCK

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeigen
STATUS.

Tabelle 2- 2 Anzeigen AG_LOCK

STATUS Bedeutung
7000H CP bearbeitet keinen Auftrag
7001H FETCH läuft
7002H WRITE läuft
8183H FETCH/WRITE für diese Verbindung nicht projektiert (nur bei S7-400)
8186H ID-Nummer nicht im erlaubten Bereich (z.B. 1...64 bei S7-400 Industrial Ethernet CPs)
80A4H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut. (bei neueren CPU-Ausgabeständen)
80B0H Baugruppe kennt den Datensatz nicht.
80B1H Die Längenangabe (im Parameter LEN) ist falsch.
80B2H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut.
80C0H Datensatz kann nicht gelesen werden.
80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
80C2H Es liegt ein Auftragsstau vor.
80C3H Die Betriebsmittel (Speicher) der CPU sind temporär belegt.
80C4H Kommunikationsfehler (tritt temporär auf; daher ist eine Wiederholung im Anwenderprogramm sinnvoll.)
80D2H Baugruppen-Anfangsadresse ist falsch.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 51
Programmbausteine für Industrial Ethernet
2.2 Programmbausteine zur Zugriffskoordinierung bei FETCH/WRITE

2.2.3 AG_UNLOCK

2.2.3.1 Bedeutung und Aufruf - AG_UNLOCK

Bedeutung des Bausteins


Mit Hilfe des Bausteins AG_UNLOCK geben Sie den externen Zugriff auf
Anwenderspeicherbereiche der S7-CPU frei. Mit FETCH bzw. WRITE ist anschließend der
Zugriff über die durch den Parameter ID selektierte Verbindung möglich.
Vorausgegangen ist eine Zugriffssperre durch AG_LOCK.

Aufruf
Aufrufschnittstelle in FUP-Darstellung

$*B81/2&.

,' 67$786

/$''5

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 8 ( //Bausteinaufruf
ID := DB 100.DBW 2, //Verbindungs-ID gemäß Projektierung
LADDR := W#16#0100, //=LADDR 256 dez. in Hardware-Konfiguration
STATUS := DB 100.DBW 4 ); //Statusanzeige

Arbeitsweise
Um die Verbindung wieder freizugeben, muss der FC das LOCK-Anforderungsbit wieder
zurücksetzen. Der FC zeigt außerdem den aktuellen Status mit Fehlermeldungen an.

Programmbausteine für SIMATIC NET S7-CPs


52 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.2 Programmbausteine zur Zugriffskoordinierung bei FETCH/WRITE

2.2.3.2 Erläuterung der Formalparameter - AG_UNLOCK

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion AG_UNLOCK:

Parameter Deklaration Datentyp Wertebereich Beschreibung


ID INPUT INT 1,2...16 bei S7-300 Im Parameter ID wird die Verbindungsnummer der
1,2...64 bei S7-400 Verbindung angegeben. (siehe Projektierung)
LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP mit STEP 7 wird die
Baugruppen-Anfangsadresse ausgegeben. Geben Sie
diese Adresse hier an.
STATUS OUTPUT WORD Statusanzeige:
Zur Bedeutung siehe unter
Anzeigen des Bausteins AG_UNLOCK (Seite 53)

2.2.3.3 Anzeigen des Bausteins AG_UNLOCK

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige
STATUS.

Tabelle 2- 3 Anzeigen AG_UNLOCK

STATUS Bedeutung
7000H CP bearbeitet keinen Auftrag
7001H FETCH läuft
7002H WRITE läuft
8183H FETCH/WRITE für diese Verbindung nicht projektiert (nur bei S7-400)
8186H ID-Nummer nicht im erlaubten Bereich (z.B. 1...64 bei S7-400 Industrial Ethernet CPs)
80A4H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut. (bei neueren CPU-Ausgabeständen)
80B0H Baugruppe kennt den Datensatz nicht.
80B1H Die Längenangabe (im Parameter LEN) ist falsch.
80B2H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut.
80C0H Datensatz kann nicht gelesen werden.
80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
80C2H Es liegt ein Auftragsstau vor.
80C3H Die Betriebsmittel (Speicher) der CPU sind temporär belegt.
80C4H Kommunikationsfehler (tritt temporär auf; daher ist eine Wiederholung im Anwenderprogramm sinnvoll.)
80D2H Baugruppen-Anfangsadresse ist falsch.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 53
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

2.3.1 AG_CNTRL

2.3.1.1 Bedeutung und Aufruf - AG_CNTRL

Bedeutung und Arbeitsweise


Mit dem Programmbaustein AG_CNTRL besteht die Möglichkeit, Verbindungen zu
diagnostizieren. Bei Bedarf können Sie über den AG_CNTRL einen erneuten
Verbindungsaufbau initialisieren.

Hinweis
AG_CNTRL und AG_CNTEX
Der Programmbaustein AG_CNTEX bietet Erweiterungen gegenüber dem
Programmbaustein AG_CNTRL.
Sämtliche Funktionen des AG_CNTRL sind im AG_CNTEX enthalten und an der
Schnittstelle im Anwenderprogramm identisch nutzbar.

Folgende Aktionen können über parametrierbare Kommandos ausgeführt werden:


● Auslesen von Verbindungsinformationen
Sie können anhand von Status-Informationen für alle oder einzelne Verbindungen des
CP entscheiden, ob ein Rücksetzen von Verbindungen sinnvoll ist.
● Rücksetzen von projektierten Verbindungen
Sie können einzelne Verbindungen oder alle Verbindungen eines CPs zurückzusetzen.
● Aktive Verbindung abbrechen und erneut aufbauen
Die Kommandos des FC-Bausteins AG_CNTRL sind nur für SEND/RECV–Verbindungen
zulässig, die auf die Protokolle ISO / RFC / TCP / UDP aufsetzen.

Programmbausteine für SIMATIC NET S7-CPs


54 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

Aufrufschnittstelle
Aufrufschnittstelle in FUP-Darstellung

$*B&175/

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

,17 &0' 5(68/7 ':25'

5(68/7 ':25'

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 10 ( //AG_CNTRL Bausteinaufruf
ACT := M1.0, //Auftragsanstoß
ID := MW8, //Verbindungs-ID gemäß Projektierung
LADDR := W#16#100, //Baugruppenadresse gemäß Hardware-Konfiguration
CMD := MW6, //Kommandokennung
DONE := M20.1, //Ausführungsanzeige
ERROR := M20.2, //Fehleranzeige
STATUS := MW22, //Statusanzeige
RESULT1 := MD24, //Auftragsergebnis 1
RESULT2 := MD28 ); //Auftragsergebnis 2

Siehe auch
FAQ unter Beitrags-ID 33414377
(http://support.automation.siemens.com/WW/view/de/33414377)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 55
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

2.3.1.2 Arbeitsweise AG_CNTRL

Arbeitsweise
Die folgende Ablaufdarstellung zeigt einen typischen Ablauf von AG_CNTRL-Aufträgen im
Anwenderprogramm.

$QZHQGHUSURJUDPP (WKHUQHW&3
&38=\NOXV 

(VZLUGHLQ(UHLJQLVHUNDQQW
GDVGHQ$EEUXFKXQG1HXDXI
EDXHLQHU9HUELQGXQJVLQQYROO
PDFKW

$*B&175/YHUVRUJHQ
I¾U6WDWXVDEIUDJH
$&7 &0' 
,'  9HUELQGXQJ

$*B&175/ 6WDWXVDEIUDJH 
6WDWXVDQIUDJHI¾U9HUELQGXQJ
6WDWXV9HUELQGXQJ,'  ZLUGTXLWWLHUW

$*B&175/YHUVRUJHQ
I¾U5HVHW
$&7 &0' 
,'  9HUELQGXQJ

$*B&175/ 5HVHW.RPPDQGR 
4XLWWXQJ$XIWUDJVDQQDKPH 5HVHW$QIRUGHUXQJO¦XIW
5(68/7ಯ9HUELQGXQJVDEEDX 5HVHW.HQQXQJ %LWLQ
DQJHVWR¡HQರ 5(68/7 ZLUGJHVHW]W

(LQWUDJ'LDJQRVHSXIIHU

9HUELQGXQJZLUGDEJHEDXW
$*B&175/YHUVRUJHQ XQGQHXLQLWLDOLVLHUW
I¾U6WDWXVDEIUDJH 5HVHW.HQQXQJ %LWLQ
$&7 &0'  5(68/7 EOHLEWJHVHW]W
,'  9HUELQGXQJ

$*B&175/ 6WDWXVDEIUDJH 
6WDWXVDQIUDJHZLUGTXLWWLHUW
GDQDFKZLUGGDV5HVHW
6WDWXV9HUELQGXQJ,' 
.HQQXQJ %LWLQ5(68/7
4XLWWXQJ ]XU¾FNJHVHW]W
5(68/7%+
ಯ5HVHWZXUGHGXUFKJHI¾KUWರ

=HLW =HLW


3DUDPHWHU¾EHUJDEH'21((552567$786XQG5(68/7

Der Ablauf zeigt, wie zunächst der Verbindungsstatus abgefragt und in einem zweiten
Auftrag der Verbindungsabbau mittels Reset-Kommando veranlasst wird.

Programmbausteine für SIMATIC NET S7-CPs


56 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

Im CP wird hierbei die Reset-Kennung (Bit15 in RESULT1) gesetzt. Bei einer späteren
Statusabfrage kann somit erkannt werden, ob die Verbindung aufgrund eines Reset-
Auftrages zurückgesetzt worden war. Erst nach dieser Statusabfrage (oder aufgrund eines
expliziten Kommandos CN_CLEAR_RESET) wird diese Reset-Kennung im CP
zurückgesetzt

ACHTUNG

Beim Bausteinaufruf muss ACT = 1 gesetzt sein, beim Aufruf mit ACT=0 erfolgt kein
Funktionsaufruf und der Baustein wird sofort wieder verlassen.
Da beim FC10 das Auftragsergebnis synchron zum Aufruf zur Verfügung gestellt wird, kann
er im selben Zyklus erneut aufgerufen werden.

2.3.1.3 Erläuterung der Formalparameter - AG_CNTRL

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion AG_CNTRL:

Parameter Deklaration Datentyp Wertebereich Beschreibung


ACT INPUT BOOL 0, 1 Der Aufruf des FC muss mit ACT=1 erfolgen.
Beim Aufruf mit ACT=0 erfolgt kein Funktionsaufruf
und der Baustein wird sofort wieder verlassen.
ID INPUT INT  1, 2, .., n, Im Parameter ID wird die Verbindungsnummer der
oder Verbindung angegeben. Die Verbindungsnummer ist
der Projektierung zu entnehmen. n ist die maximale
 0 Anzahl Verbindungen und abhängig vom Produkt (S7-
300 oder S7-400).
Bei einem Aufruf, der alle Verbindungen anspricht,
(_ALL-Funktion mit CMD 3 bzw. 4), muss als ID 0
angegeben werden.
LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP mit STEP 7 wird die
Baugruppen-Anfangsadresse ausgegeben. Geben Sie
diese Adresse hier an.
CMD INPUT INT Kommando an den FC AG_CNTRL.
DONE OUTPUT BOOL 0: Der Zustandsparameter zeigt an, ob der Auftrag
Auftrag ist noch in fehlerfrei abgewickelt wurde.
Bearbeitung bzw. noch Zur Bedeutung im Zusammenhang mit den Parametern
nicht angestoßen ERROR und STATUS siehe unter Anzeigen
1: AG_CNTRL (Seite 58)
Auftrag ausgeführt Hinweis:
bei DONE=1 kann RESULT ausgewertet werden

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 57
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

Parameter Deklaration Datentyp Wertebereich Beschreibung


ERROR OUTPUT BOOL 0: kein Fehler Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den Parametern
DONE und STATUS siehe unter Anzeigen AG_CNTRL
(Seite 58)
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den Parametern
DONE und ERROR siehe unter Anzeigen AG_CNTRL
(Seite 58)
RESULT1 OUTPUT DWORD Rückmeldung gemäß Kommando an den FC
AG_CNTRL.
RESULT2 OUTPUT DWORD nur bei S7-400 auszuwerten:
Rückmeldung Teil 2 gemäß Kommando an den FC
AG_CNTRL.

2.3.1.4 Anzeigen AG_CNTRL

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, ERROR und STATUS.
Zusätzlich sind die Kommando-Ergebnisse in den Parametern RESULT1/2 gemäß
"Kommandos und Auftragsergebnisse - AG_CNTRL (Seite 60) "auszuwerten.

Tabelle 2- 4 Anzeigen AG_CNTRL

DONE ERROR STATUS Bedeutung


1 0 0000H Es wurde ein Auftrag (CMD) erfolgreich an den CP übertragen (z.B. RESET) bzw. es
wurde ein Status erfolgreich vom CP gelesen.
Die Parameter RESULT1/2 können ausgewertet werden.
0 0 0000H Es erfolgte noch kein Bausteinaufruf bzw. der Baustein wurde mit ACT=0 aufgerufen.
0 0 8181H Auftrag läuft
Der Bausteinaufruf ist mit den gleichen Parametern zu wiederholen, bis DONE oder
ERROR gemeldet werden.
0 1 8183H Die Projektierung fehlt oder der Dienst im Ethernet-CP ist noch nicht gestartet.
0 1 8186H Der Parameter ID ist ungültig. Die zulässige ID ist abhängig vom gewählten
Kommando.
0 1 8187H Der Parameter CMD ist ungültig.
0 1 8188H Sequenzfehler bei der ACT-Steuerung (Hinweis: diese Anzeige tritt in der
Produktversion des CPs / der Firmware nicht auf).
0 1 8189H Die genutzte CP-Version / Firmware unterstützt den FC10 nicht.
Die Anzeige wird bei Aufruf auf einem CP3431-EX20 mit Firmware ab V1.3.9 gesetzt;
bei anderen CP-Typen wird stattdessen die Anzeige 80B0H abgesetzt.
Hinweis: Der FC10 in der Version V1.0 wird von den CPs ab CP 343-1 EX21/GX21
unterstützt; bei diesen tritt diese Anzeige nicht auf.

Programmbausteine für SIMATIC NET S7-CPs


58 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

DONE ERROR STATUS Bedeutung


0 1 8090H  Eine Baugruppe mit dieser Baugruppen-Anfangsadresse ist nicht vorhanden.
oder
 Der verwendete FC passt nicht zur verwendeten Systemfamilie (es sind
unterschiedliche FCs für S7-300 und S7-400 zu verwenden).
oder
 Die Funktion wird von dieser Baugruppe nicht unterstützt.
0 1 8091H Die Baugruppen-Anfangsadresse liegt nicht auf Doppel-Wort-Raster.
0 1 80B0H Die Baugruppe kennt den Datensatz nicht.
0 1 80B2H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut. Im H-System befindet
sich die zugehörende CPU im Betriebszustand STOP..
0 1 80C0H Der Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Die Betriebsmittel (Speicher) der CPU sind temporär belegt.
0 1 80C4H Kommunikationsfehler
Der Fehler tritt temporär auf; daher ist eine Wiederholung im Anwenderprogramm
sinnvoll.
0 1 80D2H Die Baugruppen-Anfangsadresse ist falsch.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 59
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

2.3.1.5 Kommandos und Auftragsergebnisse - AG_CNTRL

Kommandos und Auswertung der Auftragsergebnisse


Entnehmen Sie den folgenden Tabellen die möglichen Kommandos und die in den
Parametern RESULT1/2 auswertbaren Ergebnisse.

ACHTUNG
Kommandoauswertung bei älteren CP-Typen oder Firmware-Versionen
Die nachfolgend beschriebenen Kommandos werden bei aktuellen CP-Typen oder
Firmware-Versionen unterstützt. Beachten Sie weitergehende Hinweise im Internet unter
folgender Beitrags-ID:
33414377 (http://support.automation.siemens.com/ww/view/de/33414377)

Tabelle 2- 5 Kommandos an den FC AG_CNTRL

CMD Bedeutung
0 NOP – no operation
Der Baustein wird ohne Auftrag an den CP durchlaufen.
RESULT (für CMD = 0) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Ablauf ohne Fehler
RESULT2 0000 0000H Default

Programmbausteine für SIMATIC NET S7-CPs


60 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
1 CN_STATUS – connection status
Dieses Kommando liefert den Status der mit ID ausgewählten Verbindung.
Der CP ist über den Parameter LADDR ausgewählt.
Sollte das Bit 15 (Reset-Kennung) gesetzt sein, wird dieses automatisch zurückgesetzt (dieses Verhalten
entspricht dem Auftrag CN_CLEAR_RESET - siehe CMD = 5).
RESULT (für CMD = 1) Bedeutung
Parameter Hex-Wert/Bereich Bit/'Wert
RESULT1 0000 000*H Bits 0-3: Anzeigen für die Sende-Richtung
(ausgeschlossene Werte: 0x2)
Bit 0 Verbindungstyp
0  keine Sende+Empfangsverbindung
1
 Verbindung für Sende+Empfangsaufträge reserviert
Bit 1 Status aktueller Auftrag
0  Kein Sendeauftrag in Bearbeitung
1
 Sendeauftrag in Bearbeitung
Bits 2+3 vorangegangener Auftrag:
00  Keine Informationen zum vorangegangenen
Sendeauftrag verfügbar
01
 vorangegangener Sendeauftrag positiv
10 abgeschlossen
 vorangegangener Sendeauftrag negativ
abgeschlossen

CMD Bedeutung
1 CN_STATUS – connection status (Fortsetzung für CMD=1)
Dieses Kommando liefert den Status der mit ID ausgewählten Verbindung.
Der CP ist über den Parameter LADDR ausgewählt.
Sollte das Bit 15 (Reset-Kennung) gesetzt sein, wird dieses automatisch zurückgesetzt (dieses Verhalten
entspricht dem Auftrag CN_CLEAR_RESET - siehe CMD = 5).
RESULT (für CMD = 1) Bedeutung
Parameter Hex-Wert/Bereich Bit/'Wert
RESULT1 0000 00*0H Bits 4−7: Anzeigen für die Empfangs−Richtung
(ausgeschlossene Werte: 0x2)
Bit 4 Verbindungstyp
0  keine Sende+Empfangsverbindung
1
 Verbindung für Sende+Empfangsaufträge reserviert
Bit 5 Status aktueller Auftrag
0  Kein Empfangsauftrag in Bearbeitung
1
 Empfangsauftrag in Bearbeitung

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 61
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
Bits 6+7 vorangegangener Auftrag:
00  Keine Informationen zum vorangegangenen
Empfangsauftrag verfügbar
01
 vorangegangener Empfangsauftrag positiv
10 abgeschlossen
 vorangegangener Empfangsauftrag negativ
abgeschlossen

CMD Bedeutung
1 CN_STATUS – connection status (Fortsetzung für CMD=1)
Dieses Kommando liefert den Status der mit ID ausgewählten Verbindung.
Der CP ist über den Parameter LADDR ausgewählt.
Sollte das Bit 15 (Reset-Kennung) gesetzt sein, wird dieses automatisch zurückgesetzt (dieses Verhalten
entspricht dem Auftrag CN_CLEAR_RESET - siehe CMD = 5).
RESULT (für CMD = 1) Bedeutung
Parameter Hex-Wert/Bereich Bit/'Wert
RESULT1 0000 0*00H Bits 8-11: Anzeigen für FETCH/WRITE
(ausgeschlossene Werte:0x3,0x7,0x8,0xB,0xF)
Bit 8 Verbindungstyp:
0  keine FETCH-Verbindung
1
 Verbindung für FETCH-Aufträge reserviert
Bit 9 Verbindungstyp:
0  keine WRITE -Verbindung
1
 Verbindung für WRITE -Aufträge reserviert
Bit 10 Auftragsstatus (FETCH/WRITE):
0  Auftragsstatus OK
1
 Auftragsstatus NOT OK
diese Kennung wird bei den folgenden Fällen gesetzt:
– Der Auftrag wurde von der CPU negativ quittiert
– Der Auftrag konnte nicht zur CPU weitergeleitet
werden, weil sich die Verbindung im Zustand
"LOCKED" befand.
– Der Auftrag wurde abgelehnt, weil der
FETCH/WRITE-Header nicht korrekt aufgebaut
war.
Bit 11 Status FETCH/WRITE-Auftrag
0  es läuft kein Auftrag
1
 es läuft ein Auftrag vom LAN

Programmbausteine für SIMATIC NET S7-CPs


62 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
1 CN_STATUS – connection status (Fortsetzung für CMD=1)
Dieses Kommando liefert den Status der mit ID ausgewählten Verbindung.
Der CP ist über den Parameter LADDR ausgewählt.
Sollte das Bit 15 (Reset-Kennung) gesetzt sein, wird dieses automatisch zurückgesetzt (dieses Verhalten
entspricht dem Auftrag CN_CLEAR_RESET - siehe CMD = 5).
RESULT (für CMD = 1) Bedeutung
Parameter Hex-Wert/Bereich Bit/'Wert
RESULT1 0000 *000H Bits 12-15: Allgemeine CP-Informationen
(ausgeschlossene Werte:0x3,0xB)
Bit 12 + 13 Information zum Verbindungszustand:
(nur für SEND/RECV-Verbindungen verfügbar, die auf
die Protokolle ISO/RFC/TCP aufsetzen; bei UDP werden
die entsprechenden internen Informationen ausgegeben)
 Verbindung ist abgebaut
00
 Verbindungsaufbau läuft
01
10  Verbindungsabbau läuft
11  Verbindung ist aufgebaut
Bit 14 CP-Information:
0  CP in STOP
1
 CP in RUN
Bit 15 Reset-Kennung
0  Es wurde durch den FC10 noch kein Verbindungs-
Reset durchgeführt bzw. die Reset-Kennung wurde
zurückgenommen.
1
 Es wurde durch den Control-Baustein ein
Verbindungs-Reset durchgeführt.
RESULT1 **** 0000H Bits 16-31: Reserviert
0 – reserviert für spätere Erweiterungen
RESULT2 0000 0000H - reserviert für spätere Erweiterungen -

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 63
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
2 CN_RESET – connection reset
Dieses Kommando setzt die mit ID gewählte Verbindung zurück.
Der CP ist über den Parameter LADDR ausgewählt.
Das Rücksetzen der Verbindung bewirkt einen Verbindungsabbruch und einen erneuten Verbindungsaufbau
(aktiv oder passiv, abhängig von der Projektierung). Zum Zeitpunkt des Verbindungsabbruchs empfangene
aber im Anwenderprogramm noch nicht entgegengenommene Daten werden gelöscht.
Es wird zusätzlich ein Eintrag im Diagnosepuffer erzeugt, dem das Auftragsergebnis zu entnehmen ist.
RESULT (für CMD = 2) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Der Reset-Auftrag wurde erfolgreich an den CP
übertragen.
Der Verbindungsabbruch und der anschließende
Verbindungsaufbau wurden angestoßen.
0000 0002H Der Reset-Auftrag konnte nicht an den CP übertragen
werden, da der Dienst im CP nicht gestartet ist (z. B. CP
in STOP).
RESULT2 0000 0000H Default

CMD Bedeutung
3 CN_STATUS_ALL – all connections status
Dieses Kommando liefert in den Parametern RESULT1/2 (insgesamt 8 Byte Sammelinformation) den
Verbindungsstatus aller Verbindungen (aufgebaut/abgebaut).
Der Parameter ID muss auf "0" gesetzt sein (wird auf 0 überprüft).
Der CP ist über den Parameter LADDR ausgewählt.
Detailinformationen einer abgebauten oder nicht projektierten Verbindung erhält man bei Bedarf über einen
erneuten, auf die Verbindung gezielten Status-Aufruf mit CMD=1.
RESULT (für CMD = 3) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 **** ****H 32 Bit: Verbindung 1 - 32
 0 – Verbindung abgebaut / nicht projektiert
 1 – Verbindung aufgebaut
RESULT2 **** ****H 32 Bit: Verbindung 33 - 64
 0 – Verbindung abgebaut / nicht projektiert
 1 – Verbindung aufgebaut

Programmbausteine für SIMATIC NET S7-CPs


64 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
4 CN_RESET_ALL – all connections reset:
Dieses Kommando setzt alle Verbindungen zurück.
Der Parameter ID muss auf "0" gesetzt sein (wird auf 0 überprüft).
Der CP ist über den Parameter LADDR ausgewählt.
Das Rücksetzen der Verbindungen bewirkt einen Verbindungsabbruch und einen erneuten Verbindungsaufbau
(aktiv oder passiv, abhängig von der Projektierung). Zum Zeitpunkt des Verbindungsabbruchs empfangene
aber im Anwenderprogramm noch nicht entgegengenommene Daten werden gelöscht.
Es wird zusätzlich ein Eintrag im Diagnosepuffer erzeugt, dem das Auftragsergebnis zu entnehmen ist.
RESULT (für CMD = 4) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Der Reset-Auftrag wurde erfolgreich an den CP
übertragen. Der Verbindungsabbruch und der
anschließende Verbindungsaufbau aller Verbindungen
wurden angestoßen.
RESULT1 0000 0002H Der Reset-Auftrag konnte nicht an den CP übertragen
werden, da der Dienst im CP nicht gestartet ist ( z. B. CP
in STOP).
RESULT2 0000 0000H Default

CMD Bedeutung
5 CN_CLEAR_RESET – Rücksetzen der Reset-Kennung
Dieses Kommando setzt die Reset-Kennung (Bit 15 in RESULT1) für die mit ID gewählte Verbindung zurück.
Der CP ist über den Parameter LADDR ausgewählt.
Dieser Auftrag wird auch automatisch beim Lesen des Verbindungsstatus ausgeführt (CMD=1); der hier
beschriebene separat absetzbare Auftrag wird daher nur in Sonderfällen benötigt.
RESULT (für CMD = 5) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Der Clear-Auftrag wurde erfolgreich an den CP
übertragen.
RESULT1 0000 0002H Der Clear-Auftrag konnte nicht an den CP übertragen
werden, da der Dienst im CP nicht gestartet ist (z. B. CP
in STOP).
RESULT2 0000 0000H Default

CMD Bedeutung
6 CN_DISCON − connection disconnect
Dieses Kommando setzt die Verbindung zurück, die mit ID und LADDR ausgewählt wurde.
Das Rücksetzen der Verbindung wird durch einen Verbindungsabbruch bewerkstelligt.
Eventuell im Stack gespeicherte Daten gehen ohne Hinweis verloren. Im Anschluss erfolgt kein automatischer
Aufbau der Verbindung. Die Verbindung kann durch den Control−Auftrag CN_STARTCON wieder aufgebaut
werden. Es wird ein Diagnosepuffereintrag erzeugt, dem Sie das Auftragsergebnis entnehmen können.
RESULT (für CMD = 6) Bedeutung
Parameter Hex-Wert/Bereich

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 65
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
RESULT1 0000 0001H Der Auftrag wurde erfolgreich an den CP übertragen. Der
Verbindungsabbruch wurde eingeleitet.
RESULT1 0000 0002H Der Auftrag konnte nicht an den CP übertragen werden,
da der Dienst im CP nicht gestartet ist (z. B. CP in
STOP).
RESULT2 0000 0000H Default

CMD Bedeutung
7 CN_STARTCON − start connection
Dieses Kommando baut eine Verbindung auf, die mit ID und LADDR ausgewählt und zuvor mit dem
Control−Auftrag CN_DISCON abgebrochen wurde. Es wird ein Diagnosepuffereintrag erzeugt, dem Sie das
Auftragsergebnis entnehmen können.
RESULT (für CMD = 7) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Der Auftrag zum Verbindungsaufbau wurde erfolgreich
an den CP übertragen. Der Verbindungsaufbau wurde
eingeleitet.
RESULT1 0000 0002H Der Auftrag zum Verbindungsaufbau konnte nicht an den
CP übertragen werden, da der Dienst im CP nicht
gestartet ist (z. B. CP in STOP).
RESULT2 0000 0000H Default

Siehe auch
Beachten sie weitere Hinweise im FAQ unter folgender Beitrags-ID: 33414377
(http://support.automation.siemens.com/ww/view/de/33414377)

Programmbausteine für SIMATIC NET S7-CPs


66 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

2.3.2 AG_CNTEX

2.3.2.1 Bedeutung und Aufruf - AG_CNTEX

Bedeutung und Arbeitsweise


Mit dem Programmbaustein AG_CNTEX besteht die Möglichkeit, Verbindungen zu
diagnostizieren und Geräte per PING-Kommando im Netz anzusprechen. Bei Bedarf können
Sie über AG_CNTEX einen erneuten Verbindungsaufbau initialisieren.
Folgende Aktionen können über parametrierbare Kommandos ausgeführt werden:

Hinweis
AG_CNTRL und AG_CNTEX
Der Programmbaustein AG_CNTEX bietet Erweiterungen gegenüber dem
Programmbaustein AG_CNTRL.
Sämtliche Funktionen des AG_CNTRL sind im AG_CNTEX enthalten und an der
Schnittstelle im Anwenderprogramm identisch nutzbar.

● Auslesen von Verbindungsinformationen


Sie können anhand von Status-Informationen für alle oder einzelne Verbindungen des
CP entscheiden, ob ein Rücksetzen von Verbindungen sinnvoll ist.
● Rücksetzen von projektierten Verbindungen
Sie können einzelne Verbindungen oder alle Verbindungen eines CPs zurückzusetzen.
● Aktive Verbindung abbrechen und erneut aufbauen
● Im CP konfigurierte Verbindungstypen auslesen (Erweiterung gegenüber AG_CNTRL)
● PING-Kommando senden (Erweiterung gegenüber AG_CNTRL)
Sie können prüfen, ob ein bestimmter Teilnehmer im Netz erreichbar ist.
Die Kommandos des Programmbausteins AG_CNTEX sind nur für SEND/RECV–
Verbindungen zulässig, die auf die Protokolle ISO / RFC / TCP / UDP aufsetzen.

Hinweis
Verfügbarkeit in der Bausteinbibliothek
Falls der Programmbaustein AG_CNTEX in der der Bausteinbibliothek SIMATIC_NET_CP
noch nicht verfügbar ist, installieren Sie die mit dem CP ggf. mitgelieferten SETUP-Daten.
Beachten Sie auch die Angaben in der Datei "NCM S7- Liesmich".

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 67
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

Aufrufschnittstelle
Aufrufschnittstelle in FUP-Darstellung

$*B&17(;

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

,17 &0' 5(68/7 ':25'

$1< 3,1* 5(68/7 ':25'

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 9 ( //AG_CNTEX Bausteinaufruf
ACT := DB11.DBX0.0, //Auftragsanstoß
ID := DB11.DBW2, //Verbindungs-ID gemäß Projektierung
LADDR := DB11.DBW4, //Baugruppenadresse gemäß Hardware-Konfiguration
CMD := DB11.DBW6, //Kommandokennung
PING := P#DB11.DBX8.0, //Datenbereich mit PING-Daten
DONE := DB11.DBX16.0, //Ausführungsanzeige
ERROR := DB11.DBX16.1, //Fehleranzeige
STATUS := DB11.DBW18, //Statusanzeige
RESULT1 := DB11.DBD20, //Auftragsergebnis 1
RESULT2 := DB11.DBD24); //Auftragsergebnis 2

Programmbausteine für SIMATIC NET S7-CPs


68 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

2.3.2.2 Arbeitsweise AG_CNTEX

Arbeitsweise
Die folgende Ablaufdarstellung zeigt einen typischen Ablauf von AG_CNTEX-Aufträgen im
Anwenderprogramm. Für PING-Kommandos finden Sie anschließend eine weitere
beispielhafte Ablaufdarstellung.

$QZHQGHUSURJUDPP (WKHUQHW&3
&38=\NOXV 

(VZLUGHLQ(UHLJQLVHUNDQQW
GDVGHQ$EEUXFKXQG1HXDXI
EDXHLQHU9HUELQGXQJVLQQYROO
PDFKW

$*B&17(;YHUVRUJHQ
I¾U6WDWXVDEIUDJH
$&7 &0' 
,'  9HUELQGXQJ

6WDWXVDQIUDJHI¾U9HUELQGXQJ
6WDWXV9HUELQGXQJ,'  ZLUGTXLWWLHUW

$*B&17(;YHUVRUJHQ
I¾U5HVHW
$&7 &0' 
,'  9HUELQGXQJ

$*B&17(; 5HVHW.RPPDQGR
4XLWWXQJ$XIWUDJVDQQDKPH 5HVHW$QIRUGHUXQJO¦XIW
5(68/7ಯ9HUELQGXQJVDEEDX 5HVHW.HQQXQJ %LWLQ
DQJHVWR¡HQರ 5(68/7 ZLUGJHVHW]W

(LQWUDJ'LDJQRVHSXIIHU

9HUELQGXQJZLUGDEJHEDXW
$*B&17(;YHUVRUJHQ XQGQHXLQLWLDOLVLHUW
I¾U6WDWXVDEIUDJH 5HVHW.HQQXQJ %LWLQ
$&7 &0'  5(68/7 EOHLEWJHVHW]W
,'  9HUELQGXQJ

$*B&17(; 6WDWXVDEIUDJH
6WDWXVDQIUDJHZLUGTXLWWLHUW
GDQDFKZLUGGLH5HVHW
6WDWXV9HUELQGXQJ,' 
.HQQXQJ %LWLQ5(68/7
4XLWWXQJ ]XU¾FNJHVHW]W
5(68/7%+
ಯ5HVHWZXUGHGXUFKJHI¾KUWರ

=HLW =HLW


3DUDPHWHU¾EHUJDEH'21((552567$786XQG5(68/7

Der Ablauf zeigt, wie zunächst der Verbindungsstatus abgefragt und in einem zweiten
Auftrag der Verbindungsabbau mittels Reset-Kommando veranlasst wird.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 69
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

Im CP wird hierbei die Reset-Kennung (Bit15 in RESULT1) gesetzt. Bei einer späteren
Statusabfrage kann somit erkannt werden, ob die Verbindung aufgrund eines Reset-
Auftrages zurückgesetzt worden war. Erst nach dieser Statusabfrage oder aufgrund eines
expliziten Kommandos CN_CLEAR_RESET, wird diese Reset-Kennung im CP
zurückgesetzt

ACHTUNG

Beim Bausteinaufruf muss ACT = 1 gesetzt sein. Beim Aufruf mit ACT=0 erfolgt kein
Funktionsaufruf und der Baustein wird sofort wieder verlassen.
Da beim AG_CNTEX das Auftragsergebnis synchron zum Aufruf zur Verfügung gestellt
wird, kann der AG_CNTEX im selben Zyklus erneut aufgerufen werden.

2.3.2.3 Arbeitsweise der PING-Funktion

Arbeitsweise / Aufruffolge
Nachfolgend wird beschrieben, wie Sie die Kommandos CMD=8 und CMD=9 verwenden,
um ein PING-Kommando abzusetzen.
Mit dem PING-Kommando CMD=8 veranlassen Sie den CP, 4 aufeinander folgende PING-
Anforderungen im Netz an die im Auftrag angegebene IP-Adresse abzusetzen. Das PING-
Echo wird vom CP innerhalb der Zeitspanne erwartet, die Sie im PING-Auftragsblock
vorgeben.
Der CP registriert die Antwortzeiten und legt diese in den Parametern RESULT 1/2 ab.
Die beiden Parameter RESULT 1/2 fragen Sie mittels PING-Kommando CMD=9 ab. Sobald
die 4 PING-Anforderungen beantwortet sind oder deren vorgegebene Überwachungszeit
überschritten wurde, wird die Ausführung im Parameter DONE=1 bestätigt. Das PING-
Ergebnis können Sie dann innerhalb von maximal 30 Sekunden abfragen; danach werden
die RESULT-Einträge ungültig.

ACHTUNG
PING setzt projektierte Verbindung voraus
Das PING-Kommando setzt voraus, dass mindestens eine Verbindung für die
SEND/RECEIVE-Schnittstelle (TCP, ISO-on-TCP, ISO-Transport, UDP) projektiert ist.

Die folgende Darstellung zeigt einen typischen Ablauf einer PING-Anforderung mit
zugehörender PING-Ergebnisabfrage.

Programmbausteine für SIMATIC NET S7-CPs


70 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

$QZHQGHUSURJUDPP (WKHUQHW&3 6WDWLRQPLW,3$GUHVVH;<


&38=\NOXV

$*B&17(;YHUVRUJHQI¾U3,1*
$QIRUGHUXQJ
$&7 &0' ,' 
3,1* ,3 ;<7,0(287 PV

&DOO)& 3,1*;<
=HLW¾EHUZDFKXQJO¦XIW
PV
+5 
3,1*(FKR
$*B&17(;YHUVRUJHQI¾U3,1*
(UJHEQLVDQIRUGHUXQJ 3,1*;<
$&7 &0' 
=HLW¾EHUZDFKXQJO¦XIW
3,1* ,3 ;< PV
3,1*(FKR
&DOO)&
+ 3,1*;<
=HLW¾EHUZDFKXQJO¦XIW
PV
3,1*(FKR

3,1*;<
=HLW¾EHUZDFKXQJO¦XIW
PV
3,1*(FKR

&DOO)&
+55 (UJHEQLV PD[LPDOV

3,1*(UJHEQLVDXVZHUWHQ
5(68/7 (FKR(FKR
5(68/7 (FKR(FKR

=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH'21((552567$786XQG5(68/7

Mehrere PING-Anforderungen gleichzeitig


Sie können bis zu 4 PING-Anforderungen gleichzeitig an unterschiedliche IP-Adressen
absetzen. Weitere PING-Anforderungen sind erst nach Abarbeitung mindestens einer der
laufenden PING-Anforderungen möglich.
Wenn zu viele PING-Anforderungen gleichzeitig abgesetzt werden, dann erfolgt
entsprechende Fehlermeldung (Parameter STATUS = 828AH).

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 71
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

Wann sind PING-Anforderungen abgearbeitet?


PING-Anforderungen gelten als abgearbeitet, wenn eine der folgenden Bedingungen erfüllt
ist:
● Das PING-Ergebnis wurde ausgelesen;
● Das PING-Ergebnis wurde zwar nicht ausgelesen aber nach Bereitstellung des PING-
Ergebnisses sind 30 Sekunden abgelaufen.

2.3.2.4 Erläuterung der Formalparameter - AG_CNTEX

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion AG_CNTEX:

Parameter Deklaration Datentyp Wertebereich Beschreibung


ACT INPUT BOOL 0, 1 Der Aufruf des FC muss mit ACT=1 erfolgen.
Beim Aufruf mit ACT=0 erfolgt kein Funktionsaufruf
und der Baustein wird sofort wieder verlassen.
ID INPUT INT  1, 2, .., n, Im Parameter ID wird die Verbindungsnummer der
oder Verbindung angegeben. Die Verbindungsnummer ist
der Projektierung zu entnehmen. n ist die maximale
 0 Anzahl Verbindungen und abhängig vom Produkt (S7-
300 oder S7-400).
Bei einem Aufruf, der alle Verbindungen anspricht,
muss als ID 0 angegeben werden. Dies betrifft:
 _ALL-Funktion mit CMD 3 bzw. 4
 PING-Kommando mit CMD 8 bzw CMD 9
LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP mit STEP 7 wird die
Baugruppen-Anfangsadresse ausgegeben. Geben Sie
diese Adresse hier an.
CMD INPUT INT Kommando an den FC AG_CNTEX
PING INPUT ANY Verweist auf einen Datenblock (z.B. DB), der die
Datenstruktur für das PING-Kommando enthält.
Der Datenblock enthält die IP-Adresse sowie optional
die Angaben zur Zeitüberwachung und zur Anzahl der
in der PING-Anforderung zu übertragenden Bytes.
Datenstruktur siehe unten
DONE OUTPUT BOOL 0: Der Zustandsparameter zeigt an, ob der Auftrag
Auftrag ist noch in fehlerfrei abgewickelt wurde.
Bearbeitung bzw. noch Zur Bedeutung im Zusammenhang mit den Parametern
nicht angestoßen ERROR und STATUS siehe unter Anzeigen
1: AG_CNTEX (Seite 73)
Auftrag ausgeführt Hinweis:
bei DONE=1 kann RESULT ausgewertet werden

Programmbausteine für SIMATIC NET S7-CPs


72 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

Parameter Deklaration Datentyp Wertebereich Beschreibung


ERROR OUTPUT BOOL 0: kein Fehler Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den Parametern
DONE und STATUS siehe unter Anzeigen AG_CNTEX
(Seite 73)
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den Parametern
DONE und ERROR siehe unter Anzeigen AG_CNTEX
(Seite 73)
RESULT1 OUTPUT DWORD Rückmeldung gemäß Kommando an den AG_CNTEX.
RESULT2 OUTPUT DWORD Rückmeldung Teil 2 gemäß Kommando an den
AG_CNTEX.

PING-Datenblock
Der Parameter PING verweist auf einen Datenblock mit folgender Datenstruktur:

Parameter Datentyp Wertebereich Hinweis


IP-Adresse ARRAY [1..4] of Byte
TIMEOUT INT 1..60000 ms Angabe optional; Default-
Wert = 1 s
Size INT 1..1000 Byte Angabe optional; Default-
Wert = 32 Byte

2.3.2.5 Anzeigen AG_CNTEX

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, ERROR und STATUS.
Zusätzlich sind die Kommando-Ergebnisse in den Parametern RESULT1/2 gemäß
"Kommandos und Auftragsergebnisse - AG_CNTEX (Seite 75) "auszuwerten.

Tabelle 2- 6 Anzeigen AG_CNTEX

DONE ERROR STATUS Bedeutung


1 0 0000H Es wurde ein Auftrag (CMD) erfolgreich an den CP übertragen (z.B. RESET) bzw. es
wurde ein Status erfolgreich vom CP gelesen.
Die Parameter RESULT1/2 können ausgewertet werden.
0 0 0000H Es erfolgte noch kein Bausteinaufruf bzw. der Programmbaustein wurde mit ACT=0
aufgerufen.
0 0 8181H Auftrag läuft
Der Bausteinaufruf ist mit den gleichen Parametern zu wiederholen, bis DONE oder
ERROR gemeldet werden.
0 1 8183H Die Projektierung fehlt oder der Dienst im Ethernet-CP ist noch nicht gestartet.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 73
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

DONE ERROR STATUS Bedeutung


0 1 8184H Systemfehler oder falscher Parametertyp. Ursache kann sein:
 Datentyp des ANY-Pointers für den Parameter PING ist nicht richtig.
 Der ANY-Pointer verweist auf eine ungerade Bitadresse.
0 1 8186H Der Parameter ID ist ungültig. Die zulässige ID ist abhängig vom gewählten
Kommando.
0 1 8187H Der Parameter CMD ist ungültig.
0 1 8090H Mögliche Bedeutungen:
 Eine Baugruppe mit dieser Baugruppen-Anfangsadresse ist nicht vorhanden;
 Der verwendete Programmbaustein passt nicht zur verwendeten Systemfamilie (es
sind unterschiedliche Programmbausteine für S7-300 und S7-400 zu verwenden);
 Die Funktion wird von dieser Baugruppe nicht unterstützt.
0 1 8091H Die Baugruppen-Anfangsadresse liegt nicht auf Doppel-Wort-Raster.
0 1 8092H Die Baugruppen-Anfangsadresse ist falsch.
0 1 80B0H Die Baugruppe kennt den Datensatz nicht.
0 1 80B2H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut. Im H-System befindet
sich die zugehörende CPU im Betriebszustand STOP..
0 1 80C0H Der Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Die Betriebsmittel (Speicher) der CPU sind temporär belegt.
0 1 80C4H Kommunikationsfehler
Der Fehler tritt temporär auf; daher ist eine Wiederholung im Anwenderprogramm
sinnvoll.
0 1 8286H Der Wert für die Angabe "Timeout" im PING-Datenblock liegt außerhalb des gültigen
Wertebereichs.
0 1 8287H Die im PING-DB angegebene IP-Adresse ist reserviert und daher unzulässig.
0 1 8288H Die Anzeige tritt nur beim Kommando PING-Ergebnisanforderung auf.
Mögliche Bedeutungen:
 Die IP-Adresse wurde vom PING-Kommando nicht erreicht (beispielsweise weil der
CP in den STOP-Modus gesetzt wurde, nachdem das Kommando PING-
Anforderung abgesetzt wurde);
 Das PING-Ergebnis wurde bereits ausgelesen;
 Das PING-Ergebnis wurde nicht innerhalb der maximalen Zeitspanne von 30
Sekunden ausgelesen.
0 1 8289H Das Datenvolumen für die PING-Anforderung hat den zulässigen Bereich überschritten
(maximal 1000 Bytes; siehe Datenstruktur für das PING-Kommando)
0 1 828AH Es befinden sich bereits 4 PING-Anforderungen in Bearbeitung. Neue Anforderungen
sind erst wieder nach Abarbeitung der bestehenden Anforderungen möglich.
0 1 828BH Für die angegebene IP-Adresse befindet sich bereits eine PING-Anforderung in
Bearbeitung. Verwenden Sie das Kommando PING-Ergebnisanforderung um die
laufende Bearbeitung abzuschließen.

Programmbausteine für SIMATIC NET S7-CPs


74 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

2.3.2.6 Kommandos und Auftragsergebnisse - AG_CNTEX

Kommandos und Auswertung der Auftragsergebnisse


Entnehmen Sie den folgenden Tabellen die möglichen Kommandos und die in den
Parametern RESULT1/2 auswertbaren Ergebnisse.

ACHTUNG
Kommandoauswertung bei älteren CP-Typen oder Firmware-Versionen
Die nachfolgend beschriebenen Kommandos werden bei aktuellen CP-Typen oder
Firmware-Versionen unterstützt. Beachten Sie weitergehende Hinweise im Internet unter
folgender Beitrags-ID:
33414377 (http://support.automation.siemens.com/ww/view/de/33414377)

Tabelle 2- 7 Kommandos an den FC AG_CNTRL

CMD Bedeutung
0 NOP – no operation
Der Baustein wird ohne Auftrag an den CP durchlaufen.
RESULT (für CMD = 0) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Ablauf ohne Fehler
RESULT2 0000 0000H Default

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 75
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
1 CN_STATUS – connection status
Dieses Kommando liefert den Status der mit ID ausgewählten Verbindung.
Der CP ist über den Parameter LADDR ausgewählt.
Sollte das Bit 15 (Reset-Kennung) gesetzt sein, wird dieses automatisch zurückgesetzt (dieses Verhalten
entspricht dem Auftrag CN_CLEAR_RESET - siehe CMD = 5).
RESULT (für CMD = 1) Bedeutung
Parameter Hex-Wert/Bereich Bit/'Wert
RESULT1 0000 000*H Bits 0-3: Anzeigen für die Sende-Richtung
(ausgeschlossene Werte: 0x2)
Bit 0 Verbindungstyp
0  keine Sende+Empfangsverbindung
1
 Verbindung für Sende+Empfangsaufträge reserviert
Bit 1 Status aktueller Auftrag
0  Kein Sendeauftrag in Bearbeitung
1
 Sendeauftrag in Bearbeitung
Bits 2+3 vorangegangener Auftrag:
00  Keine Informationen zum vorangegangenen
Sendeauftrag verfügbar
01
 vorangegangener Sendeauftrag positiv
10 abgeschlossen
 vorangegangener Sendeauftrag negativ
abgeschlossen

CMD Bedeutung
1 CN_STATUS – connection status (Fortsetzung für CMD=1)
Dieses Kommando liefert den Status der mit ID ausgewählten Verbindung.
Der CP ist über den Parameter LADDR ausgewählt.
Sollte das Bit 15 (Reset-Kennung) gesetzt sein, wird dieses automatisch zurückgesetzt (dieses Verhalten
entspricht dem Auftrag CN_CLEAR_RESET - siehe CMD = 5).
RESULT (für CMD = 1) Bedeutung
Parameter Hex-Wert/Bereich Bit/'Wert
RESULT1 0000 00*0H Bits 4−7: Anzeigen für die Empfangs−Richtung
(ausgeschlossene Werte: 0x2)
Bit 4 Verbindungstyp
0  keine Sende+Empfangsverbindung
1
 Verbindung für Sende+Empfangsaufträge reserviert
Bit 5 Status aktueller Auftrag
0  Kein Empfangsauftrag in Bearbeitung
1
 Empfangsauftrag in Bearbeitung

Programmbausteine für SIMATIC NET S7-CPs


76 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
Bits 6+7 vorangegangener Auftrag:
00  Keine Informationen zum vorangegangenen
Empfangsauftrag verfügbar
01
 vorangegangener Empfangsauftrag positiv
10 abgeschlossen
 vorangegangener Empfangsauftrag negativ
abgeschlossen

CMD Bedeutung
1 CN_STATUS – connection status (Fortsetzung für CMD=1)
Dieses Kommando liefert den Status der mit ID ausgewählten Verbindung.
Der CP ist über den Parameter LADDR ausgewählt.
Sollte das Bit 15 (Reset-Kennung) gesetzt sein, wird dieses automatisch zurückgesetzt (dieses Verhalten
entspricht dem Auftrag CN_CLEAR_RESET - siehe CMD = 5).
RESULT (für CMD = 1) Bedeutung
Parameter Hex-Wert/Bereich Bit/'Wert
RESULT1 0000 0*00H Bits 8-11: Anzeigen für FETCH/WRITE
(ausgeschlossene Werte:0x3,0x7,0x8,0xB,0xF)
Bit 8 Verbindungstyp:
0  keine FETCH-Verbindung
1
 Verbindung für FETCH-Aufträge reserviert
Bit 9 Verbindungstyp:
0  keine WRITE -Verbindung
1
 Verbindung für WRITE -Aufträge reserviert
Bit 10 Auftragsstatus (FETCH/WRITE):
0  Auftragsstatus OK
1
 Auftragsstatus NOT OK
diese Kennung wird bei den folgenden Fällen gesetzt:
– Der Auftrag wurde von der CPU negativ quittiert
– Der Auftrag konnte nicht zur CPU weitergeleitet
werden, weil sich die Verbindung im Zustand
"LOCKED" befand.
– Der Auftrag wurde abgelehnt, weil der
FETCH/WRITE-Header nicht korrekt aufgebaut
war.
Bit 11 Status FETCH/WRITE-Auftrag
0  es läuft kein Auftrag
1
 es läuft ein Auftrag vom LAN

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 77
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
1 CN_STATUS – connection status (Fortsetzung für CMD=1)
Dieses Kommando liefert den Status der mit ID ausgewählten Verbindung.
Der CP ist über den Parameter LADDR ausgewählt.
Sollte das Bit 15 (Reset-Kennung) gesetzt sein, wird dieses automatisch zurückgesetzt (dieses Verhalten
entspricht dem Auftrag CN_CLEAR_RESET - siehe CMD = 5).
RESULT (für CMD = 1) Bedeutung
Parameter Hex-Wert/Bereich Bit/'Wert
RESULT1 0000 *000H Bits 12-15: Allgemeine CP-Informationen
(ausgeschlossene Werte:0x3,0xB)
Bit 12 + 13 Information zum Verbindungszustand:
(nur für SEND/RECV-Verbindungen verfügbar, die auf
die Protokolle ISO/RFC/TCP aufsetzen; bei UDP werden
die entsprechenden internen Informationen ausgegeben)
 Verbindung ist abgebaut
00
 Verbindungsaufbau läuft
01
10  Verbindungsabbau läuft
11  Verbindung ist aufgebaut
Bit 14 CP-Information:
0  CP in STOP
1
 CP in RUN
Bit 15 Reset-Kennung
0  Es wurde durch den FC10 noch kein Verbindungs-
Reset durchgeführt bzw. die Reset-Kennung wurde
zurückgenommen.
1
 Es wurde durch den Control-Baustein ein
Verbindungs-Reset durchgeführt.
RESULT1 **** 0000H Bits 16-31: Reserviert
0 – reserviert für spätere Erweiterungen
RESULT2 0000 0000H - reserviert für spätere Erweiterungen -

Programmbausteine für SIMATIC NET S7-CPs


78 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
2 CN_RESET – connection reset
Dieses Kommando setzt die mit ID gewählte Verbindung zurück.
Der CP ist über den Parameter LADDR ausgewählt.
Das Rücksetzen der Verbindung bewirkt einen Verbindungsabbruch und einen erneuten Verbindungsaufbau
(aktiv oder passiv, abhängig von der Projektierung). Zum Zeitpunkt des Verbindungsabbruchs empfangene
aber im Anwenderprogramm noch nicht entgegengenommene Daten werden gelöscht.
Es wird zusätzlich ein Eintrag im Diagnosepuffer erzeugt, dem das Auftragsergebnis zu entnehmen ist.
RESULT (für CMD = 2) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Der Reset-Auftrag wurde erfolgreich an den CP
übertragen.
Der Verbindungsabbruch und der anschließende
Verbindungsaufbau wurden angestoßen.
0000 0002H Der Reset-Auftrag konnte nicht an den CP übertragen
werden, da der Dienst im CP nicht gestartet ist (z. B. CP
in STOP).
RESULT2 0000 0000H Default

CMD Bedeutung
3 CN_STATUS_ALL – all connections status
Dieses Kommando liefert in den Parametern RESULT1/2 (insgesamt 8 Byte Sammelinformation) den
Verbindungsstatus aller Verbindungen (aufgebaut/abgebaut).
Der Parameter ID muss auf "0" gesetzt sein (wird auf 0 überprüft).
Der CP ist über den Parameter LADDR ausgewählt.
Detailinformationen einer abgebauten oder nicht projektierten Verbindung erhält man bei Bedarf über einen
erneuten, auf die Verbindung gezielten Status-Aufruf mit CMD=1.
RESULT (für CMD = 3) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 **** ****H Für jeweilige Verbindung:
32 Bit mit folgender Gültigkeit:  0 – Verbindung abgebaut / nicht projektiert
 Bei S7-400: Bit 0-31 für  1 – Verbindung aufgebaut
Verbindung 1 - 32
 Bei S7-300: Bit 0-15 für
Verbindung 1 - 16
RESULT2 **** ****H Für jeweilige Verbindung:
32 Bit mit folgender Gültigkeit:  0 – Verbindung abgebaut / nicht projektiert
 Bei S7-400: Bit 0-31 für  1 – Verbindung aufgebaut
Verbindung 33 - 64

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 79
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
4 CN_RESET_ALL – all connections reset
Dieses Kommando setzt alle Verbindungen zurück.
Der Parameter ID muss auf "0" gesetzt sein (wird auf 0 überprüft).
Der CP ist über den Parameter LADDR ausgewählt.
Das Rücksetzen der Verbindungen bewirkt einen Verbindungsabbruch und einen erneuten Verbindungsaufbau
(aktiv oder passiv, abhängig von der Projektierung). Zum Zeitpunkt des Verbindungsabbruchs empfangene
aber im Anwenderprogramm noch nicht entgegengenommene Daten werden gelöscht.
Es wird zusätzlich ein Eintrag im Diagnosepuffer erzeugt, dem das Auftragsergebnis zu entnehmen ist.
RESULT (für CMD = 4) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Der Reset-Auftrag wurde erfolgreich an den CP
übertragen. Der Verbindungsabbruch und der
anschließende Verbindungsaufbau aller Verbindungen
wurden angestoßen.
RESULT1 0000 0002H Der Reset-Auftrag konnte nicht an den CP übertragen
werden, da der Dienst im CP nicht gestartet ist ( z. B. CP
in STOP).
RESULT2 0000 0000H Default

CMD Bedeutung
5 CN_CLEAR_RESET – Rücksetzen der Reset-Kennung
Dieses Kommando setzt die Reset-Kennung (Bit 15 in RESULT1) für die mit ID gewählte Verbindung zurück.
Der CP ist über den Parameter LADDR ausgewählt.
Dieser Auftrag wird auch automatisch beim Lesen des Verbindungsstatus ausgeführt (CMD=1); der hier
beschriebene separat absetzbare Auftrag wird daher nur in Sonderfällen benötigt.
RESULT (für CMD = 5) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Der Clear-Auftrag wurde erfolgreich an den CP
übertragen.
RESULT1 0000 0002H Der Clear-Auftrag konnte nicht an den CP übertragen
werden, da der Dienst im CP nicht gestartet ist (z. B. CP
in STOP).
RESULT2 0000 0000H Default

CMD Bedeutung
6 CN_DISCON − connection disconnect
Dieses Kommando setzt die Verbindung zurück, die mit ID und LADDR ausgewählt wurde.
Das Rücksetzen der Verbindung wird durch einen Verbindungsabbruch bewerkstelligt.
Eventuell im Stack gespeicherte Daten gehen ohne Hinweis verloren. Im Anschluss erfolgt kein automatischer
Aufbau der Verbindung. Die Verbindung kann durch den Control−Auftrag CN_STARTCON wieder aufgebaut
werden. Es wird ein Diagnosepuffereintrag erzeugt, dem Sie das Auftragsergebnis entnehmen können.
RESULT (für CMD = 6) Bedeutung
Parameter Hex-Wert/Bereich

Programmbausteine für SIMATIC NET S7-CPs


80 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
RESULT1 0000 0001H Der Auftrag wurde erfolgreich an den CP übertragen. Der
Verbindungsabbruch wurde eingeleitet.
RESULT1 0000 0002H Der Auftrag konnte nicht an den CP übertragen werden,
da der Dienst im CP nicht gestartet ist (z. B. CP in
STOP).
RESULT2 0000 0000H Default

CMD Bedeutung
7 CN_STARTCON − start connection
Dieses Kommando baut eine Verbindung auf, die mit ID und LADDR ausgewählt und zuvor mit dem
Control−Auftrag CN_DISCON abgebrochen wurde. Es wird ein Diagnosepuffereintrag erzeugt, dem Sie das
Auftragsergebnis entnehmen können.
RESULT (für CMD = 7) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Der Auftrag zum Verbindungsaufbau wurde erfolgreich
an den CP übertragen. Der Verbindungsaufbau wurde
eingeleitet.
RESULT1 0000 0002H Der Auftrag zum Verbindungsaufbau konnte nicht an den
CP übertragen werden, da der Dienst im CP nicht
gestartet ist (z. B. CP in STOP).
RESULT2 0000 0000H Default

CMD Bedeutung
8 PING_REQUEST - PING-Anforderung senden
Dieses Kommando sendet eine PING-Anforderung an den CP. Der CP veranlasst daraufhin 4 PING-Echo-
Anforderungen an die angegebene IP-Adresse.
RESULT (für CMD = 8) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 0001H Die PING-Anforderung wurde erfolgreich dem CP
zugestellt.
RESULT2 0000 0002H Die PING-Anforderung konnte dem CP nicht erfolgreich
zugestellt werden, da der entsprechende Dienst auf dem
CP nicht erreichbar war.
Mögliche Ursache kann beispielsweise sein: CP in
STOP-Modus.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 81
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
9 PING_RESULT - PING-Ergebnis abfragen
Dieses Kommando sendet eine PING-Ergebnisabfrage an den CP. Der CP übergibt die Ergebnisse der 4
durchgeführten PING-Echo-Anforderungen im Parameter RESULT.
Der Aufruf ist erst dann erfolgreich, wenn seitens des CP die 4 PING-Echo-Anforderungen abgeschlossen
wurden.
RESULT (für CMD = 9) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 **** ****H 1. Wort:
Antwortzeit in ms auf die 1. PING-Echo-Anforderung.
2. Wort:
Antwortzeit in ms auf die 2. PING-Echo-Anforderung.
Beispiel:
0005 FFFFH
Echo 1 -> empfangen nach 5 ms
Echo 2 -> kein Echo innerhalb der vorgegebenen
Überwachungszeit.
RESULT2 **** ****H 1. Wort:
Antwortzeit in ms auf die 3. PING-Echo-Anforderung.
2. Wort:
Antwortzeit in ms auf die 4. PING-Echo-Anforderung.
Beispiel:
0002 3456H
Echo 3 -> empfangen nach 2 ms
Echo 4 -> empfangen nach 13398 ms
Wertebereiche für Datenworte in RESULT1 / RESULT 2:
0000H nicht verwendet
0001H ... EA60H Antwortzeit in ms
0001H = 1 ms
EA60H = 60000 ms
EA61H ... FFFEH nicht verwendet
FFFFH Timeout: Kein Echo innerhalb der vorgegeben
Überwachungszeit.

Programmbausteine für SIMATIC NET S7-CPs


82 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.3 Programmbausteine zur Verbindungs- und Systemdiagnose

CMD Bedeutung
10 CONN_TYPE - Verbindungstyp
Dieses Kommando fordert den CP auf, den aktuellen Verbindungstyp für die angegebene Verbindungs-ID
anzugeben.
RESULT (für CMD = 10) Bedeutung
Parameter Hex-Wert/Bereich
RESULT1 0000 000*H Die Anforderung liefert für die möglichen
Verbindungstypen folgende Werte:
0: keine Verbindung eingerichtet
1: UDP-Verbindung
2: SMTP-Verbindung
3: TCP-Verbindung
4: Freie UDP-Verbindung
5: FTP-Verbindung
6: ISO-Transportverbindung
7: ISO-on-TCP-Verbindung
RESULT2 0000 0000H Default

Siehe auch
Beachten sie weitere Hinweise im FAQ unter folgender Beitrags-ID: 33414377
(http://support.automation.siemens.com/ww/view/de/33414377)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 83
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4 Programmbausteine für FTP-Dienste

2.4.1 Übersicht zu FTP

FB und FCs für FTP-Dienste (FTP-Client)


Nachfolgende Liste gibt die für die FTP-Client-Dienste verfügbaren Programmbausteine an.

ACHTUNG

Beachten Sie, dass die FTP-Client-Dienste von älteren SIMATIC S7-300 CPUs, zum
Beispiel CPU 312 oder CPU 315-1AF01, nicht ausgeführt werden können, da diese den
SFC 24 nicht unterstützen.
Bei S7-300 und Verwendung der FC40 - FC44 gilt: Der CP benötigt für den Ablauf der FTP-
FCs zusätzlich den mitgelieferten FC5 (AG_SEND); der FC5 darf für diese Anwendung
nicht umbenannt werden.

Programmbaustein verwendbar bei Bedeutung


S7-300 S7-400
FTP_CMD (FB40) ● ● Vollständige Abwicklung von FTP-Auftragssequenzen.

FTP_CONNECT ● ● Aufbau einer FTP-Verbindung vom Client zum Server.


(FC40)
FTP_STORE (FC41) ● ● Übertragung eines DB vom Client zum Server.
FTP_RETRIEVE ● ● Übertragung einer Datei vom Server zum Client.
(FC42)
FTP_DELETE (FC43) ● ● Löschen einer Datei auf dem Server.
FTP_QUIT (FC44) ● ● Abbau einer über ID aufgebauten Verbindung.

Einsatz der Programmbausteine


Bei den aktuellen CP-Baugruppentypen verwenden Sie vorzugsweise den FB40. Die
FC40...FC44 können Sie bei Bedarf, und sofern in der STEP 7-Bibliothek verfügbar,
alternativ verwenden.

Voraussetzung - projektierte FTP-Verbindung


Für die Abwicklung einer FTP-Auftragssequenz zwischen der S7-Station als FTP-Client und
einem FTP-Server müssen Sie eine FTP-Verbindung projektieren. Hierzu projektieren Sie
zunächst eine unspezifizierte TCP-Verbindung mit dem zusätzlichen Attribut "für FTP-
Protokoll nutzen".

Programmbausteine für SIMATIC NET S7-CPs


84 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Siehe auch
Migration von FC 40-44 zum FTP_CMD (Seite 95)

2.4.2 FTP_CMD - universeller Programmbaustein für FTP-Dienste

2.4.2.1 Bedeutung und Aufruf - FTP_CMD

Bedeutung
Mit dem FB40 können Sie FTP-Verbindungen aufbauen und Dateien von und zu einem FTP-
Server übertragen.
Der FB40 ersetzt die bisher verwendeten FTP-Funktionen FC40 bis FC44. Die Unterschiede
dieser Funktionen werden beim FB40 über einen Kommando-Parameter abgebildet.
Mit dem FB40 ergeben sich folgende Vorteile
● Vereinfachung im Anwenderprogramm durch Abwicklung über Kommando-Variable
anstelle unterschiedlicher Funktionsaufrufe;
● Zusätzliche Funktion "APPEND"
"APPEND" ermöglicht, Daten an eine bestehende Datei anzuhängen.
● Zusätzliche Funktion "RETR_PART"
"RETR_PART" ermöglicht, Datenbereiche selektiv aus einer Datei zu lesen.
● Zusätzliche Funktion "CONNECT_TLS_PRIVATE"
"CONNECT_TLS_PRIVATE" ermöglicht den Aufbau von gesicherten SSL-Verbindungen
● Die Funktion AG_SEND (FC5) wird für die Abwicklung nicht benötigt.

Gültigkeit
Der FB40 kann ab folgenden Baugruppentypen eingesetzt werden:
● Ab CP 343-1 Advanced (GX30* / GX31)
● Ab CP 443-1 Advanced (GX20* / GX30)
*) Funktion "CONNECT_TLS_PRIVATE" nicht nutzbar.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 85
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Aufrufschnittstelle
Aufrufschnittstelle in FUP-Darstellung

)73B&0'

,17 ,' '21( %22/

:25' /$''5 (5525 %22/

%<7( &0' 67$786 :25'

$1< 1$0(B675

,17 ),/(B'%B15

':25' 2))6(7

':25' /(1

Aufrufbeispiel in AWL-Darstellung

AWL Erläuterung
CALL FB 40, DB 40 ( // Bausteinaufruf
ID := 4, // FTP-Verbindungs-ID gemäß Projektierung
LADDR := W#16#3FFD, // Baugruppenadresse gemäß Projektierung
CMD := B#16#3, // Das auszuführende FTP-Kommando
NAME_STR := P#DB44.DBX 170.0 BYTE 220, // Adresse u. Länge des Ziel-Datenbereichs
FILE_DB_NR := 42, // Nummer des Datenbausteins
OFFSET := DW#16#0, // (im Beispiel nicht relevant)
LEN := DW#16#0, // (im Beispiel nicht relevant)
DONE := M 420.1, // Zustandsparameter
ERROR := M 420.2, // Fehleranzeige
STATUS := MW 422); // Statusanzeige

Aufgerufene Systemfunktionen
Folgende Systemfunktionen werden vom Programmbaustein FTP_CMD aus aufgerufen:
SFC 1, SFC 20, SFC 24, SFC 58, SFC 59

ACHTUNG

Beachten Sie, dass die FTP-Client-Dienste von alten SIMATIC S7-300-CPUs, zum Beispiel
CPU 312 oder CPU 315-1AF01, nicht ausgeführt werden können, da diese den SFC 24
nicht unterstützen.

Programmbausteine für SIMATIC NET S7-CPs


86 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.2.2 Eingangsparameter - FTP_CMD

Erläuterung der Eingangsparameter


Sie müssen jeden FTP-Bausteinaufruf mit folgenden Eingangsparametern versorgen:

Tabelle 2- 8 Formalparameter des FB40 (FTP_CMD) - Eingangsparameter

Parameter Deklaration Typ Wertebereich Bedeutung / Bemerkung


ID INPUT INT Bei S7-300: 1, Die FTP-Aufträge werden über FTP-
2...16 Verbindungen abgewickelt. Der Parameter
Bei S7-400: 1, identifiziert die genutzte Verbindung.
2...64
LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP mit STEP 7 wird die
Baugruppen-Anfangsadresse ausgegeben.
Geben Sie diese Adresse hier an..
CMD INPUT BYTE 0: NOOP FTP-Kommandos, die mit Aufruf des FB 40
1: CONNECT ausgeführt werden. Weitere Informationen finden
2: STORE Sie im Anschluss an die Tabelle.
3: RETRIEVE Wenn ein Kommando nicht von der CP-Firmware
4: DELETE unterstützt wird, dann wird eine Fehlermeldung
5: QUIT mit STATUS = 8F6BH ausgegeben.
6: APPEND
Beispiele für FTP-Kommandos:
7: RETR_PART
17:  RETRIEVE: B#16#3
CONNECT_TLS  CONNECT_TLS_PRIVATE: B#16#11
_PRIVATE

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 87
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Parameter Deklaration Typ Wertebereich Bedeutung / Bemerkung


NAME_STR INPUT ANY als VARTYPE Die angegebene Adresse verweist auf einen
ist nur "BYTE" Datenbausteinbereich. Anzugeben sind hier
zugelassen. Adresse und Länge des Datenbereichs, in dem
die Zielangaben eingetragen sind.
 Bei CMD = 1, 17:

Bei diesem Kommando spezifiziert der


Parameter "NAME_STR" den mit der FTP-
Verbindung anzusprechenden FTP-Server mit
folgenden Attributen:
- IP-Adresse des FTP-Servers
- Benutzername
- Passwort für das Login

Diese Werte sind als drei aufeinander


folgende Strings im Zielbereich des ANY-
Pointers anzugeben.
 Bei CMD = 2, 3, 4, 6, 7:

Bei diesem Kommando spezifiziert der


Parameter "NAME_STR" den Dateinamen auf
dem FTP-Server, also die Datenquelle bzw.
das Datenziel. Der Dateiname ist als String im
Zielbereich des ANY-Pointers anzugeben.
 Bei CMD = 5: Parameter nicht relevant
Beispiele für Inhalte finden Sie weiter unten.
FILE_DB_NR INPUT INT Der hier angegebene Datenbaustein enthält den
zu lesenden / zu schreibenden File-DB.
Der Parameter ist nur bei CMD = 2, 3, 6 und 7
relevant.

Programmbausteine für SIMATIC NET S7-CPs


88 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Parameter Deklaration Typ Wertebereich Bedeutung / Bemerkung


OFFSET INPUT DWORD Nur bei CMD = 7:
Offset in Byte, ab dem die Datei gelesen werden
soll.
LEN INPUT DWORD Nur bei CMD = 7:
Teillänge in Byte, die ab dem in "OFFSET"
angegebenen Wert gelesen werden.
Besonderheiten:
 Bei Angabe von "DW#16#FFFFFFFF" wird der
verfügbare Rest der Datei gelesen.

Ergebnis OK (DONE = 1, STATUS = 0), falls


kein sonstiger Fehler auftritt.
 Wenn OFFSET > Länge der Original-Datei:

Die Länge der Ziel-Datei wird in diesem Fall


wie folgt im Parameter ACT_LENGTH im File-
DB angezeigt: 0 Byte in der CPU.

Ergebnis OK (DONE = 1, STATUS = 0), falls


kein sonstiger Fehler auftritt.
 Wenn OFFSET + LEN > Länge der Original-
Datei (und LEN ≠ 0xFFFFFFFF):

Die Länge der Ziel-Datei wird in diesem Fall


wie folgt im Parameter ACT_LENGTH im File-
DB angezeigt: Verfügbare Bytes ab
"OFFSET".

Ergebnis OK (DONE = 1, STATUS = 0), falls


kein sonstiger Fehler auftritt.

FTP-Kommandos im Parameter "CMD"


Entnehmen Sie der folgenden Tabelle, welche Bedeutung die Kommandos des Parameters
"CMD" haben und welche Input-Parameter jeweils zu versorgen sind. Die Parameter ID und
LADDR müssen zur Identifikation der Verbindung immer gesetzt sein.

CMD Relevante Input- Bedeutung / Handhabung


Parameter (zusätzlich zu
ID und LADDR)
0 (NOOP) - Der aufgerufene FC führt keine Aktionen aus. Die Statusanzeigen
werden bei dieser Parameterversorgung wie folgt gesetzt:
 DONE=1; ERROR=0; STATUS=0
1 (CONNECT) NAME_STR Mit diesem Kommando baut der FTP-Client eine FTP-Verbindung zu
einem FTP-Server auf (Port 21).
Die Verbindung steht unter der hier zugewiesenen Verbindungs-ID
für alle weiteren FTP-Kommandos zur Verfügung. Daten werden
dann mit dem für diesen Benutzer angegebenen FTP-Server
ausgetauscht.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 89
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

CMD Relevante Input- Bedeutung / Handhabung


Parameter (zusätzlich zu
ID und LADDR)
2 (STORE) NAME_STR Mit diesem Funktionsaufruf wird ein Datenbaustein (File-DB) vom
FILE_DB_NR FTP-Client (S7-CPU) zum FTP-Server übertragen.
Achtung: Falls die Datei (File-DB) auf dem FTP-Server schon
vorhanden ist, wird diese überschrieben.
3 (RETRIEVE) NAME_STR Mit diesem Funktionsaufruf wird eine Datei vom FTP-Server zum
FILE_DB_NR FTP-Client (S7-CPU) übertragen.
Achtung: Falls der Datenbaustein (File-DB) beim FTP-Client schon
eine Datei enthält, wird diese überschrieben.
4 (DELETE) NAME_STR Mit diesem Funktionsaufruf löschen Sie eine Datei auf dem FTP-
Server.
5 (QUIT) Keine weiteren Mit diesem Funktionsaufruf bauen Sie die über die ID benannte FTP-
Verbindung ab.
6 (APPEND) NAME_STR Ähnlich wie "STORE" speichert das Kommando "APPEND"
FILE_DB_NR (anhängen) eine Datei auf dem FTP-Server. Bei "APPEND" wird die
Datei auf dem FTP-Server aber nicht überschrieben, sondern der
neue zu speichernde Inhalt wird an die Datei angehängt.
Falls die Datei auf dem FTP-Server nicht vorhanden ist, wird sie
angelegt.
7 (RETR_PART) NAME_STR Mit dem Kommando "RETR_PART" (Teillänge lesen) können Sie
FILE_DB_NR einen Ausschnitt einer Datei vom FTP-Server anfordern.
OFFSET Bei sehr großen Dateien können Sie damit das Lesen auf den Teil
LEN beschränken, den Sie gerade benötigen.
Dazu müssen Sie die Struktur dieser Datei kennen.
Geben Sie den gewünschten Ausschnitt der Datei mit Hilfe der zwei
Parameter "OFFSET" und "LEN" am FB 40 an.
17 NAME_STR Mit dem Kommando " CONNECT_TLS_PRIVATE" richtet der FTP-
(CONNECT_TLS_PRIV Client eine SSL-gesicherte FTP-Verbindung (FTPS) zum FTP-Server
ATE) (Port 21) ein. Die Daten der Kontrollverbindung als auch die der
Datenverbindung sind sicher.
Die Verbindung steht unter der hier zugewiesenen Verbindungs-ID
für alle weiteren FTP-Kommandos zur Verfügung. Daten werden
dann mit dem für diesen Benutzer angegebenen FTP-Server
ausgetauscht.
Voraussetzungen:
 Die Optionen "Security" sowie FTPs müssen beim CP aktiviert
sein.
 Für die SSL-gesicherte FTP-Verbindung müssen Zertifikate in der
CP-Projektierung geliefert werden.

Programmbausteine für SIMATIC NET S7-CPs


90 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Beispiele für Inhalte des Parameters "NAME_STR"


Der Parametersatz hat folgende Inhalte:

Tabelle 2- 9 Inhalt des Parametersatzes für CMD = 1, 17

Relative Name Typ 1) Beispiel Bedeutung


Adresse 2)
0.0 ip_address STRING[100] ’142.11.25.135’ IP-Adresse des FTP-Servers
102.0 username STRING[32] ’benutzer’ Benutzername für das Login auf
dem FTP-Server
136.0 password STRING[32] ’passwort’ Passwort für das Login auf dem
FTP-Server
1) Angegeben ist die jeweils maximal mögliche String-Länge
2) Die angegebenen Werte beziehen sich auf die unter "Typ" angegebenen String-Längen.

Tabelle 2- 10 Inhalt des Parametersatzes für CMD = 2, 3, 4, 6, 7

Relative Name Typ 1) Beispiel Bedeutung


Adresse 2)
170.0 filename STRING[ 220] ’anlage1/kessel2/druck.dat’ Dateiname der Ziel- bzw.
bzw. Quelldatei
STRING[ 212] Hinweis:
Bei CMD=7 (RETR_PART) ist die
maximale Länge des Dateinamens
auf 212 Zeichen begrenzt.
1) Angegeben ist die jeweils maximal mögliche String-Länge
2) Die angegebenen Werte beziehen sich auf die unter "Typ" angegebenen String-Längen.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 91
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.2.3 Ausgangsparameter und Statusinformationen - FTP_CMD

Einleitung
Für die Statusauswertung sind im Anwenderprogramm die Parameter auszuwerten:

Tabelle 2- 11 Formalparameter des FB40 (FTP_CMD) - Ausgangsparameter

Parameter Deklaration Typ Wertebereich Bedeutung / Bemerkung


DONE OUTPUT BOOL 0: - Der Zustandsparameter zeigt an,
1: Auftrag ausgeführt ob der Auftrag fehlerfrei
abgewickelt wurde.
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Der Parameter meldet, wenn der
Auftrag nicht fehlerfrei ausgeführt
werden konnte.
STATUS OUTPUT WORD siehe nachfolgende Statusanzeige
Tabelle Der Parameter liefert
Detailinformation zur
Auftragsausführung.

Die Parameter DONE, ERROR und STATUS werden bei jedem Bausteinaufruf aktualisiert.

Beispiel
Während einer Auftragsausführung liefert der FB 40 die Anzeigen:
● DONE=0
● ERROR=0
● STATUS=8181H
Bedeutung: Der Auftrag läuft noch.

Statusanzeigen auswerten

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben im
Referenzhandbuch STEP 7 Standard und Systemfunktionen. Sie finden dort Hinweise im
Kapitel "Fehlerauswertung mit dem Ausgangsparameter RET_VAL".

Tabelle 2- 12 FB 40: Bedeutung des Parameters STATUS in Zusammenhang mit DONE und ERROR

DONE ERROR STATUS Bedeutung


0 0 0000H Kein Auftrag in Bearbeitung.
1 0 0000H Auftrag fertig ohne Fehler.

Programmbausteine für SIMATIC NET S7-CPs


92 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

DONE ERROR STATUS Bedeutung


0 0 8181H Auftrag läuft.
Bei Daueranzeige von 8181H:
Der CP ist nicht für den FB 40 freigegeben (ein für die Firmware-
Version unzulässiges Kommando CMD 6, CMD 7 oder CMD 17 wurde
aufgerufen.)
0 1 8090H  Eine Baugruppe mit dieser Baugruppen-Anfangsadresse ist nicht
vorhanden.
 Der verwendete Baustein passt nicht zur verwendeten
Systemfamilie (für S7-300 und S7-400 sind unterschiedliche
Bausteine zu verwenden).
0 1 8091H Baugruppen-Anfangsadresse nicht auf Doppel-Wort-Raster
0 1 8092H Typangabe im ANY-Pointer ungleich Byte
0 1 80A4H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut (bei
neueren CPU-Ausgabeständen).
Dies kann beispielsweise begründet sein durch:
 eine fehlende Projektierung von Verbindungen
 eine Überschreitung der maximalen Anzahl parallel betreibbarer
CPs
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H Ziel-Bereich ist ungültig;
beispielsweise Ziel-Bereich > 240 Byte.
0 1 80B2H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut (bei
älteren CPU-Ausgabeständen).
(bei neueren CPU-Ausgabeständen siehe 80A4H)
0 1 80C0H Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Betriebsmittel (Speicher) belegt.
0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll.)
0 1 80D2H Baugruppen-Anfangsadresse ist falsch.
0 1 8183H Die Projektierung entspricht nicht den Auftragsparametern.
0 1 8184H Unzulässiger Datentyp für den Parameter NAME_STR angegeben.
0 1 8186H Parameter ID ungültig. ID = 1, 2....64
0 1 8302H Keine Empfangsressourcen in der Zielstation vorhanden.
0 1 8F22H Quell-Bereich ungültig; beispielsweise:
Bereich im DB nicht vorhanden
0 1 8F24H Bereichsfehler beim Lesen eines Parameters
0 1 8F28H Ausrichtungfehler beim Lesen eines Parameters
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F33H DB-Nummer-Fehler
0 1 8F3AH Bereich nicht geladen (DB)
0 1 8F50H File-DB DB 0 oder DB nicht vorhanden
0 1 8F51H File-DB-Datenbereich größer angegeben als vorhanden

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 93
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

DONE ERROR STATUS Bedeutung


0 1 8F52H File-DB im schreibgeschützten Speicher
0 1 8F53H File-DB max. Länge < akt. Länge
0 1 8F54H File-DB enthält keine gültigen Daten.
0 1 8F55H Header-Status-Bit: Locked
0 1 8F56H Das NEW-Bit im File-DB-Header wurde nicht zurückgesetzt
0 1 8F57H FTP-Client hat nicht das Schreibrecht auf den File-DB, sondern der
FTP-Server (Header-Status-Bit: WriteAccess).
0 1 8F60H Ungültige Benutzer-Daten, beispielsweise ungültige IP Adresse des
FTP-Servers
0 1 8F61H FTP-Server nicht erreichbar
0 1 8F62H Mögliche Bedeutungen:
 Auftrag wird vom FTP-Server nicht unterstützt oder
zurückgewiesen
 Der FTP-Server unterstützt keine SSL-gesicherten Verbindungen.
0 1 8F63H Dateitransfer wurde vom FTP-Server abgebrochen
0 1 8F64H Fehler auf der FTP-Control-Verbindung; Daten konnten nicht gesendet
oder empfangen werden; Die FTP-Control-Verbindung muss nach
einem solchen Fehler erneut aufgebaut werden.
0 1 8F65H Fehler auf der FTP-Daten-Verbindung; Daten konnten nicht gesendet
oder empfangen werden. Der Auftrag muss erneut aufgerufen werden.
Der Fehler kann beispielsweise bei der Funktion RETRIEVE (CMD=3)
dadurch hervorgerufen werden, dass die angesprochene Datei auf
dem FTP-Server bereits geöffnet ist.
0 1 8F66H Fehler beim Lesen/Schreiben der Daten von/zur CPU (beispielsweise
DB nicht vorhanden oder zu klein)
0 1 8F67H Fehler im FTP-Client auf dem CP; beispielsweise beim Versuch, mehr
als die maximal mögliche Anzahl an FTP-Verbindungen zu öffnen.
0 1 8F68H Der Auftrag wurde vom FTP-Client zurückgewiesen.
Der Fehler kann beispielsweise bei der Funktion RETRIEVE (CMD=3)
dadurch hervorgerufen werden, dass der Wert für den Parameter
MAX_LENGTH im File-DB-Header zu klein gewählt wurde.
0 1 8F69H Die FTP-Verbindung befindet sich in einem falschem Zustand, z.B.:
 Es erfolgt ein Aufruf der Verbindung ohne vorhergehenden
Verbindungsabbau (bei gleicher Verbindungs-ID);
 Es erfolgt ein Verbindungsabbau auf eine bereits abgebaute
Verbindung;
 Es wurde ein STORE-Kommando auf eine nicht aufgebaute
Verbindung abgesetzt.
0 1 8F6AH Die Verbindung konnte wegen temporärem Ressourcenengpass nicht
aufgebaut werden.
Abhilfe: Bausteinaufruf wiederholen.

Programmbausteine für SIMATIC NET S7-CPs


94 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

DONE ERROR STATUS Bedeutung


0 1 8F6BH Mögliche Ursachen:
 Falscher Wert für den Parameter CMD
 Ein Kommando des FB 40 wird nicht unterstützt.

Mögliche Ursache: Falsche Firmware des CP


Abhilfe: Firmware-Update (bei älteren CPs statt des FB 40 die
Funktionen FC 40...FC 44 benutzen.)
0 1 8F6CH Im Parameter OFFSET wurde ein Wert > 7FFF FFFH angegeben.
0 1 8F6DH Der FTP-Client unterstützt keine SSL-gesicherte Verbindung.
0 1 8F6EH Die Signatur des Zertifikats ist ungültig.
0 1 8F6FH Mögliche Ursachen:
 Im Zertifikat enthält die Zeitangabe "notBefore" einen ungüligen
Wert.
 Das Zertifikat ist ungültig: der Eintrag "notBefore" enthält eine nach
der aktuellen Zeit liegende Zeitangabe.
0 1 8F70H Mögliche Ursachen:
 Im Zertifikat enthält die Zeitangabe "notAfter" einen ungüligen Wert.
 Das Zertifikat ist abgelaufen: der Eintrag "notAfter" enthält eine vor
der aktuellen Zeit liegende Zeitangabe.
0 1 8F71H Das Herausgeber-Zertifikat konnte nicht gefunden werden: das
Herausgeber-Zertifikat eines nicht vertrauenswürdigen Zertifikates
konnte nicht gefunden werden.
0 1 8F72H Das ursprüngliche CA-Zertifikat ist ungültig. Entweder handelt es sich
nicht um ein CA-Zertifikat oder dessen Erweiterungen sind nicht
konsistent mit dem beabsichtigten Zweck.
0 1 8F73H Das ursprüngliche CA-Zertifikat ist nicht als vertrauenswürdig
gekennzeichnet für den angegebenen Zweck.
0 1 8F74H Es sind sonstige Fehler bei der Verifizierung eines Zertifikates
aufgetreten.
0 1 8F7FH Interner Fehler; beispielsweise unzulässige ANY-Referenz

2.4.2.4 Migration von FC 40-44 zum FTP_CMD

Vergleich des Funktionsbausteins FB40 mit den älteren Funktionen FC40...44


Sämtliche CPs mit FTP-Funktionalität unterstützen die Funktionen FC40...44. Bestehende
Anwenderprogramme können also unverändert verwendet werden.
Wenn Sie von den FTP-Funktionen FC40...44 auf den FB40 umstellen wollen, dann müssen
Sie Ihr Anwenderprogramm ändern.
Die folgende Tabelle zeigt Ihnen, mit welchen Kommandos des FB40 die Funktionen der
FC40...44 umgesetzt werden.
● Übereinstimmungen sind mit "X" markiert.
● Fehlende Entsprechungen sind mit "-" gekennzeichnet.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 95
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Kommandos des Parameters "CMD" des FTP_CMD


Ältere FTP- CMD = 1 CMD = 2 CMD = 3 CMD = 4 CMD = 5 CMD = 6 CMD
Funktionen =7
FC40...44 CMD = 17
FC40 X 1)

FC41 X 2)
FC42 X 3)
FC43 X 4)
FC44 X
-

1)...4) Die Parameter von FC 40...43 und CMD 1...4 (FB 40) sind nicht identisch.

(siehe nachfolgende Tabelle)

Die entsprechenden Parameter, die in den Funtionen FC40...FC43 bzw. in den Kommandos
des FB40 die jeweilige Funktion spezifizieren, sind in folgender Tabelle aufgelistet.

Parameter des FC Parameter im FTP_CMD (mit CMD 1...4)


FC40: LOGIN → CMD = 1: NAME_STR
FC41: FILE_NAME → CMD = 2: NAME_STR
FC42: FILE_NAME → CMD = 3: NAME_STR
FC43: FILE_NAME → CMD = 4: NAME_STR
FC40...43: BUFFER_DB_NR → entfällt (durch Instanz-DB ersetzt)

Programmbausteine für SIMATIC NET S7-CPs


96 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.3 FTP_CONNECT

2.4.3.1 Bedeutung und Aufruf - FTP_CONNECT

Bedeutung
Mit diesem Funktionsaufruf baut der FTP-Client eine FTP Verbindung zu einem FTP-Server
auf.
Dazu ist die IP-Adresse des FTP-Servers, die Benutzer-Identifikation (username) und (bei
Bedarf) das Passwort zur Benutzer-Identifikation an den FTP-Server zu übermitteln.
Der FTP-Client führt alle weiteren Zugriffe auf Basis dieser Benutzer-Identifikation aus, wenn
Sie die selbe FTP-Verbindungs-ID verwenden. Daten werden dann mit dem für diesen
Benutzer angegebenen FTP-Server ausgetauscht.

Aufrufschnittstelle

)73B&211(&7

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

$1< /2*,1

,17 %8))(5B'%B15

Aufrufbeispiel in AWL-Darstellung

AWL Erläuterung
call fc40 ( //FTP_CONNECT aufrufen
ACT := M 420.0, //Auftragsanstoss über Merkerbit
ID := 4, //FTP-Verbindungs ID gemäß Projektierung
LADDR := W#16#3FFD, //Baugruppenadresse gemäß Projektierung
LOGIN := P#DB40.DBX 0.0 BYTE 170, //Angabe für LOGIN in DB 40
BUFFER_DB_NR := 9, //Pufferbereich für FTP-Dienst
DONE := M 420.1,
ERROR := M 420.2,
STATUS := MW 422);

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 97
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.3.2 Erläuterung der Formalparameter - FTP_CONNECT

Erläuterung der allgemeinen Aufrufparameter


Allgemeine Parameter haben bei jedem FTP-Funktionsaufruf identische Bedeutung; ihre
Beschreibung ist daher in jeweils einem Kapitel zusammengefasst.

Erläuterung der aufrufspezifischen Formalparameter

Tabelle 2- 13 Formalparameter für FTP_CONNECT

Parameter Deklaration Datentyp Beschreibung


LOGIN INPUT ANY Dieser Parameter spezifiziert den mit der FTP-Verbindung
(als VARTYPE anzusprechenden FTP-Server.
sind nur (weitere Details siehe in nachfolgender Tabelle)
zugelassen: Anzugeben sind hier Adresse und Länge des Datenbereiches, in dem
BYTE) die Zielangaben eingetragen sind.
Die angegebene Adresse verweist auf einen Datenbausteinbereich.
Zur Adressierung dieses Bereiches wird der Datentyp ANY-Pointer
verwendet. Weitergehende Informationen zu diesem Datentyp finden
Sie in der Online-Hilfe zu STEP 7, dort im Anhang der Hilfethemen
unter "Format des Parametertyps ANY".
BUFFER_DB_NR INPUT INT Geben Sie hier einen Datenbaustein an, den der FTP-Client für den
FTP-Transfer als Pufferbereich benötigt.
Sie können für alle FTP-Aufträge den selben Datenbaustein als
Pufferbereich verwenden.
Hinweis:
Die Länge des hierfür reservierten DB muss mindestens 255 Byte
betragen!

Parameter LOGIN
Dieser Parametersatz hat für FTP_CONNECT folgenden Inhalt:

relative Name Typ 1) Beispiel Bedeutung


Adresse 2)
0.0 ip_address STRING[100] '142.11.25.135' IP-Adresse des FTP-Servers.
102.0 username STRING[32] 'benutzer' Benutzername für das Login auf dem
FTP-Server.
136.0 password STRING[32] 'passwort' Passwort für das Login auf dem FTP-
Server.
170.0 filename STRING[220] ’anlage1/kessel2/druck.dat’ Dateiname der Ziel- bzw. Quelldatei 3)
1) angegeben ist die jeweils maximal mögliche String-Länge
2) die angegebenen Werte beziehen sich auf die unter "Typ" angegebenen String-Längen.
3) Diese Zeilen sind bei diesem Aufruf nicht relevant.

Programmbausteine für SIMATIC NET S7-CPs


98 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.4 FTP_STORE

2.4.4.1 Bedeutung und Aufruf - FTP_STORE

Bedeutung
Mit diesem Funktionsaufruf wird ein Datenbaustein (File-DB) vom FTP-Client (S7-CPU) zum
FTP-Server übertragen.
Hierzu müssen Sie den Datenbaustein angeben, der die Datei enthält. Der Pfad-/File-Name,
unter dem das File auf dem FTP-Server angelegt werden soll, ist ebenfalls vorzugeben.
Falls die Datei (File-DB) auf dem FTP-Server schon vorhanden ist, wird diese
überschrieben.

Aufrufschnittstelle
FTP_STORE

BOOL ACT DONE BOOL

INT ID ERROR BOOL

WORD LADDR STATUS WORD

ANY FILE_NAME

INT BUFFER_DB_NR

INT FILE_DB_NR

Aufrufbeispiel in AWL-Darstellung

AWL Erläuterung
call fc41 ( //FTP_STORE aufrufen
ACT := M 420.0, //Auftragsanstoss über Merkerbit
ID := 4, //FTP-Verbindungs-ID gemäß Projektierung
LADDR := W#16#3FFD, //Baugruppenadresse gemäß Projektierung
FILE_NAME := P#DB40.DBX 170.0 BYTE 220, //Angabe für Ziel-Datei in DB 40
BUFFER_DB_NR := 9, //Pufferbereich für FTP-Dienst
FILE_DB_NR := 42, //DB Nr. der Quell-Datei
DONE := M 420.1,
ERROR := M 420.2,
STATUS := MW 422);

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 99
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.4.2 Erläuterung der Formalparameter - FTP_STORE

Erläuterung der allgemeinen Aufrufparameter


Allgemeine Parameter haben bei jedem FTP-Funktionsaufruf identische Bedeutung; ihre
Beschreibung ist daher in jeweils einem Kapitel zusammengefasst.

Erläuterung der aufrufspezifischen Formalparameter

Tabelle 2- 14 Formalparameter für FTP_STORE

Parameter Deklaration Datentyp Beschreibung


FILE_NAME INPUT ANY Dieser Parameter spezifiziert das Datenziel.
(als VARTYPE (weitere Details siehe in nachfolgender Tabelle)
sind nur Anzugeben sind hier Adresse und Länge des Datenbereiches,
zugelassen: in dem die Zielangaben eingetragen sind.
BYTE) Die angegebene Adresse verweist auf einen
Datenbausteinbereich.
Zur Adressierung dieses Bereiches wird der Datentyp ANY-
Pointer verwendet. Weitergehende Informationen zu diesem
Datentyp finden Sie in der Online-Hilfe zu STEP 7, dort im
Anhang der Hilfethemen unter "Format des Parametertyps
ANY".
BUFFER_DB_NR INPUT INT Geben Sie hier einen Datenbaustein an, den der FTP-Client
für den FTP-Transfer als Pufferbereich benötigt.
Sie können für alle FTP-Aufträge den selben Datenbaustein
als Pufferbereich verwenden.
Hinweis:
Die Länge des hierfür reservierten DB muss mindestens 255
Byte betragen!
FILE_DB_NR INPUT INT Der hier angegebene Datenbaustein enthält den zu lesenden
File-DB.

Parameter FILE_NAME
Dieser Parametersatz hat für FTP_STORE folgenden Inhalt:

relative Name Typ 1) Beispiel Bedeutung


Adresse 2)
0.0 ip_address STRING[100] '142.11.25.135' IP-Adresse des FTP-Servers. 3)
102.0) username STRING[32] 'benutzer' Benutzername für das Login auf dem FTP-
Server. 3)

Programmbausteine für SIMATIC NET S7-CPs


100 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

relative Name Typ 1) Beispiel Bedeutung


Adresse 2)
136.0 password STRING[32] 'passwort' Passwort für das Login auf dem FTP-Server.
3)

170.0 filename STRING[220] ’anlage1/kessel2/druck.dat’ Dateiname der Ziel- bzw. Quelldatei


1) angegeben ist die jeweils maximal mögliche String-Länge
2) die angegebenen Werte beziehen sich auf die unter "Typ" angegebenen String-Längen.
3) Diese Zeilen sind bei diesem Aufruf nicht relevant.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 101
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.5 FTP_RETRIEVE

2.4.5.1 Bedeutung und Aufruf - FTP_RETRIEVE

Bedeutung
Mit diesem Funktionsaufruf wird eine Datei vom FTP-Server zum FTP-Client (S7-CPU)
übertragen.
Hierzu müssen Sie den Datenbaustein angeben, in den die Datei abgelegt werden soll. Der
Pfad-/File-Name, unter dem das File auf dem FTP-Server zu finden ist, muss ebenfalls
vorgegeben werden.
Falls der Datenbaustein (File-DB) beim FTP-Client schon eine Datei enthält, wird diese
überschrieben.

Aufrufschnittstelle
FTP_RETRIEVE

BOOL ACT DONE BOOL

INT ID ERROR BOOL

WORD LADDR STATUS WORD

ANY FILE_NAME

INT BUFFER_DB_NR

INT FILE_DB_NR

Aufrufbeispiel in AWL-Darstellung

AWL Erläuterung
call fc42 ( //FTP_RETRIEVE aufrufen
ACT := M 420.0, //Auftragsanstoss über Merkerbit
ID := 4, //FTP-Verbindungs-ID gemäß Projektierung
LADDR := W#16#3FFD, //Baugruppenadresse gemäß Projektierung
FILE_NAME := P#DB40.DBX 170.0 BYTE 220, //Angabe für Quell-Datei in DB 40
BUFFER_DB_NR := 9, //Pufferbereich für FTP-Dienst
FILE_DB_NR := 42, // DB Nr. der Zieldatei
DONE := M 420.1,
ERROR := M 420.2,
STATUS := MW 422);

Programmbausteine für SIMATIC NET S7-CPs


102 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.5.2 Erläuterung der Formalparameter - FTP_RETRIEVE

Erläuterung der allgemeinen Aufrufparameter


Allgemeine Parameter haben bei jedem FTP-Funktionsaufruf identische Bedeutung; ihre
Beschreibung ist daher in jeweils einem Kapitel zusammengefasst.

Erläuterung der aufrufspezifischen Formalparameter

Tabelle 2- 15 Formalparameter für FTP_RETRIEVE

Parameter Deklaration Datentyp Beschreibung


FILE_NAME INPUT ANY Dieser Parameter spezifiziert die Datenquelle.
(als (weitere Details siehe in nachfolgender Tabelle)
VARTYPE Anzugeben sind hier Adresse und Länge des Datenbereiches, in
sind nur dem die Zielangaben eingetragen sind.
zugelassen:
Die angegebene Adresse verweist auf einen Datenbausteinbereich.
BYTE)
Zur Adressierung dieses Bereiches wird der Datentyp ANY-Pointer
verwendet. Weitergehende Informationen zu diesem Datentyp
finden Sie in der Online-Hilfe zu STEP 7, dort im Anhang der
Hilfethemen unter "Format des Parametertyps ANY".
BUFFER_DB_NR INPUT INT Geben Sie hier einen Datenbaustein an, den der FTP-Client für den
FTP-Transfer als Pufferbereich benötigt.
Sie können für alle FTP-Aufträge den selben Datenbaustein als
Pufferbereich verwenden.
Hinweis:
Die Länge des hierfür reservierten DB muss mindestens 255 Byte
betragen!
FILE_DB_NR INPUT INT Der hier angegebene Datenbaustein enthält den zu beschreibenden
File-DB (Datenziel).

Parameter FILE_NAME
Dieser Parametersatz hat für FTP_RETRIEVE folgenden Inhalt:

relative Name Typ 1) Beispiel Bedeutung


Adresse 2)
0.0 ip_address STRING[100] '142.11.25.135' IP-Adresse des FTP-Servers. 3)
102.0 username STRING[32] 'benutzer' Benutzername für das Login auf dem FTP-
Server. 3)
136.0 password STRING[32] 'passwort' Passwort für das Login auf dem FTP-
Server. 3)
170.0 filename STRING[220] ’anlage1/kessel2/druck.dat’ Dateiname der Ziel- bzw. Quelldatei
1) angegeben ist die jeweils maximal mögliche String-Länge
2) die angegebenen Werte beziehen sich auf die unter "Typ" angegebenen String-Längen.
3) Diese Zeilen sind bei diesem Aufruf nicht relevant.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 103
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.6 FTP_DELETE

2.4.6.1 Bedeutung und Aufruf - FTP_DELETE

Bedeutung
Mit diesem Funktionsaufruf löschen Sie eine Datei auf dem FTP-Server.

Aufrufschnittstelle
FTP_DELETE

BOOL ACT DONE BOOL

INT ID ERROR BOOL

WORD LADDR STATUS WORD

ANY FILE_NAME

INT BUFFER_DB_NR

Aufrufbeispiel in AWL-Darstellung

AWL Erläuterung
call fc43 ( //FTP_DELETE aufrufen
ACT := M 420.0, //Auftragsanstoss über Merkerbit
ID := 4, //FTP-Verbindungs-ID gemäß Projektierung
LADDR := W#16#3FFD, //Baugruppenadresse gemäß Projektierung
FILE_NAME := P#DB40.DBX 170.0 BYTE 220, //Angabe für Ziel-Datei in DB 40
BUFFER_DB_NR := 9, //Pufferbereich für FTP-Dienst
DONE := M 420.1,
ERROR := M 420.2,
STATUS := MW 422);

2.4.6.2 Erläuterung der Formalparameter - FTP_DELETE

Erläuterung der allgemeinen Aufrufparameter


Allgemeine Parameter haben bei jedem FTP-Funktionsaufruf identische Bedeutung; ihre
Beschreibung ist daher in jeweils einem Kapitel zusammengefasst.

Programmbausteine für SIMATIC NET S7-CPs


104 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Erläuterung der aufrufspezifischen Formalparameter

Tabelle 2- 16 Formalparameter für FTP_DELETE

Parameter Deklaration Datentyp Beschreibung


FILE_NAME INPUT ANY Dieser Parameter spezifiziert das Datenziel.
(als VARTYPE (weitere Details siehe in nachfolgender Tabelle)
sind nur Anzugeben sind hier Adresse und Länge des Datenbereiches, in
zugelassen: dem die Zielangaben eingetragen sind.
BYTE) Die angegebene Adresse verweist auf einen
Datenbausteinbereich.
Zur Adressierung dieses Bereiches wird der Datentyp ANY-Pointer
verwendet. Weitergehende Informationen zu diesem Datentyp
finden Sie in der Online-Hilfe zu STEP 7, dort im Anhang der
Hilfethemen unter "Format des Parametertyps ANY".
BUFFER_DB_NR INPUT INT Geben Sie hier einen Datenbaustein an, den der FTP-Client für
den FTP-Transfer als Pufferbereich benötigt.
Sie können für alle FTP-Aufträge den selben Datenbaustein als
Pufferbereich verwenden.
Hinweis:
Die Länge des hierfür reservierten DB muss mindestens 255 Byte
betragen!

Parameter LOGIN
Dieser Parametersatz hat für FTP_DELETE folgenden Inhalt:

relative Name Typ 1) Beispiel Bedeutung


Adresse 2)
0.0 ip_address STRING[100] '142.11.25.135' IP-Adresse des FTP-Servers. 3)
102.0 username STRING[32] 'benutzer' Benutzername für das Login auf dem FTP-
Server. 3)
136.0 password STRING[32] 'passwort' Passwort für das Login auf dem FTP-
Server. 3)
170.0 filename STRING[220] ’anlage1/kessel2/druck.dat’ Dateiname der Ziel- bzw. Quelldatei
1) angegeben ist die jeweils maximal mögliche String-Länge
2) die angegebenen Werte beziehen sich auf die unter "Typ" angegebenen String-Längen.
3) Diese Zeilen sind bei diesem Aufruf nicht relevant.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 105
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.7 FTP_QUIT

2.4.7.1 Bedeutung und Aufruf - FTP_QUIT

Bedeutung
Mit diesem Funktionsaufruf bauen Sie die über die ID benannte FTP-Verbindung ab.

Aufrufschnittstelle
FTP_QUIT

BOOL ACT DONE BOOL

INT ID ERROR BOOL

WORD LADDR STATUS WORD

Aufrufbeispiel in AWL-Darstellung

AWL Erläuterung
call fc44 ( //FTP_QUIT aufrufen
ACT := M 420.0, //Auftragsanstoss über Merkerbit
ID := 4, //FTP-Verbindungs-ID gemäß Projektierung
LADDR := W#16#3FFD, //Baugruppenadresse gemäß Projektierung
DONE := M 420.1,
ERROR := M 420.2,
STATUS := MW 422);

ACHTUNG

Der Ausgang von FC44 muss als Wert ein Merkerwort bekommen. Beim Eingeben von
DBx.DWy erscheint eine Fehlermeldung (gilt nur für S7-300).

2.4.7.2 Erläuterung der Formalparameter - FTP_QUIT

Erläuterung der allgemeinen Aufrufparameter


Allgemeine Parameter haben bei jedem FTP-Funktionsaufruf identische Bedeutung; ihre
Beschreibung ist daher in jeweils einem Kapitel zusammengefasst.

Programmbausteine für SIMATIC NET S7-CPs


106 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

2.4.8 Parameter zur CP- und Verbindungszuordnung (Eingangsparameter)

Parameter zur CP- und Verbindungszuordnung (Eingangsparameter)


Sie müssen jeden FTP-Bausteinaufruf neben auftragsspezifischen Eingangsparametern mit
folgenden allgemeinen Eingangsparametern versorgen:

Parameter Deklaration Typ 1) Wertebereich Bedeutung


ACT INPUT BOOL 0,1 Der Parameter enthält das Initialisierungsbit zum
Auftragsanstoß.
 Bei ACT = 1 wird der Auftrag ausgeführt.
Während der Auftragsausführung liefert der FC folgende
Anzeigen:
– DONE=0
– ERROR=0
– STATUS=8181H
 Bei ACT = 0 führt der aufgerufene FC keine Aktionen aus;
die Statusanzeigen werden bei dieser
Parameterversorgung wie folgt gesetzt:
– DONE=0
– ERROR=1
– STATUS=8F70H
Anmerkung / Empfehlung:
In Ihrer Anwendung sollten Sie die FTP-Aufrufe bedingt
ausführen, indem Sie beispielsweise die Anzeigen auswerten.
Es ist nicht zweckmäßig, den Aufruf über das ACT-Bit zu
steuern.
Das ACT-Bit muss =1 gesetzt sein, bis die abgeschlossene
Ausführung über das DONE-Bit signalisiert wird.
ID INPUT INT 1,2...64 Die FTP-Aufträge werden über FTP-Verbindungen
abgewickelt. Der Parameter identifiziert die genutzte
Verbindung.
LADDR INPUT WORD Baugruppen-Anfangsadresse
Beim Aufruf eines FC-Bausteines übergeben Sie im
Parameter LADDR die Baugruppen-Anfangsadresse des
ADVANCED-CP.
Die Baugruppen-Anfangsadresse des ADVANCED-CP
können Sie in der Projektierung den Eigenschaften des
ADVANCED-CP unter "Adressen > Eingänge" entnehmen.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 107
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

VORSICHT

Achten Sie unbedingt darauf, dass pro Benutzter-ID jeweils nur ein FTP-Client
Programmbaustein aufgerufen wird, solange ACT = 1 gesetzt ist.
Beispielsweise dürfen FTP_STORE und FTP_RETRIEVE auf der gleichen FTP-Verbindung
nicht zur gleichen Zeit laufen. Diese Anforderung entspricht der normalen FTP-
Funktionalität.
Andernfalls können Sie sich nicht auf die Richtigkeit der Ausgabeparameter (DONE-Bit,
ERROR-Bit und STATUS-Wort) verlassen.

2.4.9 Statusinformationen (Ausgangsparameter)

Statusinformationen (Ausgangsparameter)
Für die Statusauswertung sind im Anwenderprogramm die Parameter auszuwerten:

Parameter Deklaration Typ 1) Wertebereich Bedeutung


DONE OUTPUT BOOL 0: - Der Zustandsparameter zeigt an, ob der Auftrag fehlerfrei
1: Auftrag abgewickelt wurde.
ausgeführt
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Der Parameter meldet, wenn der Auftrag nicht fehlerfrei
ausgeführt werden konnte.
STATUS OUTPUT WORD siehe Statusanzeige
nachfolgende Der Parameter liefert Detailinformation zur Auftragsausführung.
Tabelle

ACHTUNG

Verwenden Sie beim FC FTP_QUIT für den Parameter STATUS nur den Datentyp
Merkerwort (gilt nur bei CP 343-1 IT).

Programmbausteine für SIMATIC NET S7-CPs


108 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Beispiel
Während einer Auftragsausführung liefert der FC die Anzeigen:
● DONE=0
● ERROR=0
● STATUS=8181H

Statusanzeigen auswerten
Beachten Sie, dass die Statusanzeigen DONE, ERROR, STATUS bei jedem Bausteinaufruf
aktualisiert werden.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben im
Referenzhandbuch STEP 7 Standard und Systemfunktionen. Sie finden dort Hinweise im
Kapitel "Fehlerauswertung mit dem Ausgangsparameter RET_VAL"

DONE ERROR STATUS Bedeutung


1 0 0000H Auftrag fertig ohne Fehler.
0 0 0000H Kein Auftrag in Bearbeitung.
0 0 8181H Auftrag läuft.
0 1 8090H  Eine Baugruppe mit dieser Baugruppen-Anfangsadresse ist nicht vorhanden.
 Der verwendete FC passt nicht zur verwendeten Systemfamilie (es sind
unterschiedliche FCs für S7-300 und S7-400 zu verwenden).
0 1 8091H Baugruppen-Anfangsadresse nicht auf Doppel-Wort-Raster.
0 1 8092H Typangabe im ANY-Pointer ungleich Byte.
0 1 80A4H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut. (bei neueren CPU-
Ausgabeständen).
Dies kann beispielsweise begründet sein durch:
 eine fehlende Projektierung von Verbindungen;
 eine Überschreitung der maximalen Anzahl parallel betreibbarer CPs.
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H  Ziel-Bereich ist ungültig.
beispielsweise Ziel-Bereich > 240 Bytes.
0 1 80B2H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut.(bei älteren CPU-
Ausgabeständen; sonst 80A4H; ; weitere Angaben siehe dort)
0 1 80C0H Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung..
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Betriebsmittel (Speicher) belegt.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 109
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

DONE ERROR STATUS Bedeutung


0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll.)
0 1 80D2H Baugruppen-Anfangsadresse ist falsch.
0 1 8183H Die Projektierung entspricht nicht den Auftragsparametern.
0 1 8184H Unzulässiger Datentyp für den Parameter FILE_NAME / LOGIN angegeben.
0 1 8186H Parameter ID ungültig. ID != 1,2....64.
0 1 8F22H Quell-Bereich ungültig; beispielsweise:
Bereich im DB nicht vorhanden
0 1 8F24H Bereichsfehler beim Lesen eines Parameters.
0 1 8F28H Ausrichtungsfehler beim Lesen eines Parameters.
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F33H DB-Nummer Fehler.
0 1 8F3AH Bereich nicht geladen (DB).
0 1 8F50H File-DB DB 0 oder DB nicht vorhanden
0 1 8F51H File-DB Datenbereich größer angegeben als vorhanden
0 1 8F52H File-DB im schreibgeschützten Speicher
0 1 8F53H File-DB max. Länge < akt. Länge
0 1 8F54H File-DB enthält keine gültigen Daten
0 1 8F55H Header-Status-Bit: Locked
0 1 8F56H Das NEW-Bit im File-DB Header wurde nicht zurückgesetzt
0 1 8F57H FTP-Client hat nicht das Schreibrecht auf den File-DB, sondern der FTP-Server
(Header-Status-Bit: WriteAccess)
0 1 8F5AH Buffer-DB DB 0 oder DB nicht vorhanden
0 1 8F5BH Buffer-DB Datenbereich zu klein
0 1 8F5CH Buffer-DB im schreibgeschützten Speicher
0 1 8F60H ungültige Benutzer-Daten, beispielsweise ungültige IP Adresse des FTP Servers
0 1 8F61H FTP Server nicht erreichbar
0 1 8F62H Auftrag wird vom FTP Server nicht unterstützt oder zurückgewiesen
0 1 8F63H Dateitransfer wurde vom FTP Server abgebrochen
0 1 8F64H Fehler auf der FTP Control Verbindung; Daten konnten nicht gesendet oder empfangen
werden; Die FTP-Control-Verbindung muss nach einem solchen Fehler erneut
aufgebaut werden.
0 1 8F65H Fehler auf der FTP Daten Verbindung; Daten konnten nicht gesendet oder empfangen
werden; Der Auftrag (FTP_Store bzw. FTP_Retrieve) muss erneut aufgerufen werden.
Der Fehler kann beispielsweise beim FTP_RETRIEVE dadurch hervorgerufen werden,
dass die angesprochene Datei auf dem FTP-Server bereits geöffnet ist.
0 1 8F66H Fehler beim Lesen/Schreiben der Daten von/zur CPU (beispielsweise DB nicht
vorhanden oder zu klein)
0 1 8F67H Fehler im FTP Client auf dem CP; beispielsweise beim Versuch, mehr als 10 FTP-
Verbindungen zu öffnen.
0 1 8F68H Der Auftrag wurde vom FTP Client zurückgewiesen
Der Fehler kann beispielsweise beim FTP_RETRIEVE dadurch hervorgerufen werden,
dass der Wert für den Parameter MAX_LENGTH im File-DB Header zu klein gewählt
wurde.

Programmbausteine für SIMATIC NET S7-CPs


110 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

DONE ERROR STATUS Bedeutung


0 1 8F69H FTP-Verbindung in falschem Zustand für diesen Aufruf, beispielsweise bei
zweimaligem Connect-Aufruf oder bei Retrieve ohne vorheriges Connect (bei gleicher
Verbindungs-ID)
0 1 8F6AH Die Verbindung konnte wegen temporärem Ressourcenengpass nicht aufgebaut
werden.
Abhilfe: Bausteinaufruf wiederholen.
0 1 8F6CH Die Verbindung konnte nicht aufgebaut werden; der FTP-Client unterstützt nur SSL-
gesicherte Verbindungen.
Abhilfe: Programmbaustein FTP_CMD verwenden.
0 1 8F70H Aufruf eines FTP-Client-Bausteins mit ACT = 0
0 1 8F7FH Interner Fehler; beispielsweise unzulässige ANY-Referenz

2.4.10 Datenbaustein File-DB

2.4.10.1 Aufbau der Datenbausteine (File-DB) für FTP-Dienste - FTP-Client-Betrieb

Funktionsweise
Für die Übertragung von Daten mittels FTP legen Sie in der CPU Ihrer S7-Station
Datenbausteine (File-DBs) an. Diese Datenbausteine müssen einer bestimmten Struktur
genügen, damit sie von den FTP-Diensten als übertragbare Dateien hantiert werden können.
Sie bestehen aus folgenden Abschnitten:
● Abschnitt 1: File-DB-Header (besitzt feste Struktur mit einer Länge von 20 Byte)
● Abschnitt 2: Nutzdaten (besitzt variable Länge und Struktur)

File-DB-Header für FTP-Client-Betrieb


Anmerkung: Der hier beschriebene File-DB Header ist weitgehend identisch zu dem für den
Server-Betrieb beschriebenen File-DB-Header. Die Unterschiede beziehen sich auf die
Parameter:
● WRITE_ACCESS
● FTP_REPLY_CODE

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 111
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Parameter Typ Wert / Bedeutung Versorgung


EXIST BOOL Das EXIST-Bit zeigt an, ob der Das FTP-Kommando dele setzt
Nutzdatenbereich gültige Daten EXIST=0;
enthält. Das FTP-Kommando store setzt
Das FTP-Kommando retrieve EXIST=1;
bearbeitet den Auftrag nur, wenn
EXIST=1.
 0:
Der File-DB enthält keine
gültigen Nutzdaten ("Datei
existiert nicht").
 1:
Der File-DB enthält gültige
Nutzdaten ("Datei existiert").
LOCKED BOOL Das LOCKED-Bit dient zum Die FTP-Kommandos store und retr
Zugriffsschutz für den File-DB. setzen während der Bearbeitung
LOCKED=1.
 0:
Auf den File-DB kann Für einen Schreibvorgang aus dem
zugegriffen werden. Anwenderprogramm gilt:
Das Anwenderprogramm in der S7-
 1:
CPU kann zur Konsistenzsicherung
Der File-DB ist gesperrt.
während eines Schreibzugriffes
LOCKED setzen bzw. zurücksetzen.
Empfehlung zur Vorgehensweise im
Anwenderprogramm:
1. LOCKED-Bit prüfen;
wenn =0
2. WRITEACCESS-Bit=0 setzen
3. LOCKED-Bit prüfen;
wenn =0
4. LOCKED-Bit=1 setzen
5. Daten schreiben
6. LOCKED-Bit=0 setzen
NEW BOOL Das NEW-Bit informiert, ob Daten FTP-Kommando store setzt nach der
seit dem letzten Lesevorgang Bearbeitung NEW=1
verändert wurden. Das Anwenderprogramm in der S7-
 0: CPU muß nach dem Lesen der Daten
Inhalt des File-DB ist NEW=0 setzen, um ein erneutes
unverändert seit letztem Kommando retr zu ermöglichen.
Schreibvorgang. Das
Anwenderprogramm der S7-
CPU hat die letzte Änderung
registriert.
 1:
Das Anwenderprogramm der
S7-CPU hat den letzten
Schreibvorgang noch nicht
registriert.

Programmbausteine für SIMATIC NET S7-CPs


112 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Parameter Typ Wert / Bedeutung Versorgung


WRITE_ACCESS BOOL 0: Das Bit wird bei der DB-Projektierung
Das Anwenderprogramm (FTP- auf einen Initialisierungwert gesetzt.
Client Bausteine) hat Schreibrecht Empfehlung:
für die File-DBs in der S7-CPU.
Das Bit sollte nach Möglichkeit
1: unverändert bleiben! In besonderen
Das Anwenderprogramm (FTP- Fällen ist eine Anpassung im laufenden
Client Bausteine) hat kein Betrieb möglich.
Schreibrecht für die File-DBs in
der S7-CPU.
ACT_LENGTH DINT Aktuelle Länge des Die aktuelle Länge wird nach einem
Nutzdatenbereiches. Schreibvorgang aktualisiert.
Der Inhalt dieses Feldes ist nur
dann gültig, wenn EXIST = 1.
MAX_LENGTH DINT Maximale Länge des Die maximale Länge sollte bei der DB-
Nutzdatenbereiches (Länge des Projektierung festgelegt werden.
gesamten DB abzüglich 20 Byte Der Wert kann auch im laufenden
Header). Betrieb vom Anwenderprogramm
geändert werden.
FTP_REPLY_CODE INT Vorzeichenlose Zahl (16 Bit), die Wird vom FTP-Client bei der FTP-
den letzten Reply-Code von FTP Kommandobearbeitung aktualisiert.
als Binärwert enthält.
Der Inhalt dieses Feldes ist nur
dann gültig, wenn EXIST = 1.
DATE_TIME DATE_AND_TIME Datum und Zeit der letzten Das aktuelle Datum wird nach einem
Änderung des Files. Schreibvorgang aktualisiert.
Der Inhalt dieses Feldes ist nur Wird die Funktion "Uhrzeitweiterleitung"
dann gültig, wenn EXIST = 1. genutzt, entspricht der Eintrag der
weitergeleiteten Zeit.
Wird die Funktion "Uhrzeitweiterleitung"
nicht genutzt, wird eine relative Zeit
eingetragen. Bezug ist der
Anlaufzeitpunkt des IT-CP
(Initialisierungswert ist 1.1.1994 0.0
Uhr).

2.4.10.2 Aufbau der Datenbausteine (File-DB) für FTP-Dienste - FTP-Server-Betrieb

Funktionsweise
Für die Übertragung von Daten mittels FTP legen Sie in der CPU Ihrer S7-Station
Datenbausteine (File-DBs) an. Diese Datenbausteine müssen einer bestimmten Struktur
genügen, damit sie von den FTP-Diensten als übertragbare Dateien hantiert werden können.
Sie bestehen aus folgenden Abschnitten
● Abschnitt 1: File-DB-Header (besitzt feste Länge (20 Byte) und Struktur)
● Abschnitt 2: Nutzdaten (besitzt variable Länge und Struktur)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 113
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

File-DB-Header für FTP-Server-Betrieb


Anmerkung: Der hier beschriebene File-DB-Header ist weitgehend identisch zu dem für den
Client-Betrieb beschriebenen File-DB-Header. Die Unterschiede beziehen sich auf die
Parameter
● WRITE_ACCESS
● FTP_REPLY_CODE

Parameter Typ Wert / Bedeutung Versorgung


EXIST BOOL Das EXIST-Bit zeigt an, ob Das FTP-Kommando dele setzt EXIST=0;
der Nutzdatenbereich Das FTP-Kommando store setzt EXIST=1;
gültige Daten enthält.
Das FTP-Kommando
retrieve bearbeitet den
Auftrag nur, wenn
EXIST=1.
 0:
Der File-DB enthält
keine gültigen
Nutzdaten ("Datei
existiert nicht").
 1:
Der File-DB enthält
gültige Nutzdaten
("Datei existiert").
LOCKED BOOL Das LOCKED-Bit dient zum Die FTP-Kommandos store und retr setzen
Zugriffsschutz für den File- während der Bearbeitung LOCKED=1.
DB. Für einen Schreibvorgang aus dem
 0: Anwenderprogramm gilt:
Auf den File-DB kann Das Anwenderprogramm in der S7-CPU
zugegriffen werden. kann zur Konsistenzsicherung während
eines Schreibzugriffes LOCKED setzen
 1:
bzw. zurücksetzen.
Der File-DB ist gesperrt.
Empfehlung zur Vorgehensweise im
Anwenderprogramm:
1. LOCKED-Bit prüfen;
wenn =0
2. WRITEACCESS-Bit=0 setzen
3. LOCKED-Bit prüfen;
wenn =0
4. LOCKED-Bit=1 setzen
5. Daten schreiben
6. LOCKED-Bit=0 setzen

Programmbausteine für SIMATIC NET S7-CPs


114 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.4 Programmbausteine für FTP-Dienste

Parameter Typ Wert / Bedeutung Versorgung


NEW BOOL Das NEW-Bit informiert, ob FTP-Kommando store setzt nach der
Daten seit dem letzten Bearbeitung NEW=1
Lesevorgang verändert Das Anwenderprogramm in der S7-CPU
wurden. muss nach dem Lesen der Daten NEW=0
 0: setzen, um ein erneutes store zu
Inhalt des File-DB ist ermöglichen oder um das File mittels FTP-
unverändert seit letztem Kommando dele löschen zu können.
Schreibvorgang. Das
Anwenderprogramm
der S7-CPU hat die
letzte Änderung
registriert.
 1:
Das
Anwenderprogramm
der S7-CPU hat den
letzten Schreibvorgang
noch nicht registriert.
WRITE_ACCESS BOOL 0: Das Bit wird bei der DB-Projektierung auf
Der FTP-Client auf dem einen Initialisierungwert gesetzt.
PG/PC hat kein Empfehlung:
Schreibrecht für die File-
Das Bit sollte nach Möglichkeit unverändert
DBs in der S7-CPU.
bleiben! In besonderen Fällen ist eine
1: Anpassung im laufenden Betrieb möglich.
Der FTP-Client auf dem
PG/PC hat Schreibrecht für
die File-DBs in der S7-
CPU.
ACT_LENGTH DINT Aktuelle Länge des Die aktuelle Länge wird nach einem
Nutzdatenbereiches. Schreibvorgang aktualisiert.
Der Inhalt dieses Feldes ist
nur dann gültig, wenn
EXIST = 1.
MAX_LENGTH DINT Maximale Länge des Die maximale Länge sollte bei der DB-
Nutzdatenbereiches (Länge Projektierung festgelegt werden.
des gesamten DB Der Wert kann auch im laufenden Betrieb
abzüglich 20 Byte Header). vom Anwenderprogramm geändert werden.
FTP_REPLY_CODE INT Der Parameter ist im FTP- Wird vom FTP-Server auf "0" gesetzt.
Serverbetrieb ohne
Bedeutung.
DATE_TIME DATE_AND_TIME Datum und Zeit der letzten Das aktuelle Datum wird nach einem
Änderung des Files. Schreibvorgang aktualisiert.
Der Inhalt dieses Feldes ist Wird die Funktion "Uhrzeitweiterleitung"
nur dann gültig, wenn genutzt, entspricht der Eintrag der
EXIST = 1. weitergeleiteten Zeit.
Wird die Funktion "Uhrzeitweiterleitung"
nicht genutzt, wird eine relative Zeit
eingetragen. Bezug ist der Anlaufzeitpunkt
des IT-CP (Initialisierungswert ist 1.1.1994
0.0 Uhr).

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 115
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

2.5 Programmbausteine für programmierte Verbindungen und IP-


Konfiguration
In bestimmten Anwendungsbereichen ist es vorteilhaft, die Kommunikationsverbindungen
oder die IP-Konfiguration des CP nicht über die Projektierschnittstelle von STEP 7, sondern
über eine spezifische Applikation programmgesteuert einzurichten.
Typische Anwendungsfälle finden sich z.B. bei Herstellern von Serienmaschinen, die ihren
Kunden eine einfache Bedienoberfläche bieten möchten, aber die Kommunikationsdienste
an die Bedieneingaben anpassen müssen. Der Endanwender soll keine STEP 7-Kenntnisse
benötigen.
Für diese Anwendungen steht zur Einrichtung von Verbindungen an der SEND/RECEIVE-
Schnittstelle sowie der IP-Konfiguration der Funktionsbaustein FB55 zur Verfügung. Der
FB55 ermöglicht die flexible Übergabe von Datenbausteinen mit Projektierdaten an einen
Ethernet-CP.

ACHTUNG

Beachten Sie für die hier beschriebenen Funktionen die Leistungsmerkmale (unterstützte
Verbindungstypen) des von Ihnen verwendeten CP-Typs; Angaben hierzu finden Sie in den
Gerätehandbüchern.

Weitere Informationen
Sie finden ergänzende Informationen zu den folgenden Themenbereichen in /1/ (Seite 270) :
● Eigenschaften der projektierbaren Verbindungsarten;
● Angaben zur Projektierung des IP Zugriffschutzes;
● Angaben zum Datenvolumen und Mengengerüst.

2.5.1 Arbeitsweise

Zusammenspiel von Programmierung und Projektierung


Verbindungen an der SEND/RECEIVE-Schnittstelle sowie die IP-Konfiguration eines CP
projektieren Sie entweder per STEP 7 oder konfigurieren diese per Anwenderprogramm zur
Laufzeit der S7-Station. Eine Mischform dieser Varianten ist innerhalb eines CP nicht
möglich!

Programmbausteine für SIMATIC NET S7-CPs


116 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Prinzip der programmierten Konfiguration


Über einen Funktionsbaustein, der im Anwenderprogramm aufgerufen wird, können
Konfigurationsdaten für Kommunikationsverbindungen und die IP-Konfiguration
(Systemdaten für CP) an den CP übertragen werden.

.RQILJXUDWLRQV෥'DWHQEDXVWHLQ

)%,3B&21),*
6\VWHPGDWHQI¾U&3

9HUELQGXQJ
DQGHQ&3¾EHUPLWWHOWH
.RQILJXUDWLRQVGDWHQ
9HUELQGXQJ

9HUELQGXQJQ

QPD[ 

Der Konfigurations-DB kann jederzeit in den CP geladen werden. Die vorher aktuellen
Verbindungen und Konfigurationsdaten (IP-Adresse, Subnetz-Maske, Default-Router, NTP-
Uhrzeit-Server und weitere Parameter) werden hierbei überschrieben.
Der Ethernet-CP erkennt anhand der Projektierdaten, dass die
Kommunikationsverbindungen über das Anwenderprogramm eingerichtet werden sollen.

Hinweis
Die Funktionen können nur ausgeführt werden, wenn der Baugruppen-Zugriffsschutz als
"Nicht gesperrt" projektiert wurde: Siehe Eigenschaftendialog des CP, Register "Optionen"
(nicht bei jedem CP).
Weiterhin muss die Option "IP-Adresse im Anwenderprogramm erstellen" aktiviert sein
(siehe Eigenschaftendialog des CP oder der Ethernet-Schnittstelle des CP, Register "IP-
Konfiguration").

Der Ethernet-CP erkennt anhand der Projektierdaten, dass die


Kommunikationsverbindungen über das Anwenderprogramm eingerichtet werden sollen.

ACHTUNG

Sobald das Anwenderprogramm über den FB55 IP_CONFIG die Verbindungsdaten


übergibt, schaltet die CPU den CP kurzzeitig in STOP. Der CP übernimmt die Systemdaten
(inklusive IP-Adresse) und die neuen Verbindungsdaten und arbeitet diese im Anlauf ab
(RUN).

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 117
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Mengengerüst
Im Programmbaustein IP_CONFIG können maximal 64 Verbindungen angegeben werden.
Maßgebend ist jedoch die maximale Anzahl Verbindungen, die der von Ihnen genutzte CP-
Typ unterstützt.

Besonderheiten / Einschränkungen
● Konsistenzprüfung nur unter STEP 7
Die Verbindungsprojektierung in STEP 7 ist mit Konsistenzprüfungen verbunden, die bei
der programmierten Konfiguration nicht oder nur bedingt möglich sind!
● Verbindungsprojektierung beim Partner erforderlich
Bei der Projektierung spezifizierter Verbindungen in STEP 7 wird bei der Projektierung
implizit die Verbindung für den Partner angelegt; bei der programmierten Konfiguration ist
dies nicht möglich! Hier müssen für die Partner entsprechende Verbindungen projektiert
bzw. konfiguriert werden.
● Projektierung des IP-Zugriffschutzes
Über den IP-Zugriffschutz besteht die Möglichkeit, die Kommunikation über den CP der
lokalen S7-Station auf Partner mit ganz bestimmten IP-Adressen einzuschränken. Diese
Parametrierung gilt auch für programmierte Kommunikationsverbindungen. Sie müssen
den IP-Zugriffschutz in STEP 7 entweder ausschalten (= Voreinstellung) oder die
Kommunikationspartner autorisieren.
● DHCP / DNS wird unterstützt
Die IP-Adressierung ist bei der programmierten Konfiguration auch über DHCP (und DNS
für den Mail-Dienst) möglich.
Die Nutzung eines DHCP-Servers wird in diesem Fall im FB55 definiert (nicht in der
Projektierung).
● Keine Verbindungsinformationen beim Hochladen
Beim Hochladen der S7-Stationsdaten in STEP 7 sind die Daten der programmierten
Konfiguration nicht enthalten.
● Verbindungsprojektierung bei CPs mit mehreren Schnittstellen
Vergewissern Sie sich bei CPs mit mehreren Schnittstellen (z.B. mit Gigabit-Schnittstelle)
im Gerätehandbuch des CP, ob die Verbindungsprojektierung für beide Schnittstellen
unterstützt wird.
● PROFINET IO nicht gleichzeitig möglich
Bei Geräten, die als PROFINET IO-Controller oder IO-Device betrieben werden sollen, ist
die Verbindungseinrichtung über den hier beschriebenen FB55 nicht möglich.
● Keine Verwendung des IP_CONFIG bei CP-Einsatz mit hochverfügbaren S7-
Verbindungen
Wenn Sie hochverfügbare S7-Verbindungen über den CP konfigurieren, dürfen Sie den
Programmbaustein IP_CONFIG nicht zur IP-Konfiguration des CP verwenden.

Programmbausteine für SIMATIC NET S7-CPs


118 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

2.5.2 So gehen Sie vor

Voraussetzungen
Die hier beschriebenen Schritte setzen voraus:
● Sie haben in Ihren STEP 7-Projekten die lokale S7-Station als auch die benötigten
Partnerstationen angelegt.
● Sie haben geklärt, mit welchen sonstigen Stationstypen Verbindungen eingerichtet
werden sollen. Für diese müssen Sie in Ihren STEP 7-Projekten ggf. Stellvertreterobjekte
einrichten.

CP-Eigenschaften projektieren
Stellen Sie die CP-Eigenschaften unter "IP-Konfiguration" ein: Wählen Sie die Option "IP-
Adresse im Anwenderprogramm einstellen".

Verbindungseinrichtung programmieren
Gehen Sie prinzipiell so vor, um Verbindungen über das Anwenderprogramm einzurichten:
1. Legen Sie die Subblöcke für System- und Verbindungsdaten im Konfigurations-DB an.
2. Legen Sie die Verbindungseigenschaften im Konfigurations-DB fest.
3. Programmieren Sie die FB55-Schnittstelle im Anwenderprogramm.
4. Verwenden Sie die FCs der SEND/RECEIVE-Schnittstelle für die Offenen
Kommunikationsdienste im Anwenderprogramm.

2.5.3 Konfigurations-Datenbaustein (CONF_DB)

Bedeutung
Der Konfigurations-Datenbaustein (CONF_DB) enthält sämtliche Verbindungsdaten und
Konfigurationsdaten (IP-Adresse, Subnetz-Maske, Default-Router, NTP-Uhrzeit-Server und
weitere Parameter) für einen Ethernet-CP. Der Konfigurations-Datenbaustein wird mit dem
Funktionsbaustein FB55 an den CP übergeben.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 119
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Aufbau / Datenstruktur
Sie können der folgenden Darstellung entnehmen:
● Strukturierung durch Parameterblöcke und Subblöcke
– Jede Verbindung sowie besondere Systemdaten werden durch einen identisch
aufgebauten Parameterblock beschrieben.
– Einzelne Parameter werden durch Subblöcke typisiert.
● Offset-Bereich
Der CONF_DB kann über einen Offset-Bereich an beliebiger Stelle innerhalb eines
Datenbausteines beginnen. Die Adresse (bzw. der Offset) muss lediglich geradzahlig
sein.

.RQILJXUDWLRQV෥
'DWHQEDXVWHLQ

2IIVHW%HUHLFKQ
&21)B'% 3DUDPHWHUEORFNI¾U6\VWHPGDWHQ
'%B.HQQXQJ &39HUQHW]XQJ XQG9HUELQGXQJHQ

6\VWHPGDWHQI¾U&3 7\S
,' EHL6\VWHPGDWHQ 
9HUELQGXQJ
6XEEORFNB$Q]DKO 6XEEORFN
9HUELQGXQJ 6XEEORFN

6XEEORFN (LQ]HOSDUDPHWHU

9HUELQGXQJQ
6XEEORFNQ


① Parameterblöcke sind nachfolgend beschrieben in Parameterblock für Systemdaten (IP-Konfiguration) (Seite 124)
② Subblocktypen sind nachfolgend beschrieben in Parameterblöcke für Verbindungstypen (Seite 125)

Siehe auch
Subblock-Typen (Seite 131)

Programmbausteine für SIMATIC NET S7-CPs


120 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

2.5.4 Konfigurations-Datenbaustein - Beispiel


Nachfolgend ein Beispiel für einen Konfigurations-Datenbaustein mit dem Parameterblock
für Systemdaten und einem Parameterblock für eine TCP-Verbindung.

CONF_DB

AWL
DATA_BLOCK DB271
TITLE=IP_CONFIG für 1 aktive nTCP-Connection,
AUTHOR : SIMATIC //CP-Daten : IP=200.12.1.144, Router=200.12.1.80
FAMILY : AS300 //Verbindungsdaten: Destination IP-Addr=200.12.1.99,
NAME : ipconf //Lokaler Port = 4001, Remote Port = 5001, Aufbau=aktiv
VERSION : 1.0 //07-Jun-2005
STRUCT
DB_TYP : INT := 1;
// --------------------------------------------------------- System Daten ------
sys_pb : INT:=0; // Subblock-Typ: Systemdaten für CP
sys_id : INT:= 0; // System Parameter ID, immer 0
sys_sb_cnt: INT:= 3; // Anzahl Subblocks im Systemparameter Block
ip_addr: SUB_IP_V4; // IP-Adresse des CPs
ip_netmask: SUB_NETMASK; // Subnetzmaske des CPs
ip_router: SUB_DEF_ROUTER; // Default Router
// --------------------------------------------------------- tcp VB 01 --------
tcp_pb_01 : int := 1; // Subblock-Typ: TCP-Verbindung
tcp_id_01 : int := 1; // 1. TCP_VB
tcp_sb_cnt_01 : int := 6; // 6 Elemente pro TCP-Verbindung
tcp_vb_ip_01 : SUB_IP_V4; // IP-Adresse des Partners
tcp_loc_01 : SUB_LOC_PORT; //
tcp_rem_01 : SUB_REM_PORT; //
tcp_vb_01_name : CON_NAME_L; //
tcp_vb_01_kbus : SUB_KBUS_ADDR; // nur relevant für S7-400
rq_01 : ACT_CN_REQ; //
//----------------------------------
END_STRUCT ;
BEGIN

tcp_loc_01.port := 4001; // Definition der Ports, wenn der Wert von


tcp_rem_01.port := 5001; // der Vordefinition abweichen soll !
END_DATA_BLOCK

Es folgen die Typdefinitionen, die im Beispiel-DB verwendet werden.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 121
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Typdefinitionen für den Subblock "Systemdaten"

AWL
// Datenstruktur IP-Config
TYPE "SUB_IP_V4"
STRUCT
id : int := 1; // ID for IP, V4-Addr.
len: int := 8; // Sub Block Length
b_3 : BYTE := b#16#C8; // IP_High 200.
b_2 : BYTE := b#16#0C; // IP_ 12.
b_1 : BYTE := b#16#01; // IP_ 1.
b_0 : BYTE := b#16#90; // IP_Low 144
END_STRUCT;
END_TYPE
TYPE "SUB_NETMASK"
STRUCT
id : int := 2; // ID for Sub Net Mask
len: int := 8; // Sub Block Length
b_3 : BYTE := b#16#FF; // SNM_High
b_2 : BYTE := b#16#FF; // SNM_
b_1 : BYTE := b#16#FF; // SNM_
b_0 : BYTE := b#16#00; // SNM_Low
END_STRUCT;
END_TYPE
TYPE "SUB_DEF_ROUTER"
STRUCT
id : int := 8; // ID_4_Router
len: int := 8; // Sub Block Length
r_3 : BYTE := b#16#C8; // R_High
r_2 : BYTE := b#16#0C; // R_
r_1 : BYTE := b#16#01; // R_
r_0 : BYTE := b#16#50; // R_Low
END_STRUCT;
END_TYPE

Programmbausteine für SIMATIC NET S7-CPs


122 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Typdefinitionen für den Subblock "TCP-Verbindung"

AWL
TYPE "SUB_LOC_PORT"
STRUCT
id : int := 9; // ID_4_LOC_PORT
len: int := 6; // Sub Block Length
port: int := 2001; // Loc. Port
END_STRUCT;
END_TYPE
TYPE "SUB_REM_PORT"
STRUCT
id : int :=10; // ID_4_REM_PORT
len: int := 6; // Sub Block Length
port: int := 2002; // Rem. Port
END_STRUCT;
END_TYPE
TYPE "CON_NAME_L" // 24 characters
STRUCT
id : int := 18; // ID for CON Name
len: int := 28; // 4+len(n[0..x]
c : ARRAY [1..24] of CHAR := ‘V’,’B’,’_’,’N’,’a’,’m’,’e’,’_’,’2’,’4’,’C’,’h’,’a’,’r’,
‘a’,’c’,’t’,’e’,’r’,’s’,’_’,’0’,’0’,’1’;
END_STRUCT;
END_TYPE
TYPE "SUB_KBUS_ADDR"
STRUCT
id : int := 21; // ID for KBUS-Address
len: int := 5; //
addr: BYTE := B#16#04; // =R0/S4
END_STRUCT
END_TYPE
TYPE "ACT_CN_REQ"
STRUCT
id : int := 22; // ID for CON REQ Mode
len: int := 5; // Sub Block Length
w : BYTE := b#16#1; // = Active
END_STRUCT;

Anmerkung:
Die hier aufgeführten Strukturen müssen noch in die Symbol-Tabelle aufgenommen werden.
Beispiel für der Eintrag SUB_IP_V4:

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 123
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Symbol Adresse Datentyp


SUB_IP_V4 UDT 100 UDT 100

Siehe auch
Subblock-Typen (Seite 131)

2.5.5 Parameterblock für Systemdaten (IP-Konfiguration)

Bedeutung
Sie finden nachfolgend den für die IP-Konfiguration des CP relevanten Parameterblock für
Systemdaten und die darin anzugebenden Subblöcke.
Je nach Anwendungsfall werden nicht alle Subblock-Typen benötigt - entsprechende
Angaben finden Sie in der Tabelle.

Aufbau
Bei CPs mit mehreren Schnittstellen gilt der nachfolgend beschriebene Aufbau für den
Parameterblock nur für die PROFINET-Schnittstelle.

 Typ = 0

 ID = 0

 Subblock_Anzahl = n

 Subblock 1

 Subblock 2

 Subblock n
...

Verwendbare Subblöcke

Subblock Parameter
ID Typ Besonderheiten / Hinweise Anwendung ***)
1 SUB_IP_V4 Lokale IP-Adresse ++
2 SUB_NETMASK - ++
8 SUB_DEF_ROUTER - +
4 SUB_DNS_SERV_ADDR *) Dieser Subblock kann bis zu 0-4 mal vorkommen. Der +
erste Eintrag ist der Primary DNS Server.

Programmbausteine für SIMATIC NET S7-CPs


124 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Subblock Parameter
ID Typ Besonderheiten / Hinweise Anwendung ***)
14 SUB_DHCP_ENABLE 0: kein DHCP +
1: DHCP
15 SUB_CLIENT_ID - +
Anmerkung: Nur sinnvoll wenn SUB_DHCP_ENABLE = 1
30**) SUB_DEVICE_NAME Gerätename nach PROFINET IO-Konvention +
Geben Sie einen Gerätenamen an, um das Gerät für
Analyse- und Diagnosezwecke im Netz individuell
kenntlich zu machen.
*) Der Subblocktyp wird nur für E-Mail-Verbindungen benutzt.
**) ID wird nur bei bestimmten CP-Typen unterstützt.
***) ++ = zwingend; + = optional

Siehe auch
Subblock-Typen (Seite 131)

2.5.6 Parameterblöcke für Verbindungstypen

Allgemeines
Sie erfahren nachfolgend, welche Werte in die Parameterblöcke einzutragen sind und
welche Subblöcke zu den jeweiligen Verbindungstypen zu verwenden sind.
Je nach Anwendungsfall werden nicht alle Subblock-Typen benötigt - entsprechende
Angaben finden Sie ebenfalls in der Tabelle.

Verbindungs-ID
Von besonderer Bedeutung ist der ID-Parameter, der jedem Verbindungsparameterblock
neben der Typkennung vorangestellt wird.
Bei programmierten Verbindungen können Sie diese ID innerhalb des zulässigen
Wertebereiches frei vergeben. Sie müssen diese ID dann an der Aufrufschnittstelle der FCs
für die SEND/RECV-Schnittstelle zur Identifizierung der Verbindung verwenden.
Wertebereiche für die Verbindungs-ID:
● S7-400: 1,2...64
● S7-300: 1,2...16

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 125
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

2.5.6.1 Parameterblock für TCP-Verbindung

Aufbau
Hinterlegen Sie die Parameter im Parameterblock für TCP-Verbindungen wie folgt:

 Typ = 1 -> ①

 ID = Verbindungs-ID -> ②

 Subblock_Anzahl = n

 Subblock 1

 Subblock 2

 Subblock n
...

Legende:
① Kennung für den Verbindungstyp
② frei zu vergebene Verbindungsreferenz; im AG_SEND / AG_RECV anzugeben.
Wertebereich für die Verbindungs-ID:
bei S7-400: 1, 2...64
bei S7-300: 1,2...16

Verwendbare Subblöcke

Subblock Parameter
ID Typ Besonderheiten / Hinweise Anwendung ***)
1 SUB_IP_V4 IP-Adresse des Partners ++ *)
9 SUB_LOC_PORT - ++
10 SUB_REM_PORT - ++ **)
18 SUB_CONNECT_NAME - +
19 SUB_LOC_MODE - +
21 SUB_KBUS_ADR Bei CPs für S7-300 ist dieser Wert fest ++ (bei S7-400)
auf 2 eingestellt und muß daher nicht
angegeben werden.
22 SUB_CON_ESTABL - ++
*) optional bei passiver Verbindung.
***) ++ = zwingend; + = optional

Siehe auch
Subblock-Typen (Seite 131)

Programmbausteine für SIMATIC NET S7-CPs


126 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

2.5.6.2 Parameterblock für UDP- Verbindung

Aufbau
Hinterlegen Sie die Parameter im Parameterblock für UDP-Verbindungen wie folgt:

 Typ = 2 -> ①

 ID = Verbindungs-ID -> ②

 Subblock_Anzahl = n

 Subblock 1

 Subblock 2

 Subblock n
...

Legende:
① Kennung für den Verbindungstyp
② frei zu vergebene Verbindungsreferenz; im AG_SEND / AG_RECV anzugeben.
Wertebereich für die Verbindungs-ID:
bei S7-400: 1, 2...64
bei S7-300: 1,2...16

Verwendbare Subblöcke

Subblock Parameter
ID Typ Besonderheiten / Hinweise Anwendung ***)
1 SUB_IP_V4 IP-Adresse des Partners ++
9 SUB_LOC_PORT - ++
10 SUB_REM_PORT - ++
18 SUB_CONNECT_NAME - +
19 SUB_LOC_MODE - +
21 SUB_KBUS_ADR Bei CPs für S7-300 ist dieser Wert ++ (bei S7-400)
fest auf 2 eingestellt und muss
daher nicht angegeben werden.
23 SUB_ADDR_IN_DATABLOCK Falls über diesen Parameter die +
Option "Freie UDP-Verbindung"
gewählt wird, entfallen die
Parameter SUB_IP_V4 und
SUB_REM_PORT.
***) ++ = zwingend; + = optional

Siehe auch
Subblock-Typen (Seite 131)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 127
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

2.5.6.3 Parameterblock für ISO-on-TCP Verbindung

Aufbau
Hinterlegen Sie die Parameter im Parameterblock für ISO-on-TCP-Verbindungen wie folgt:

 Typ = 3 -> ①

 ID = Verbindungs-ID -> ②

 Subblock_Anzahl = n

 Subblock 1

 Subblock 2

 Subblock n
...

Legende:
① Kennung für den Verbindungstyp
② frei zu vergebene Verbindungsreferenz; im AG_SEND / AG_RECV anzugeben.
Wertebereich für die Verbindungs-ID:
bei S7-400: 1, 2...64
bei S7-300: 1,2...16

Verwendbare Subblöcke

Subblock Parameter
ID Typ Besonderheiten / Hinweise Anwendung ***)
1 SUB_IP_V4 IP-Adresse des Partners ++ *)

11 SUB_LOC_TSAP - ++
12 SUB_REM_TSAP - ++ *)
18 SUB_CONNECT_NAME - +
19 SUB_LOC_MODE - +
21 SUB_KBUS_ADR Bei CPs für S7-300 ist dieser Wert ++ (bei S7-400)
fest auf 2 eingestellt und muß daher
nicht angegeben werden.
22 SUB_CON_ESTABL - ++
*) optional bei passiver Verbindung.
***) ++ = zwingend; + = optional

Siehe auch
Subblock-Typen (Seite 131)

Programmbausteine für SIMATIC NET S7-CPs


128 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

2.5.6.4 Parameterblock für E-Mail-Verbindung

Bedeutung
Für das Senden von E-Mails ist grundsätzlich eine E-Mail-Verbindung pro Advanced-CP
einzurichten. Mit der E-Mail-Verbindung ist der Mailserver festgelegt, über den sämtliche
vom Advanced-CP gesendeten E-Mails zugestellt werden.

Aufbau
Hinterlegen Sie die Parameter im Parameterblock für E-Mail-Verbindungen wie folgt:

 Typ = 4 -> ①

 ID = Verbindungs-ID -> ②

 Subblock_Anzahl = n

 Subblock 1

 Subblock 2

 Subblock n
...

Legende:
① Kennung für den Verbindungstyp
② frei zu vergebene Verbindungsreferenz; im AG_SEND / AG_RECV anzugeben.
Wertebereich für die Verbindungs-ID:
bei S7-400: 1, 2...64
bei S7-300: 1,2...16

Verwendbare Subblöcke

Subblock Parameter
ID Typ Besonderheiten / Hinweise Anwendung ***)
1 SUB_IP_V4 IP-Adresse des Mailservers, über den ++ / + *)
die E-Mails gesendet werden.
Die IP-Adresse kann absolut oder
symbolisch angegeben werden.
Die symbolische Angabe setzt voraus,
dass dem Advanced-CP die Adresse
des Domain Name Servers (DNS)
bekannt ist. Ein entsprechender Eintrag
ist bei der Projektierung des Advanced-
CP in STEP 7 vorzunehmen; nähere
Angaben hierzu finden Sie dort in der
Online-Hilfe.
3 SUB_DNS_NAME DNS Name des E-MAIL Servers ++ / + *)
13 SUB_EMAIL_SENDER Absender E-Mail Adresse ++

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 129
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Subblock Parameter
ID Typ Besonderheiten / Hinweise Anwendung ***)
18 SUB_CONNECT_NAME - +
21 SUB_KBUS_ADR Bei CPs für S7-300 ist dieser Wert fest ++ (bei S7-400)
auf 0 eingestellt und muß daher nicht
angegeben werden.
22 SUB_CON_ESTABL - ++
*) Die Parameter SUB_IP_V4 und SUB_DNS_NAME schließen sich hier gegenseitig aus;
ausschließlich einer von beiden Parametern ist anzugeben.
***) ++ = zwingend; + = optional

Hinweis
Mail-Server-Ports sind "well known ports" und müssen nicht zwingend angegeben werden.

Siehe auch
Subblock-Typen (Seite 131)

2.5.6.5 Parameterblock für FTP-Verbindung

Bedeutung
Für die Abwicklung einer FTP-Auftragssequenz zwischen der S7-Station als FTP-Client und
einem FTP-Server muss der Advanced-CP eine Verbindung zur S7-CPU einrichten. Diese
Verbindung bezeichnen wir hier als FTP-Verbindung.
Bei den FTP-Verbindungen handelt es sich um TCP-Verbindungen, die über den Parameter
SUB_LOC_MODE auf die Betriebsart "FTP" eingestellt werden.

Aufbau
Hinterlegen Sie die Parameter im Parameterblock für FTP-Verbindungen wie folgt:

 Typ = 1 -> ①

 ID = Verbindungs-ID -> ②

 Subblock_Anzahl = n

 Subblock 1

 Subblock 2

 Subblock n
...

Programmbausteine für SIMATIC NET S7-CPs


130 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Legende:
① Kennung für den Verbindungstyp
② frei zu vergebene Verbindungsreferenz; im AG_SEND / AG_RECV anzugeben.
Wertebereich für die Verbindungs-ID:
bei S7-400: 1, 2...64
bei S7-300: 1,2...16

Verwendbare Subblöcke

Subblock Parameter
ID Typ Besonderheiten / Hinweise Anwendung ***)
18 SUB_CONNECT_NAME - +
19 SUB_LOC_MODE hier: 0x01 = FTP Protokoll ++
21 SUB_KBUS_ADR Bei CPs für S7-300 ist dieser Wert fest ++ (bei S7-400)
auf 0 eingestellt und muß daher nicht
angegeben werden.
***) ++ = zwingend; + = optional

Siehe auch
Subblock-Typen (Seite 131)

2.5.7 Subblock-Typen
Je nach Parameterblock werden unterschiedliche Parameter benötigt. Jeder Parameter wird
durch einen Subblock beschrieben. Welche Subblöcke benötigt werden, können Sie den
Beschreibungen zu den Systemdaten und zu den Verbindungstypen in den vorhergehenden
Kapiteln entnehmen.
Jeder Subblock besteht aus dem spezifischen Parameterabschnitt sowie einem Header (4
Byte).

Beispiel
Der folgende Auszug aus einem CONF_DB zeigt den Aufbau eines Subblockes am Beispiel
des Subblock-Typs SUB_NETMASK.

Adresse Name Typ Anfangswert Kommentar


+14.0 Sub_Block_2 STRUCT // Subblock 2 Typ
SUB_NETMASK
+0.0 Sub_Block_ID INT 2 // Subblock ID
+2.0 Sub_Block_Len INT 8 // Gesamtlänge des Subblocks in
Byte
+4.0 Parameter STRUCT Parameterbereich
SUB_NETMASK

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 131
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Adresse Name Typ Anfangswert Kommentar


+0.0 Wert_1 BYTE B#16#FF
+1.0 Wert_2 BYTE B#16#FF
+2.0 Wert_3 BYTE B#16#FF
+3.0 Wert_4 BYTE B#16#0
=4.0 END_STRUCT
=8.0 END_STRUCT

Folgende Subblock-Typen stehen insgesamt zur Verfügung:

Subblock Subblock-Typ Subblock-Länge (in Bedeutung des Parameters


ID 1) Byte)
1 SUB_IP_V4 4+4 IP-Adresse gemäß IPv4
2 SUB_NETMASK 4+4 Subnetzmaske
3 SUB_DNS_NAME Länge DNS Name + 4 DNS Name
4 SUB_DNS_SERV_ADDR 4+4 DNS Server Adresse.
8 SUB_DEF_ROUTER 4+4 IP-Adresse des Default Router
9 SUB_LOC_PORT 2+4 Lokaler Port
10 SUB_REM_PORT 2+4 Ferner Port, auch für E-MAIL Verbindungen
11 SUB_LOC_TSAP Tsap-Länge + 4 Lokaler TSAP
12 SUB_REM_TSAP Tsap-Länge + 4 Ferner TSAP
13 SUB_EMAIL_SENDER Länge der Absender E– E-Mail Adresse des Absenders
Mail Adresse + 4
14 SUB_DHCP_ENABLE 2+4 IP-Adresse von einem DHCP-Server
beziehen.
 Wertebereich:

0 = kein DHCP

1 = DHCP
(optional)
15 SUB_CLIENT_ID Länge der Client ID + 4 (optional)
18 SUB_CONNECT_NAME Länge des Namens + 4 Name der Verbindung. Mögliche Zeichen
sind: a...z, A...Z, 0...9, -, _

Programmbausteine für SIMATIC NET S7-CPs


132 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Subblock Subblock-Typ Subblock-Länge (in Bedeutung des Parameters


ID 1) Byte)
19 SUB_LOC_MODE 1+4 Lokale Betriebsart der Verbindung
 Wertebereich:

0x00 = SEND/RECV

0x01 = FTP Protokoll (nur bei TCP-Verb.)

0x10 = S5-Adressierungsmodus bei


FETCH/WRITE *)

0x20 = SPEED SEND/RECV (nur beim


CP 443-1 Advanced erlaubt)

0x80 = FETCH *)

0x40 = WRITE *)
Die Default-Einstellung bei Verzicht auf den
Parameter ist SEND/RECV.
Anmerkung:
FETCH / WRITE erfordern die Einstellung
passiver Verbindungsaufbau (siehe unter
SUB_CON_ESTABL).
20 SUB_REM_MODE 1+4 Einstellung der Betriebsart beim
Kommunikationspartner.
(wird derzeit nicht unterstützt)
21 SUB_KBUS_ADR 5  Bei S7-400

KBUS-Adresse der CPU


 Bei S7-300

Als fester Wert für die Steckplatzadresse


einzutragen: 2
22 SUB_CON_ESTABL 1+4 Typ des Verbindungsaufbaus.
Legen Sie mit dieser Option fest, ob der
Verbindungsaufbau von dieser S7-Station
aus aktiv oder passiv erfolgen soll.
 Wertebereich:

0 = Passiv

1 = Aktiv

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 133
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Subblock Subblock-Typ Subblock-Länge (in Bedeutung des Parameters


ID 1) Byte)
23 SUB_ADDR_IN_DATA-BLOCK 1+4 Freie UDP-Verbindung wählen.
Der ferne Teilnehmer wird vom
Anwenderprogramm beim AG_SEND Aufruf
im Auftragsheader des Auftragspuffers
eingetragen. Damit kann jeder beliebige
Teilnehmer am Ethernet/LAN/WAN erreicht
werden.
 Wertebereich:

1 = Freie UDP-Verbindung

0 = sonstige
Der Parameter ist nur bei der UDP-
Verbindung sinnvoll.
24 SUB_NTP_SERVER 4+4 Der Subblock definiert einen NTP-Server,
von dem der CP seine Uhrzeit über das
NTP-Protokoll beziehen kann.
Für den Fall, dass ein oder mehrere NTP-
Server definiert werden, können bis zu 4
Subblocks der ID 24 definiert werden.
Die Subblocks der ID 24 dürfen nur in den
Systemparameterblock Typ 0 / ID 0
eingebaut werden.

Programmbausteine für SIMATIC NET S7-CPs


134 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Subblock Subblock-Typ Subblock-Länge (in Bedeutung des Parameters


ID 1) Byte)
30 SUB_DEVICE_NAME Länge des Namens + 4 Gerätename nach PROFINET IO-
Konvention
Der Gerätename muss den DNS-
Konventionen genügen, d. h.
 Beschränkung auf 127 Zeichen
insgesamt (Buchstaben, Ziffern,
Bindestrich oder Punkt)
 Ein Namensbestandteil innerhalb des
Gerätenamens, d. h. eine Zeichenkette
zwischen zwei Punkten, darf max. 63
Zeichen lang sein.
 Keine Sonderzeichen wie Umlaute,
Klammern, Unterstrich, Schrägstrich,
Blank etc. Der Bindestrich ist das einzige
erlaubte Sonderzeichen.
 Der Gerätename darf nicht mit den
Zeichen "-" oder "." beginnen und auch
nicht mit diesem Zeichen enden.
 Der Gerätename darf nicht mit Ziffern
beginnen.
 Der Gerätename darf nicht die Form
n.n.n.n haben (n = 0...999).
 Der Gerätename darf nicht mit der
Zeichenfolge "port-xyz-" beginnen (x,y,z
= 0...9).
1) Hinweis: nicht aufgeführte ID-Nummern werden derzeit noch nicht genutzt.

Siehe auch
Konfigurations-Datenbaustein - Beispiel (Seite 121)

2.5.8 IP_CONFIG - Bedeutung und Aufruf

Bedeutung des Bausteins


Der FB55 überträgt die in einem Datenbaustein (Konfigurations-DB) spezifizierte IP-
Konfiguration sowie die Verbindungsdaten an den CP. Der Konfigurations-DB enthält
sämtliche Verbindungsdaten, um die Verbindungen für die SEND/RECEIVE-Schnittstelle
eines Ethernet-CP einzurichten.
Diese Variante der programmierten Kommunikationsverbindungen können Sie alternativ zur
Verbindungsprojektierung mit STEP 7 einsetzen.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 135
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Je nach Größe des Konfigurations-DB erfolgt die Übertragung zum CP in mehreren


Segmenten. Sie müssen daher den FB so lange erneut aufrufen, bis der FB mit dem DONE-
Bit=1 die vollständige Übertragung signalisiert.

Aufruf
Aufrufschnittstelle in FUP-Darstellung

,3B&21),*

%22/ $&7 '21( %22/

:25' /$''5 (5525 %22/

$1< &21)B'% 67$786 :25'

,17 /(1 (;7B67$786 :25'

Beispiel in AWL-Darstellung

AWL Erläuterung
call fb 55 ( //IP_CONFIG Bausteinaufruf
ACT := M 10.0, //Auftragsanstoß über Merkerbit
LADDR := W#16#0100, //=LADDR 256 dez. in Hardware-Konfiguration
CONF_DB:= P#db99.dbx10.0 byte 240, //Datenbaustein mit Verbindungsdaten
LEN := MW 14, //Längenangabe für die Verbindungsdaten
DONE := M 10.1, //Ausführungsanzeige
ERROR := M 10.2, //Fehleranzeige
STATUS := MW 16, //Statusanzeige
EXT_STATUS := MW 18); //Fehlerursache in den Verbindungsdaten

ACHTUNG
Keine Verwendung des FB55 bei CP-Einsatz mit hochverfügbaren S7-Verbindungen
Wenn Sie hochverfügbare S7-Verbindungen über den CP konfigurieren, dürfen Sie den
FB55 nicht zur IP-Konfiguration des CP verwenden.

ACHTUNG
Auf mögliche Doppeladressierung achten
Wenn Sie den FB55 einsetzen sollten Sie besonders auf die eindeutige Vergabe der IP-
Adressen achten. Beim Erkennen einer doppelten Adresse kann es vorkommen, dass der
CP am Netz nicht aktiv wird.

Programmbausteine für SIMATIC NET S7-CPs


136 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

2.5.9 Arbeitsweise IP_CONFIG

Hantierung im Anwenderprogramm
Beim Einsatz des FB55 müssen Sie folgende Anwendungsfälle unterscheiden:
● Standardanwendung
Rufen Sie den FB55 im Anlauf-OB (OB100) auf. Beim Starten des OB1 hat der CP dann
bereits seine IP-Konfiguration und gegebenenfalls seine Verbindungsprojektierung
erhalten.
● Einsatz in Hochverfügbaren-Systemen (H-Systeme)
Mit der nachfolgend empfohlenen Vorgehensweise erreichen Sie, dass im Redundanzfall
des H-Systems auch CPs im Redundanz-System über den FB55 konfiguriert werden.

ACHTUNG
CPU im Betriebszustand RUN
Im H-System können Sie einen CP mit dem FB55 nur dann konfigurieren, wenn sich die
zugeordnete CPU im Zustand RUN befindet.

Im H-System läuft zunächst nur ein Rack an. Dies hat zur Folge, dass die CPU auch nur
ihre eigene Peripherie (CP) erreichen kann. Daher können Sie im Anlauf OB (OB100) nur
die CPs in diesem Rack mit dem FB55 parametrieren.
Um auch CPs im redundanten Rack zu parametrieren, wird folgende Vorgehensweise
empfohlen:
1. Programmieren Sie im OB100 die FB55-Aufrufe für alle CPs, die eine Konfiguration durch
den FB55 erhalten sollen.
2. Speichern Sie beim Ablauf der einzelnen FB55 die Information, ob eine Projektierung bei
den einzelnen CPs möglich war.
3. Wenn das H-System in den redundanten Zustand wechselt, wird automatisch der OB72
(CPU Redundanzfehler) aufgerufen. Sorgen Sie dafür, dass im OB72-Ablauf eine
Zustandsinformation gespeichert wird, die angibt, welche Konfigurations-FBs (FB55)
nachfolgend aufzurufen sind.
4. Rufen Sie nachfolgend im OB1 anhand der zuvor gespeicherten Zustandsinformation die
FB55 auf, die Sie für die IP-Konfiguration der CPs im Redundanzsystem benötigen.
Anmerkung:
Prinzipiell können Sie die FB55-Aufrufe, die beim Anlauf im OB100 nicht erfolgreich
waren, im OB72 aufrufen. Da es sich aber um einen FB handelt, der mehrere Aufrufe
benötigt, würde dies die Laufzeit des OBs verlängern. Daher wird die zuvor beschriebene
Vorgehensweise im OB1 empfohlen.

Arbeitsweise
Die folgende Ablaufdarstellung zeigt den normalen zeitlichen Ablauf einer mit IP_CONFIG im
Anwenderprogramm angestoßenen IP-Konfiguration und Verbindungsprojektierung.
Der Auftrag wird ausgeführt, sobald der Parameter ACT = 1 übergeben wird.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 137
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

Anschließend müssen Sie den Auftrag wegen der segmentweisen Übertragung des
CONF_DB so lange erneut mit ACT =1 aufrufen, bis der Abschluss mit der entsprechenden
Anzeige in den Parametern DONE, ERROR, STATUS angezeigt wird.
Falls zu einem späteren Zeitpunkt erneut eine Verbindungskonfiguration übertragen werden
soll, muss zuvor in mindestens einem weiteren Aufruf der Parameter ACT = 0 übergeben
werden.

$QZHQGHUSURJUDPP (WKHUQHW&3
&38=\NOXV 

&21)B'%PLW'DWHQ
YHUVRUJHQ

$&7 VHW]HQ

&DOO,3B&21),*
$XIWUDJO¦XIW

&3ZLUGPLW6\VWHPGDWHQ
YHUVRUJW LQNOXVLYH,3
$GUHVVH 
&21)B'%ZLUG 
VHJPHQWZHLVH¾EHUWUDJHQ &DOO,3B&21),* 9HUELQGXQJHQZHUGHQDXI

GHP&3NRQILJXULHUW
$XIWUDJO¦XIW

&DOO,3B&21),*
$XIWUDJIHUWLJRKQH)HKOHU 

$&7 VHW]HQ

&DOO,3B&21),*

=HLW =HLW


3DUDPHWHU¾EHUJDEH'21((552567$786

ACHTUNG

Die mit dem Konfigurations-DB übermittelten Daten werden nicht spannungsausfallsicher


im CP abgelegt; sie müssen nach einer Spannungsunterbrechung im CP erneut geladen
werden!

Programmbausteine für SIMATIC NET S7-CPs


138 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

2.5.10 Erläuterung der Formalparameter - IP_CONFIG

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Aufrufschnittstelle des
Funktionsbausteins IP_CONFIG:

Parameter Deklaration Datentyp Wertebereich Beschreibung


ACT INPUT BOOL 0,1 Beim FB-Aufruf mit ACT = 1 wird der DBxx an den CP
gesendet.
Beim FB-Aufruf mit ACT = 0 werden nur die
Statusanzeigen DONE, ERROR und STATUS
aktualisiert.
LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP mit STEP 7 wird die
Baugruppen-Anfangsadresse in der
Konfigurationstabelle ausgegeben. Geben Sie diese
Adresse hier an.
CONF_DB INPUT ANY Der Parameter zeigt auf die Anfangsadresse des
Konfigurations-Datenbereiches in einem Datenbaustein
(Datentyp: Byte).
LEN INPUT INT Längenangabe in Byte für den Konfigurations-
Datenbereich.
DONE OUTPUT BOOL 0: - Der Parameter zeigt an, ob der Konfigurations-
1: Auftrag mit Datenbereich vollständig übertragen wurde.
Datenübertragung Beachten Sie, dass der FB je nach Größe des
abgeschlossen. Konfigurations-Datenbereiches mehrfach angestoßen
(in mehreren Zyklen) werden muss, bis die Anzeige
DONE=1 den Abschluss signalisiert.
Zur Bedeutung im Zusammenhang mit den Parametern
ERROR und STATUS siehe unter Anzeigen
IP_CONFIG (Seite 140)
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den Parametern
DONE und STATUS siehe unter Anzeigen IP_CONFIG
(Seite 140)
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den Parametern
DONE und ERROR siehe unter Anzeigen IP_CONFIG
(Seite 140)
EXT_ OUTPUT WORD Der Parameter zeigt bei einer fehlerhaften
STATUS Auftragsausführung an, welcher Parameter im
Konfigurations-DB als Fehlerursache erkannt wurde.
High Byte: Index des Parameterblockes
Low Byte: Index des Subblockes innerhalb des
Parameterblockes

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 139
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

2.5.11 Reservierte Port-Nummern - IP_CONFIG

Reservierte Port-Nummern
Die folgenden lokalen Port-Nummern sind reserviert; verwenden Sie diese nicht bei der
Verbindungsprojektierung.

Tabelle 2- 17 Reservierte Port-Nummern

Protokoll Port-Nummer Dienst


TCP 20, 21 FTP
TCP 25 SMTP
TCP 80 HTTP
TCP 102 RFC1006
TCP 135 RPC-DCOM
HTTPS 443 Security
Bei CPs mit Security-Funktion
TCP 502 ASA Application Protocol
UDP 161 SNMP_REQUEST
UDP 34964 PN IO
UDP 65532 NTP
UDP 65533 NTP
UDP 65534 NTP
UDP 65535 NTP

2.5.12 Anzeigen IP_CONFIG

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, ERROR und STATUS.

Tabelle 2- 18 Anzeigen FB55 IP_CONFIG

DONE ERROR STATUS Bedeutung


Allgemeine Anzeigen zur Auftragsausführung
1 0 0000H Auftrag fertig ohne Fehler
0 0 8181H Auftrag läuft
Fehler, die an der Schnittstelle zwischen CPU und CP erkannt wurden.
0 1 80A4H  Kommunikationsfehler am K-Bus
oder
 Datenfehler: Es ist nicht eingestellt, dass die Konfiguration über das
Anwenderprogramm erfolgt.

Programmbausteine für SIMATIC NET S7-CPs


140 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

DONE ERROR STATUS Bedeutung


0 1 80B1H Die Anzahl der zu sendenden Daten überschreitet die für diesen Dienst zulässige
Obergrenze. (Obergrenze = 16 kByte)
0 1 80C4H Kommunikationsfehler
Der Fehler kann temporär auftreten; daher ist eine Wiederholung im
Anwenderprogramm sinnvoll.
0 1 80D2H Projektierungsfehler
Die eingesetzte Baugruppe unterstützt diesen Dienst nicht.
Fehler, die bei Auswertungen des FBs in der CPU oder an der Schnittstelle zwischen CPU und CP erkannt wurden.
0 1 8183H Der CP lehnt die angeforderte Datensatznummer ab.
0 1 8184H Systemfehler bzw. unzulässiger Parametertyp. (Datentyp des ANY-Pointer CONF_DB
nicht ok)
(Aktuell wird nur der Datentyp Byte akzeptiert)
0 1 8185H Der Wert des Parameters LEN ist größer als der CONF_DB abzüglich des reservierten
Header (4 Byte) oder die Längenangabe ist falsch.
0 1 8186H Unzulässiger Parameter erkannt
Der ANY-Pointer CONF_DB verweist nicht auf einen Datenbaustein.
0 1 8187H Ungültiger Zustand des FBs
Eventuell wurden Daten im Header des CONF_DB überschrieben.
Weitere Fehler, die an der Schnittstelle zwischen CPU und CP erkannt wurden.
0 1 8A01H Die Statusanzeige im gelesenen Datensatz ist ungültig (Wert ist >= 3).
0 1 8A02H Es läuft kein Auftrag auf dem CP; der FB hat jedoch eine Quittung für gelaufenen
Auftrag erwartet.
0 1 8A03H Es läuft kein Auftrag auf dem CP und der CP ist nicht bereit; der FB hat einen ersten
Auftrag für Datensatz-Lesen angestoßen.
0 1 8A04H Es läuft kein Auftrag auf dem CP und der CP ist nicht bereit; der FB hat jedoch eine
Quittung für den gelaufenen Auftrag erwartet.
0 1 8A05H Es läuft ein Auftrag, eine Quittung ist jedoch noch nicht erfolgt; der FB hat jedoch einen
ersten Auftrag für Datensatz-Lesen angestoßen.
0 1 8A06H Ein Auftrag ist fertig; der FB hat jedoch einen ersten Auftrag für Datensatz-Lesen
angestoßen.
Fehler, die bei Auswertungen des FBs im CP erkannt wurden.
0 1 8B01H Kommunikationsfehler
Der DB konnte nicht übertragen werden.
0 1 8B02H Parameterfehler
Doppelter Parameterblock
0 1 8B03H Parameterfehler
Der Subblock im Parameterblock ist nicht erlaubt.
0 1 8B04H Parameterfehler
Die Länge, die am FB angegeben wurde, stimmt nicht mit der Länge der
Parameterblöcke / Subblöcke überein.
0 1 8B05H Parameterfehler
Die Länge des Parameterblockes ist ungültig.
0 1 8B06H Parameterfehler
Die Länge des Subblockes ist ungültig.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 141
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

DONE ERROR STATUS Bedeutung


0 1 8B07H Parameterfehler
Die ID des Parameterblockes ist ungültig
0 1 8B08H Parameterfehler
Die ID des Subblockes ist ungültig
0 1 8B09H Systemfehler
Die Verbindung existiert nicht
0 1 8B0AH Datenfehler
Der Inhalt des Subblockes ist nicht korrekt.
0 1 8B0BH Strukturfehler
Ein Subblock ist doppelt aufgeführt.
0 1 8B0CH Datenfehler
Im Parameterblock sind nicht alle erforderlichen Parameter enthalten.
0 1 8B0DH Datenfehler
Der CONF_DB enthält keinen Parameterblock für Systemdaten.
0 1 8B0EH Datenfehler / Strukturfehler
Der Typ des CONF_DB ist ungültig.
0 1 8B0FH Systemfehler
Der CP hat zu wenig Ressourcen, um den CONF_DB vollständig bearbeiten zu
können.
0 1 8B10H Datenfehler
Es ist nicht eingestellt, dass die Konfiguration über das Anwenderprogramm erfolgt.
0 1 8B11H Datenfehler
Der angegebene Typ des Parameterblockes ist ungültig.
0 1 8B12H Datenfehler
Es wurden zu viele Verbindungen angegeben (entweder insgesamt oder zu viele für
einen bestimmten Typ; es ist beispielsweise nur eine E-Mail Verbindung möglich).
0 1 8B13H CP interner Fehler
0 1 8B14H Die aktive Schutzstufe lässt die Aktion zur Änderung nicht zu.
weitere Fehler, die an den Programmschnittstellen innerhalb der CPU erkannt wurden (SFC-Fehler).
0 1 8F22H Bereichslängenfehler beim Lesen eines Parameters (z. B. DB zu kurz).
0 1 8F23H Bereichslängenfehler beim Schreiben eines Parameters (z. B. DB zu kurz).
0 1 8F24H Bereichsfehler beim Lesen eines Parameters.
0 1 8F25H Bereichsfehler beim Schreiben eines Parameters.
0 1 8F28H Ausrichtungsfehler beim Lesen eines Parameters.
0 1 8F29H Ausrichtungsfehler beim Schreiben eines Parameters.
0 1 8F30H Der Parameter liegt im schreibgeschützten 1. aktuellen Datenbaustein.
0 1 8F31H Der Parameter liegt im schreibgeschützten 2. aktuellen Datenbaustein.
0 1 8F32H Der Parameter enthält eine zu große DB-Nummer.
0 1 8F33H DB-Nummernfehler
0 1 8F3AH Der Zielbereich wurde nicht geladen (DB).
0 1 8F42H Quittungsverzug beim Lesen eines Parameters aus dem Peripheriebereich.
0 1 8F43H Quittungsverzug beim Schreiben eines Parameters in den Peripheriebereich.
0 1 8F44H Der Zugriff auf einen in der Bausteinbearbeitung zu lesenden Parameter ist gesperrt.

Programmbausteine für SIMATIC NET S7-CPs


142 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.5 Programmbausteine für programmierte Verbindungen und IP-Konfiguration

DONE ERROR STATUS Bedeutung


0 1 8F45H Der Zugriff auf einen in der Bausteinbearbeitung zu schreibenden Parameter ist
gesperrt.
0 1 8F7FH Interner Fehler
Es wurde z. B. eine unzulässige ANY-Referenz erkannt.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 143
Programmbausteine für Industrial Ethernet
2.6 Programmbausteine für ERPC-CP

2.6 Programmbausteine für ERPC-CP

2.6.1 LOGICAL_TRIGGER für den logischen Trigger

Bedeutung des Funktionsbausteins


Für die Nutzung eines logischen Triggers für die ERPC-Kommunikation steht der
Funktionsbaustein FB56 LOGICAL_TRIGGER zur Verfügung.
Um einen logischen Trigger zu starten, rufen Sie den Programmbaustein
LOGICAL_TRIGGER im Anwenderprogramm der CPU im OB1 auf.
Für den Aufruf des LOGICAL_TRIGGER werden weitere Bausteine benötigt:
● Ein automatisch generierter Instanz-DB
● Ein Datenbaustein "CONF_DB"
In diesem Konfigurations-DB befinden sich die Konfigurationsdaten des logischen
Triggers. Den Konfigurations-DB müssen Sie im STEP 7-Projekt anlegen und
projektieren.
Wenn Sie mehrere logische Trigger aufrufen wollen, dann müssen Sie mehrere
Konfigurations-DBs bereitstellen.
Sie können die Nummern des FB56 und des Instanz-DB ändern.

Gültigkeit
Der Programmbaustein LOGICAL_TRIGGER ist mit folgenden Baugruppentypen
verwendbar:
● CP 343-1 ERPC

Aufruf
Aufrufschnittstelle in FUP-Darstellung

/2*,&$/B75,**(5

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

,17 &21)B'%

,17 &QI/HYHO

Programmbausteine für SIMATIC NET S7-CPs


144 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.6 Programmbausteine für ERPC-CP

Tabelle 2- 19 Beispiel in AWL-Darstellung

call fb 56, DatabaseInstanceDB ( //Aufruf des FB56 mit Datenbereich


ACT := TRUE, //Auslösen des Auftrags bei Wert = 1
ID := 1 //Trigger-ID (mögliche Werte: 1...16)
LADDR := W#16#100, //Baugruppenanfangsadresse
CONF_DB:= 1, //Konfigurations-Datenbaustein (hier: DB 1)
CnfLevel:= 1, //Quittiermodus (hier: 1)
DONE := M 1.1, //Ausführungsanzeige
ERROR := M 1.2, //Fehleranzeige
STATUS := MW 2); //Statusanzeige

2.6.2 Arbeitsweise LOGICAL_TRIGGER

Arbeitsweise
Die folgende Tabelle zeigt die Schritte, die an einem Trigger-Aufruf durch das
Anwenderprogramm der CPU beteiligt sind.

Schritt Bedeutung
1 Der FB56 LOGICAL_TRIGGER wird an der vorgesehenen Stelle im
Anwenderprogramm der CPU mit zugehörigem Instanz-DB und dem projektierten
Konfigurations-Datenbaustein CONF_DB aufgerufen.
 Wenn der FB56 LOGICAL_TRIGGER mit ACT = 1 aufgerufen wird, dann werden
die aktuellen Trigger-Daten gelesen und an die CP-Firmware gesendet.
 Wenn der FB56 LOGICAL_TRIGGER mit ACT = 0 aufgerufen wird, dann werden
die Statusanzeigen DONE, ERROR und STATUS aktualisiert.
2 Der FB56 LOGICAL_TRIGGER liest die aktuellen Trigger-Daten ein.
3 Der FB56 LOGICAL_TRIGGER bildet die PDU, die mit den aktuellen Trigger-Daten an
die CP-Firmware gesendet wird.
4 Die CP-Firmware bildet das Datentelegramm und übergibt es der ERPC-Applikation.
5 Die ERPC-Applikation sendet das Datentelegramm an den ERP-Teilnehmer (ERP-
System oder MES).

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 145
Programmbausteine für Industrial Ethernet
2.6 Programmbausteine für ERPC-CP

2.6.3 Erläuterung der Formalparameter - LOGICAL_TRIGGER

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Aufrufschnittstelle des
Funktionsbausteins FB56 LOGICAL_TRIGGER:

Parameter Deklaration Datentyp Wertebereich Beschreibung


ACT INPUT BOOL 0 Beim FB-Aufruf mit ACT = 0 werden die
Statusanzeigen DONE, ERROR und STATUS
aktualisiert.
1 Beim FB-Aufruf mit ACT = 1 werden die aktuellen
Trigger-Daten eingelesen und an den CP gesendet.
ID INPUT INT Trigger-ID
Dieser Wert identifiziert den in der ILS-Workbench
projektierten logischen Trigger.
LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP mit STEP 7 wird die
Baugruppen-Anfangsadresse ausgegeben. Geben Sie
diese Adresse hier an.
CONF_DB INPUT INT In diesem Datenbaustein befinden sich die
Konfigurationsdaten der projektierten logischen
Trigger.
CnfLevel INPUT INT 0: Transportquittung Quittiermodus
1: Ende-zu-Ende- Die jeweilige Quittung finden Sie über den STATUS-
Quittung Wert in den Anzeigen des FB56.
 0 = Transportquittung (STATUS = 0000H)

Der Auftrag wird als erfolgreich gemeldet, sobald


die Daten an die ERPC-Applikation übergeben
wurden.

Das muss jedoch nicht unbedingt bedeuten, dass


das Datentelegramm an den ERP-Teilnehmer
(ERP-System oder MES) gesendet worden ist oder
dass nicht noch nachträglich ein Fehler von der
ERPC-Applikation festgestellt werden kann.
 1 = Ende-zu-Ende-Quittung (STATUS = 0001H)

Der Auftrag wird erst quittiert, nachdem die ERPC-


Applikation die Daten überprüft hat.

Über die Variable "TriggerResponse" des


Konfigurations-DB (DB_CONF) wird gemeldet, ob
der ERP-Teilnehmer erreichbar war oder ob sich
die ERPC-Applikation im Store-and-Forward-
Modus befindet.

Die Ende-zu-Ende-Quittung führt zu einer längeren


Auftragslaufzeit als die Transportquittung.

Programmbausteine für SIMATIC NET S7-CPs


146 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.6 Programmbausteine für ERPC-CP

Parameter Deklaration Datentyp Wertebereich Beschreibung


DONE OUTPUT BOOL 0: Auftrag läuft Der Parameter zeigt an, ob der Auftrag zur
1: Auftrag Übertragung des Konfigurations-Datenbereichs
abgeschlossen fehlerfrei abgewickelt wurde.
DONE wird vom CP bei Auftragsannahme auf 0
gesetzt. Solange DONE = 0 ist, kann kein weiterer
Auftrag ausgelöst werden.
Zur Bedeutung im Zusammenhang mit den Parametern
ERROR und STATUS siehe Tabelle "Anzeigen FB56
LOGICAL_TRIGGER".
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den Parametern
DONE und STATUS siehe Tabelle "Anzeigen FB56
LOGICAL_TRIGGER".
STATUS OUTPUT WORD Siehe Tabelle Statusanzeige
"Anzeigen FB56 Zur Bedeutung im Zusammenhang mit den Parametern
LOGICAL_TRIGGER". DONE und ERROR siehe Tabelle "Anzeigen FB56
LOGICAL_TRIGGER".

2.6.4 Anzeigen LOGICAL_TRIGGER

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, ERROR und STATUS.

Tabelle 2- 20 Anzeigen FB56 LOGICAL_TRIGGER

DONE ERROR STATUS Bedeutung


Anzeigen zur Auftragsausführung
1 0 0000H Auftrag fertig ohne Fehler. Der logische Trigger wurde erfolgreich abgeschlossen.
1 0 0001H Auftrag fertig ohne Fehler. Die Datenbank ist nicht erreichbar (Store-and-forward-
Modus).
0 0 8181H Auftrag läuft.
0 1 7000H Der FB56 wurde mit ACT = 0 aufgerufen. Der Auftrag wird jedoch nicht bearbeitet.
Rufen Sie den Baustein mindestens einmal mit ACT = 1 auf.
Anzeigen zu Projektierung und Ablauf des logischen Triggers
0 1 80D2H Der eingesetzte CP unterstützt keine ERPC-Kommunikation (falscher CP-Typ).
0 1 8183H Der eingesetzte CP unterstützt keine ERPC-Kommunikation (falscher CP-Typ).
0 1 8187H Ungültiger Zustand des FB56 (unbekannter LOGICAL_TRIGGER_STATE).
Rufen Sie den Baustein erneut auf.
0 1 8A01H Die Anzahl der projektierten logischen Trigger ist gleich 0.
0 1 8A02H Für diesen logischen Trigger ist keine Projektierung im Konfigurations-DB.
Prüfen Sie die ILS-Workbench-Projektierung.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 147
Programmbausteine für Industrial Ethernet
2.6 Programmbausteine für ERPC-CP

DONE ERROR STATUS Bedeutung


0 1 8A03H Die Struktur des Konfigurations-DB ist nicht korrekt. Der "header identifier" hat nicht
den richtigen Wert.
Korrigieren Sie im Konfigurations-DB den Wert der Variablen "ident" (siehe
Gerätehandbuch ERPC-CP).
0 1 8A04H Die Struktur des Konfigurations-DB ist nicht korrekt.
Laden Sie die ILS-Workbench-Projektierung erneut in den CP, legen Sie den (die)
Konfigurations-DB neu an und projektieren Sie diesen (siehe Gerätehandbuch ERPC-
CP).
0 1 8A05H Der projektierte Konfigurations-DB ist nicht in der CPU vorhanden.
0 1 8A06H Bei einem Folgeaufruf wurde ein noch laufender Trigger mit einer anderen ID
aufgerufen.
Prüfen Sie die "ID" in den aufgerufenen Funktionsbausteinen FB56.
0 1 8A08H Die Projektierungsdaten im Konfigurations-DB sind nicht oder noch nicht vollständig
vorhanden.
Wenn der Fehler nur im Anlauf der S7-Station auftritt, dann kann die Ursache sein,
dass die Projektierungsdaten des logischen Triggers noch nicht vollständig an den
Konfigurations-DB übertragen worden sind.
Wenn der Fehler weiterhin auftritt, dann prüfen Sie die Projektierung der ERPC-
Symbole.
0 1 8A09H Im Konfigurations-DB wurde ein unbekannter Fehler gemeldet.
0 1 8A0AH Der logische Trigger kann nicht gestartet werden, da gerade eine neue Trigger-
Konfiguration geladen wird.
0 1 8A0BH Fehler bei der Ermittlung des Zeitstempels des aktuellen Datensatzes (CPU-Daten)
0 1 8A0CH Der Konfigurations-DB wurde mit der Eigenschaft "Unlinked" erzeugt.
Korrigieren Sie die Objekteigenschaften des Bausteins.
0 1 8A0DH Fehler beim Eingangsparameter CONF_DB des FB56. Der Parameter hat den Wert "0"
oder ist größer als die für die CPU maximal zulässige DB-Nummer.
0 1 8A0EH Die übergebene Trigger-ID liegt nicht im zulässigen Bereich von 1...16.
Korrigieren Sie den Wert im Aufruf des FB56 im Anwenderprogramm.
0 1 8A0FH Der vorgegebene Quittiermodus (CnfLevel) ist ungültig.
Korrigieren Sie den Wert im Aufruf des FB56 im Anwenderprogramm.
0 1 8BxxH Fehler beim Umkopieren aktueller Variablenwerte in die PDU des logischen Triggers.
Die letzten beiden Stellen (xx) liefern die Variablennummer.
Prüfen Sie die Projektierung des betroffenen Symbols in der Symboltabelle der CPU
und in der Liste der ERPC-Symbole im Eigenschaftendialog des CP.
0 1 8C01H Die interne Statusanzeige des FB56 ist ungültig.
Laden Sie die ILS-Workbench-Projektierung erneut in den CP, legen Sie den (die)
Konfigurations-DB neu an und projektieren Sie diesen (siehe Gerätehandbuch ERPC-
CP).
0 1 8C02H Der Rückgabewert der Ende-zu-Ende-Quittung ist ungültig.
Laden Sie die ILS-Workbench-Projektierung erneut in den CP, legen Sie den (die)
Konfigurations-DB neu an und projektieren Sie diesen (siehe Gerätehandbuch ERPC-
CP).
0 1 8C03 H Der logische Trigger enthält mehr als 255 Variable.
0 1 8C06 H Fehler beim Datensatz lesen.
0 1 8D03 H Bei einer Datenbank-Aktion meldet die Firmware einen Timeout.

Programmbausteine für SIMATIC NET S7-CPs


148 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.6 Programmbausteine für ERPC-CP

DONE ERROR STATUS Bedeutung


0 1 8D04H Die Datenbank-Applikation meldet einen allgemeinen Fehler bei der Quittierung der
aktuellen Aktion.
0 1 8E01H Der projektierte Konfigurations-DB in der CPU ist nicht groß genug.
Ändern Sie die Größe des Konfigurations-DB.
0 1 8EXXH Bei diesem Status-Code mit Werten für XXH im Bereich von 02H..FFH handelt es sich
um Abbildungen einer internen Trigger-Response.
Falls solche Werte auftreten, sind diese für Service-Zwecke relevant.

2.6.5 Der Konfigurations-Datenbaustein

Bereitstellung des Konfigurations-Datenbausteins "CONF_DB"


Wenn Sie die ERPC-Funktion "Logischer Trigger" verwenden, dann müssen Sie in STEP 7
einen Datenbaustein (DB) für die Konfigurationsdaten des logischen Triggers anlegen und in
den Aufrufparametern des FB56 angeben. Der FB56 greift auf den CONF_DB zu. Für das
Anwenderprogramm hat der CONF_DB keine weitere Bedeutung.

Programmierung des Konfigurations-Datenbausteins


Zur Identifizierung des neu angelegten DB müssen Sie den DB öffnen und in den ersten
beiden freien Zeilen den "header identifier" und die DB-Größe festlegen.
Öffnen Sie in STEP 7 den DB und projektieren Sie die ersten zwei freien Zeilen mit den
Variablen "ident" und "data" folgendermaßen:

Adresse Name Typ Anfangswert Kommentar (optional)


*) STRUCT *)
*) ident DWORD DW#16#45525043 header identifier
*) data array[1..2048] DB-Größe (siehe
nachfolgenden Warnhinweis)
*) Byte

*) END_STRUCT *)
*) Werte werden programmseitig eingetragen

ACHTUNG
DB-Größe
Für die DB-Größe werden 2 048 Byte empfohlen. Sollte sich während der Inbetriebnahme
zeigen, dass dieser Wert nicht ausreicht, dann vergrößern Sie ihn. Ein zu kleiner Wert wird
vom FB56 LOGICAL_TRIGGER mit einem Fehler und dem STATUS "8A05H" gemeldet.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 149
Programmbausteine für Industrial Ethernet
2.7 Mengengerüst / Ressourcenbedarf der Programmbausteine (Ethernet)

2.7 Mengengerüst / Ressourcenbedarf der Programmbausteine


(Ethernet)

Ressourcen-Bedarf

ACHTUNG

Beachten Sie die Versionsangabe der Bausteine. Die aktuell mitgelieferten


Bausteinversionen können von den hier angegebenen Bausteinversionen abweichen. Bei
Bausteinen mit anderen Ausgabeständen kann der Ressourcenbedarf abweichen.
Angaben zu den aktuellen Bausteinversionen finden Sie unter folgender Beitrags-ID:
9836605 (http://support.automation.siemens.com/WW/view/de/9836605)

Tabelle 2- 21 Angaben für FCs / FBs bei S7-400

NAME Version FC/FB Nr. Ladespeicher Arbeitsspeicher MC7 Lokaldaten


Bytes Bytes Bytes Bytes
AG_SEND 1.1 FC5 732 576 540 20
AG_RECV 1.1 FC6 656 522 486 20
AG_LOCK 1.0 FC7 272 200 164 6
AG_UNLOCK 1.0 FC8 256 186 150 6
AG_LSEND 3.0 FC50 1044 846 810 52
AG_LRECV 3.0 FC60 1190 992 956 58
AG_SSEND 1.0 FC53 1642 1386 1350 118
AG_SRECV 1.0 FC63 1600 1356 1320 122
FTP_CMD 1.0 FB40 1998 1726 1690 58
FTP_CONNECT 1.0 FC40 1482 1236 1200 86
FTP_STORE 1.0 FC41 1794 1514 1478 102
FTP_RETRIEVE 1.0 FC42 1934 1642 1606 106
FTP_DELETE 1.0 FC43 1478 1232 1196 86
FTP_QUIT 1.0 FC44 968 796 760 46

Tabelle 2- 22 Angaben für FCs / FBs bei S7-300

NAME Version FC/FB Nr. Ladespeicher Arbeitsspeicher MC7 Lokaldaten


Bytes Bytes Bytes Bytes
AG_SEND 4.2 FC5 1976 1664 1628 50
AG_RECV 4.7 FC6 1440 1206 1170 40
AG_LOCK 4.0 FC7 748 636 600 34
AG_UNLOCK 4.0 FC8 712 604 568 32
AG_CNTRL 1.0 FC10 1402 1138 1102 82

Programmbausteine für SIMATIC NET S7-CPs


150 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für Industrial Ethernet
2.7 Mengengerüst / Ressourcenbedarf der Programmbausteine (Ethernet)

NAME Version FC/FB Nr. Ladespeicher Arbeitsspeicher MC7 Lokaldaten


Bytes Bytes Bytes Bytes
IP_CONFIG 1.1 FB55 2478 2056 2020 62
FTP_CMD 1.0 FB40 2590 2240 2204 70
FTP_CONNECT 1.1 FC40 928 774 738 68
FTP_STORE 1.1 FC41 1232 1046 1010 74
FTP_RETRIEVE 1.1 FC42 1310 1118 1082 84
FTP_DELETE 1.1 FC43 922 770 734 68
FTP_QUIT 1.1 FC44 452 370 334 28
IP_CONFIG 1.3 FB55 2406 1984 1948 62
LOGICAL_TRIGGER 1.0 FB56 3862 3286 3250 96

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 151
Programmbausteine für Industrial Ethernet
2.7 Mengengerüst / Ressourcenbedarf der Programmbausteine (Ethernet)

Programmbausteine für SIMATIC NET S7-CPs


152 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET 3
3.1 Programmbausteine für PROFINET CBA

3.1.1 PN_InOut / PN_InOut_Fast - Bedeutung und Aufruf

Bedeutung und Arbeitsweise


Der Baustein FB88 / FB90 hat die Aufgabe, Daten aus dem Interface-DB in den CP sowie
aus dem CP in den Interface-DB zu übertragen. Der Interface-DB selbst ist die Schnittstelle
zum Anwenderprogramm.
Der FB88 / FB90 ist hierzu zyklisch aufzurufen. Es ist auch möglich, den FB88 / FB90 in
einem Zyklus mehrfach aufzurufen.
An der Schnittstelle ist der FB88 / FB90 ausschließlich mit der Baugruppenadresse des CP
zu versorgen.
Um eine Datenkonsistenz zu gewährleisten, dürfen Sie die zu übertragenden Daten erst
dann verändern oder mit dem Lesen der Empfangsdaten erst beginnen, wenn der Auftrag
abgeschlossen ist (DONE=1 oder ERROR=1).
Sobald DONE=1 oder ERROR=1 gesetzt sind, ist die Übertragung abgeschlossen
beziehungsweise mit Fehlermeldung beendet. Daten können jetzt ausgewertet
beziehungsweise wieder neu gesetzt werden. Erst mit dem nächsten Aufruf werden wieder
Daten übertragen.
Sorgen Sie in Ihrem Anwenderprogramm dafür, dass der FB88 / FB90 nach einer
abgeschlossenen Übertragung erst dann wieder aufgerufen wird, nachdem alle
Eingangsdaten übernommen und alle Ausgangsdaten in den Interface-DB geschrieben sind.
Der zeitgesteuerte Aufruf der Bausteine FB88 / FB90 ist prinzipiell zulässig. Beachten Sie
weitere Hinweise zu dieser Betriebsart weiter unten in diesem Kapitel.

Unterschiede zwischen FB88 und FB90


Die Funktionsbausteine FB90 und FB88 verhalten sich an der Schnittstelle zum
Anwenderprogramm weitgehend identisch. Den FB90 können Sie bei bestimmten CP-/CPU-
Typen bei S7-400 verwenden; achten Sie auf die Angaben im Gerätehandbuch des CPs.
Wenn der FB90 für den verwendeten CP-Typ zugelassen ist, wird empfohlen, diesen
einzusetzen. Sie erzielen damit kürzere Reaktionszeiten als mit dem FB88. Beachten Sie
aber die Randbedingungen zum Einsatz.
Im Einzelnen gilt:
● die Schnittstellenparameter sind identisch;
● es gibt beim FB90 einige zusätzliche Anzeigen im Parameter STATUS;

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 153
Programmbausteine für PROFINET
3.1 Programmbausteine für PROFINET CBA

● bei einigen Fehlern gibt es beim FB88 und beim FB90 unterschiedliche Anzeigen im
Parameter STATUS;
● es gibt Unterschiede im Mengengerüst des Interface DB (siehe jeweiliges
Gerätehandbuch).

Hinweis
Zum Aufbau und zur Hantierung des Interface-DB finden Sie ausführliche Informationen
in der SIMATIC iMap-Dokumentation.

ACHTUNG

Beim Überladen / Nachladen von Anwenderprogramm-Bausteinen ist die


Datenkonsistenz nur dann gewährleistet, wenn die CPU vorher in den STOP Zustand
gebracht wird.

Lieferform - Bausteinbibliothek
Der FB88 und der FB90 werden zusammen mit SIMATIC iMap geliefert. Es gibt
unterschiedliche Bausteintypen für S7-300 und S7-400.
Die Bausteine stehen nach der Installation in der Bibliothek PROFINET Library unter
"PROFINET System-Library/CP300 bzw. /CP400" zur Verfügung.

Aufrufschnittstelle
Aufrufschnittstelle in FUP-Darstellung

PN_InOut / PN_InOut_Fast

WORD LADDR DONE BOOL

ERROR BOOL

STATUS WORD

Aufrufbeispiel in AWL-Darstellung

AWL Erläuterung
Call FB 88 , DB88 ( //Bausteinaufruf mit Instanz DB88
LADDR := W#16#0120,
DONE := M 99.1,
ERROR := M 99.0,
STATUS := MW 104);

Programmbausteine für SIMATIC NET S7-CPs


154 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.1 Programmbausteine für PROFINET CBA

3.1.2 Erläuterung der Formalparameter - PN_InOut / PN_InOut_Fast

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für den FB88 / FB90:

Parameter Deklaration Datentyp Beschreibung


LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP wird die Baugruppen-Anfangsadresse in
der Konfigurationstabelle ausgegeben. Geben Sie diese Adresse hier
an.
Verändern Sie den Parameter nicht, bis der Auftrag abgeschlossen ist
(DONE=1 oder ERROR=1).
DONE OUTPUT BOOL Meldet den (positiven) Abschluss einer Auftragsausführung.
ERROR OUTPUT BOOL Meldet, wenn der Auftrag nicht fehlerfrei ausgeführt werden konnte.
STATUS OUTPUT WORD Der Parameter liefert Detailinformation zur Auftragsausführung.
Statusanzeigen können bereits während der Auftragsausführung
geliefert werden (DONE=0 und ERROR=0).

3.1.3 Anzeigen der Bausteine PN_InOut und PN_InOut_Fast

Statusanzeigen auswerten
Beachten Sie, dass die Statusanzeigen DONE, ERROR, STATUS bei jedem Bausteinaufruf
aktualisiert werden.
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, ERROR und STATUS.

Tabelle 3- 1 Anzeigen PN_InOut (FB88) und PN_InOut_Fast (FB90)

DONE ERROR STATUS Bedeutung


1 0 0000H Auftrag fertig ohne Fehler.
0 0 0000H Kein Auftrag in Bearbeitung; der Baustein ist aufrufbar.
0 0 8181H  Auftrag läuft.
oder
 (nur bei FB90) : Verbindungsaufbau zur adressierten Baugruppe läuft (siehe auch
Angaben unter 8090H ).
0 1 8183H (nur bei S7-300)
Der Dienst wurde noch nicht gestartet; Datenübernahme ist noch nicht möglich.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 155
Programmbausteine für PROFINET
3.1 Programmbausteine für PROFINET CBA

DONE ERROR STATUS Bedeutung


0 1 8184H  Fehlerhafter Instanz-DB, in der Regel ausgelöst durch unzulässiges Beschreiben
des Instanz-DBs seitens des Anwenderprogrammes.
oder
 (nur bei FB90)
Fehlerhafter Sende- oder Empfangsauftrag.
0 1 8085H (nur bei FB90)
Der Interface-DB ist fehlerhaft.
0 1 8090H (nur bei S7-400)
Parametrierfehler
Es wurde eine falsche Baugruppenadresse angegeben; die Adresse zeigt auf einen
leeren Steckplatz.
Hinweis (nur bei FB90):
In folgenden Fällen wird im STATUS der Wert 8181H angezeigt (Auftrag läuft);
tatsächlich findet jedoch keine Kommunikation statt:
 Die Adresse zeigt auf einen Steckplatz , der mit einem anderen Baugruppentyp
belegt ist.
 Die adressierte Baugruppe ist nicht für den PROFINET CBA-Betrieb projektiert.
0 1 80A1H (nur bei FB90)
Mögliche Kommunikationsfehler:
 Stationsinterne Verbindung zur adressierten Baugruppe wird abgebaut;
 Das Mengengerüst für Verbindungen der CPU ist überschritten;
 Die Schnittstelle wird neu initialisiert.
0 1 80B0H (nur bei S7-300)
Bausteinfehler: die Datensatznummer ist falsch.
Dieser Status kann auch nach folgenden Vorgängen auftreten:
 Neuanlauf bzw. einem Wiederanlauf nach Netz AUS/EIN
 Neuanlauf bzw. einem Wiederanlauf der CPU
0 1 80B1H (nur bei S7-300)
Bausteinfehler: Datensatzlänge oder Offset sind falsch.
0 1 80B3H (nur bei S7-300)
Parameterfehler: falsche CP-Adresse.
0 1 80C1H (nur bei S7-300)
Temporärer Fehler: Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H (nur bei S7-300)
Temporärer Fehler: Es liegt ein Auftragsstau vor; der Datensatz kann noch nicht
gelesen werden.
0 1 80C3H (nur bei S7-300)
Temporärer Fehler: Betriebsmittel (Speicher) belegt.
0 1 80C4H (nur bei S7-300)
Kommunikationsfehler: tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll.

Programmbausteine für SIMATIC NET S7-CPs


156 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.1 Programmbausteine für PROFINET CBA

DONE ERROR STATUS Bedeutung


0 1 80D0H (nur bei S7-300)
Projektierungsfehler:
Die maximale Anzahl der Ein- und Ausgabedatenblöcke ist überschritten; der Interface
DB ist zu groß.
0 1 80D1H (nur bei S7-300)
Projektierungsfehler
Mögliche Ursachen:
 Die Schnittstelle der projektierten Komponente stimmt nicht mit der im Programm
verwendeten überein (Ausgänge).
 Es wurde eine falsche Baugruppe gesteckt; der PROFINET-Dienst wird nicht
unterstützt.
0 1 80D2H (nur bei S7-300)
Projektierungsfehler
Mögliche Ursachen:
 Die Schnittstelle der projektierten Komponente stimmt nicht mit der im Programm
verwendeten überein (Eingänge).
 Es wurde eine falsche Baugruppe gesteckt; der PROFINET-Dienst wird nicht
unterstützt.
 Parameterfehler: falsche CP-Adresse
0 1 8322H (nur bei FB90)
Der Interface-DB ist fehlerhaft.
0 1 8332H (nur bei FB90)
Die Nummer des Interface-DB ist zu groß.
0 1 833AH (nur bei FB90)
Der Zugriff auf den Interface-DB ist nicht möglich (beispielsweise weil der Interface-DB
gelöscht wurde).
0 1 8623H (nur bei FB90)
Der Interface-DB ist fehlerhaft.
0 1 863AH (nur bei FB90)
Der Zugriff auf den Interface-DB ist nicht möglich (beispielsweise weil der Interface-DB
gelöscht wurde).

Welche SFCs genutzt werden, die für die Fehlerauswertung relevant sind, können Sie über
den Eigenschaftendialog des hier beschriebenen FBs im Register "Aufrufe" anzeigen
lassen."

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH (bei S7-300) bzw. 8xxxH (bei S7-
400) unter STATUS auch die Angaben im Referenzhandbuch STEP 7 Standard und
Systemfunktionen. Sie finden dort Hinweise im Kapitel "Fehlerauswertung mit dem
Ausgangsparameter RET_VAL"

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 157
Programmbausteine für PROFINET
3.1 Programmbausteine für PROFINET CBA

Statusanzeigen beim CP-Anlauf


Bei einem Neu-/Wiederanlauf des PROFINET-CP (z. B. wegen Schalterbetätigung), werden
die Ausgabeparameter des Bausteines wie folgt zurückgesetzt:
● DONE = 0
● ERROR = 0
● STATUS = 8181H

3.1.4 Zeitgesteuerter Aufruf PN_InOut / PN_InOut_Fast - Empfehlung zur Anwendung

Zeitgesteuerter Aufruf - Empfehlung zur Anwendung


Wenn in Ihrer Anwendung anstelle einer zyklischen oder ereignisgesteuerten Bearbeitung
eine zeitgesteuerte Übertragung der CBA-Daten erforderlich ist, empfehlen wir Ihnen die
nachfolgend beschriebene Vorgehensweise für den Aufruf der Bausteine FB88 / FB90.
Beim zeitgesteuerten Aufruf müssen Sie darauf achten, dass der Baustein, nachdem er
einmal gestartet wurde, bis zum Setzen der Ausführungsbestätigung (DONE-Flag)
wiederholt aufgerufen werden muss. Damit die CBA Daten ohne längere Unterbrechung
zwischen CPU und CP kopiert werden können, sollten diese Folgeaufrufe von der
Zeitsteuerung entkoppelt schnellstmöglich erfolgen.
Beachten Sie daher folgende Empfehlungen für die Programmierung:
● Die Zeitsteuerung erfolgt über einen Zeit-OB; der Zeit-OB sollte hierzu nur den Erstaufruf
der PROFINET CBA Bausteine FB88 oder FB90 veranlassen, indem er diese nicht direkt
aufruft, sondern indem er beispielsweise ein Start-Flag setzt.
● Der Aufruf der PROFINET CBA Bausteine FB88 und FB90 sollte dann grundsätzlich im
OB1 erfolgen; der OB1 startet den Aufruf, sobald das Start-Flag vom Zeit-OB gesetzt
wurde.
● Nach dem Erstaufruf der Bausteine sind diese im OB1 wiederholt bis zum Setzen des
DONE Bits (bzw. bis zum Auftreten eines Fehlers) aufzurufen; das Start-Flag ist nach
diesem Vorgang wieder zurückzusetzen.
Ergebnis:
Die CBA Anwenderdaten können durch diese Entkopplung des Zeit-OB von den eigentlichen
Bausteinaufrufen im OB1 ohne wesentliche Unterbrechung zwischen CPU und CP kopiert
werden; den Zeitabstand zwischen den Erstaufrufen können Sie hierbei je nach Anforderung
beliebig wählen.

Programmbausteine für SIMATIC NET S7-CPs


158 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

3.2 Programmbausteine für PROFINET IO (S7-300)

3.2.1 Anwendung in der Übersicht

Übersicht
Für die zyklische Übertragung von Daten an der PROFINET IO-Schnittstelle stehen die
nachfolgend genannten FCs zur Verfügung. Je nach Verwendung des CP als PROFINET
IO-Controller oder als PROFINET IO-Device in einer S7-Station unterscheidet sich die
Bedeutung der FCs.

FC verwendbar bei Bedeutung


S7-300 S7-400
PNIO_SEND (FC11) x - Abhängig von der Betriebsart des CP:
 Beim PROFINET IO-Controller

Prozess-Ausgangsdaten zu den
PROFINET IO-Devices senden.
 Beim PROFINET IO-Device
Prozess-Eingangsdaten zum
PROFINET IO-Controller
weiterleiten.
PNIO_RECV (FC12) x - Abhängig von der Betriebsart des CP:
 Beim PROFINET IO-Controller
Prozess-Eingangsdaten von den
PROFINET IO-Devices empfangen.
 Beim PROFINET IO-Device
Prozess-Ausgangsdaten vom
PROFINET IO-Controller
empfangen.

Für CPs im Parallelbetrieb von PROFINET IO−Controller und IO-Device stehen die FCs ab
Version 2.0 zur Verfügung.
Für die azyklische Datenübertragung (Datensätze, Alarminformationen) an der PROFINET
IO-Schnittstelle stehen die nachfolgend genannten FBs zur Verfügung. Beide Bausteine sind
nur im PROFINET IO-Controller-Betrieb nutzbar.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 159
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

FB verwendbar bei Bedeutung


S7-300 S7-400
PNIO_RW_REC (FB52) x -  Datensatz lesen
(von einem PROFINET IO-
Device)
 Datensatz schreiben
(an ein PROFINET IO-Device)
PNIO_ALARM (FB54) x - Alarminformationen von den
PROFINET IO-Devices empfangen

3.2.2 PNIO_SEND

3.2.2.1 Bedeutung und Aufruf - PNIO_SEND

Bedeutung und Arbeitsweise


Der Programmbaustein PNIO_SEND wird für die Datenübergabe in den CP-Betriebsarten
PROFINET IO-Controller oder PROFINET IO-Device verwendet.
● Betrieb als PROFINET IO-Controller
Der Baustein übergibt die Prozessdaten (Ausgänge) eines angegebenen
Ausgabebereichs an den CP zur Weiterleitung an PROFINET IO-Devices. Der Baustein
liefert als Statusanzeige den IO Consumer Status (IOCS) der Ausgänge von den
PROFINET IO-Devices.
● Betrieb als PROFINET IO-Device
Der Baustein liest die vorverarbeiteten Prozess-Eingänge der CPU im PROFINET IO-
Device und transferiert sie zum PROFINET IO-Controller (projektierte E-Adressen);
zusätzlich liefert der Baustein als Statusanzeige den IO Consumer Status (IOCS) des
PROFINET IO-Controllers.
Die vorverarbeiteten Prozessdaten werden in einem DB oder Merkerbereich bereitgestellt.

Programmbausteine für SIMATIC NET S7-CPs


160 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Ergänzungen
● ab Bausteinversion V2.0
PNIO_SEND unterstützt den Parallelbetrieb von PROFINET IO−Controller− und IO-
Device. Über den zusätzlichen Parameter MODE stellen Sie ein, für welche Betriebsart
der FC aufgerufen wird.
● ab Bausteinversion V3.0
Über den Parameter MODE haben Sie für die Übertragung des IO Consumer Status
folgende Wahlmöglichkeiten:
– Beschränkung auf die für schnellere Übertragung optimierte Sammel-
Statusinformation im Parameter CHECK_IOCS;
oder
– Zusätzliche, detaillierte Statusinformation im Parameter IO Consumer Status.

Aufrufschnittstelle (ab Bausteinversion 2.0)


Aufrufschnittstelle in FUP-Darstellung

31,2B6(1'

:25' &3/$''5 ,2&6 $1<

%<7( 02'( '21( %22/

,17 /(1 (5525 %22/

$1< 6(1' 67$786 :25'

&+(&.B,2&6 %22/

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 11 ( //PNIO_SEND aufrufen
CPLADDR:=W#16#0100, //BG–Adresse aus Hardware–Konfiguration
MODE :=B#16#80, //Controller–Betrieb oder Device–Betrieb;
//IOCS Statusbits werden nicht übertragen.
LEN :=20, //Länge des Datenbereiches
IOCS :=P#DB10.DBX20.0 BYTE 3, //Pro Sendedatenbyte ein Bit Status im DB10
DONE :=M 70.0, //Adresse für Rückgabeparameter DONE
ERROR :=M 70.1, //Adresse für Rückgabeparameter ERROR
STATUS :=MW 72, //Adresse für Rückgabeparameter STATUS
CHECK_IOCS :=M 70.2, //Adresse für Rückgabeparameter CHECK_IOCS
SEND :=P#DB10.DBX0.0 BYTE 20 ); //aus DB10 zu übertragender Datenbereich
//(20 Byte)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 161
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

3.2.2.2 Erläuterung der Formalparameter - PNIO_SEND

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für den FC11:

Parameter Deklaration Datentyp Wertebereich Beschreibung


CPLADDR INPUT WORD - Baugruppen-Anfangsadresse
MODE INPUT BYTE Für XYH sind angebbar: Angabe zur Arbeitsweise des CP mit:
(Parameter  X0H: Y = Angabe zur Betriebsart IO-Controller
ab Version bzw. IO-Device;
– IO-Controller−Betrieb
2.0) X = Angabe, ob nur Sammelmeldung in
– IO-Device−Betrieb (wenn
CHECK_IOCS oder zusätzlich Statusbits in
kein Parallelbetrieb)
IOCS übertragen werden sollen.
– Es besteht Kompatibilität
mit dem FC in der
Version 1.0 Hinweise zur Kompatibilität:
 X1H:  Der FC in der Version 1.0 kann weiterhin
verwendet werden, wenn der CP nicht
IO-Device−Betrieb (bei
parallel als IO-Controller und als IO-
Parallelbetrieb)
Device betrieben wird.
 0YH
 Der FC in der Version ab 2.0 verhält sich
Statusbits werden in IOCS mit MODE=0 wie der FC in der Version
übertragen. 1.0.
 8YH  Der FC in der Version ab 3.0 verhält sich
mit MODE=0 und MODE=1 wie der FC
Beschränkung auf
in der Version 2.0.
Sammelmeldung in
CHECK_IOCS; keine
Statusbits in IOCS.

Programmbausteine für SIMATIC NET S7-CPs


162 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Parameter Deklaration Datentyp Wertebereich Beschreibung


SEND IN_OUT ANY Die Adresse des Angabe von Adresse und Länge
(als Datenbereiches verweist IO-Controller-Betrieb:
VARTYPE alternativ auf:
Die Länge sollte der projektierten
ist nur
 Merkerbereich Gesamtlänge der dezentralen Peripherie
BYTE
 Datenbausteinbereich entsprechen, wobei Adresslücken mit
zugelassen
übertragen werden.
)
Die Länge kann auch kürzer als die
Gesamtlänge der dezentralen Peripherie
sein, beispielsweise wenn der Baustein
mehrmals in 1 OB aufgerufen wird. Er muss
jedoch bei mindestens einem Aufruf die
Gesamtlänge haben.
IO-Device-Betrieb:
Die Datenstruktur ergibt sich aus der
Reihenfolge der Steckplätze der am
PROFINET IO-Controller-Strang für dieses
PROFINET IO-Device projektierten
Eingangsmodule und deren Länge ohne
Adresslücken.
Hinweise:
 Der Baustein beginnt die Übertragung
der Daten bei Adresse 0, unabhängig
davon, wie Sie die Adressen projektiert
haben (unabhängig von der kleinsten
projektierten Adresse).
 Die Angabe eines Peripherie-Bereichs ist
nicht erlaubt, da Sie zunächst den IOCS
auf GOOD prüfen müssen, bevor Daten
in die Peripherie übernommen werden
dürfen.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 163
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Parameter Deklaration Datentyp Wertebereich Beschreibung


LEN INPUT INT Wert > 0 Länge des zu übertragenden Datenbereichs
Die maximale Gesamtlänge der in Byte.
zu übertragenden Die Übertragung der Daten beginnt
Datenbereiche entnehmen Sie zwingend mit Adresse 0, unabhängig von
bitte dem gerätespezifischen der Projektierung. Beachten Sie, dass die
Teil B dieses Handbuches unter IO-Adresse "0" mit der Länge=1
Kapitel "Leistungsdaten". Sie berücksichtigt wird.
kann für Controller- bzw. IO-Controller-Betrieb:
Device-Betrieb unterschiedlich
sein.  Hier muss die größte projektierte
Adresse der Devices angegeben
werden. Die einzelnen Bereiche werden
nicht zusammengefasst.
Bei mehrmaligem Aufruf des Bausteins
kann LEN auch kleiner als die größte
Adresse sein. Zumindest bei einem
Aufruf sollte die größte Adresse
angegeben werden (vgl. Parameter
"SEND").
 Die Daten werden in der Reihenfolge der
logischen Adressen übertragen (wie bei
PROFIBUS DP).

IO-Device-Betrieb:
 Die Daten werden in der Reihenfolge der
Steckplätze so übertragen, wie die
Eingangsmodule am PROFINET IO-
Controller-Strang für dieses PROFINET
IO-Device projektiert sind.

Hinweis:
Sie müssen für die Konsistenz zwischen
der hier programmierten Längenangabe
und der Projektierung des PROFINET
IO-Controllers sorgen. Beim Device wird
die gesamte Datenbereichslänge
inklusive eventueller Lücken übertragen.
DONE OUTPUT BOOL 0: - Der Zustandsparameter zeigt an, ob der
1: neue Daten übernommen Auftrag fehlerfrei abgewickelt wurde.
ERROR OUTPUT BOOL 0: -1: Fehler Fehleranzeige
STATUS OUTPUT WORD - Statusanzeige

Programmbausteine für SIMATIC NET S7-CPs


164 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Parameter Deklaration Datentyp Wertebereich Beschreibung


CHECK_ OUTPUT BOOL 0: alle IOCS auf GOOD Sammelmeldung, die anzeigt, ob es
IOCS 1: mindestens ein IOCS auf erforderlich ist, den IOCS-Statusbereich
BAD auszuwerten.
CHECK_IOCS wird unabhängig vom
Parameter MODE immer geliefert.
IOCS OUTPUT ANY (als Die Adresse des IO Consumer Status
VAR-TYPE Datenbereiches verweist Pro Byte Nutzdaten wird ein Status-Bit
ist nur alternativ auf: übertragen.
BYTE
 Merkerbereich Voraussetzung: Die Übertragung ist im
zugelassen
 Datenbausteinbereich Parameter MODE angefordert (MODE=0
)
oder MODE=1). Nur in dieser Betriebsart ist
Länge:
der Parameter relevant.
Den Maximalwert entnehmen
Die Längenangabe hängt von der Länge im
Sie bitte dem
Parameter LEN ab (pro Byte ein Bit)
gerätespezifischen Teil B dieses
Handbuches unter Kapitel = (Länge LEN + 7/8)
"Leistungsdaten". Sie kann für Controller-Betrieb:
Controller- bzw. Device-Betrieb Entsprechend dem Parameter SEND
unterschiedlich sein. werden Adresslücken mit übertragen.
Adresslücken werden mit Status GOOD
übertragen.
Device-Betrieb:
Adresslücken werden nicht mit übertragen.

Der Baustein beginnt die Übertragung des


Status für Adresse 0.
Hinweis:
Die Mindestlänge des ANY-Pointer ist
(Länge LEN + 7/8)

ACHTUNG
Ausführungsbestätigung abwarten
Führen Sie folgende Aktionen erst aus, nachdem der Baustein entweder DONE = 1 oder
ERROR = 1 signalisiert hat:
 Ausgangsparameter auswerten;
 den Parameter MODE verändern.

ACHTUNG

Sie müssen davon ausgehen, dass der gelieferte IOCS Status nicht zeitsynchron zu den
Daten (SEND Parameter) kommt, sondern um einen Anwenderprogramm-Zyklus verzögert.
Das heißt: Anwenderdaten und IOCS sind nicht konsistent.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 165
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

3.2.2.3 Anzeigen des Bausteins PNIO_SEND

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

Tabelle 3- 2 Anzeigen PNIO_SEND

DONE ERROR STATUS Bedeutung


0 0 8180H  Datenübergabe läuft;
oder
 der CP ist im Betriebszustand STOP.
0 0 8181H Baugruppe unterstützt nicht die Bausteinversion 2.0.
Abhilfe: Bausteinversion 1.0 benutzen.
1 0 0000H Neue Daten fehlerfrei übergeben.
0 1 8183H  PROFINET IO Projektierung fehlt;
oder
 Parameter CPLADDR ist fehlerhaft;
oder
 der CP ist im Betriebszustand STOP;
oder
 die Beschaltung von MODE passt nicht zur Baugruppen−Projektierung oder es liegt
eine falsche Beschaltung des Parameters MODE vor.
Bei Device-Betrieb zusätzlich:
 Die Verbindung zwischen PROFINET IO-Controller und PROFINET IO-Device ist
unterbrochen,
oder
 PROFINET IO-Controller nicht erreichbar
oder
 Gesamtlängen (Projektierung und Parameter LEN) sind nicht konsistent.
0 1 8184H Systemfehler bzw. unzulässiger Parametertyp.
0 1 8185H Der Parameter LEN ist größer als der Quell-Bereich SEND oder der Zielpuffer (IOCS)
ist zu klein.
0 1 8F22H Bereichslängenfehler beim Lesen eines Parameters (z. B. DB zu kurz).

Programmbausteine für SIMATIC NET S7-CPs


166 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

DONE ERROR STATUS Bedeutung


0 1 8F23H Bereichslängenfehler beim Schreiben eines Parameters (z. B. DB zu kurz).
0 1 8F24H Bereichsfehler beim Lesen eines Parameters.
0 1 8F25H Bereichsfehler beim Schreiben eines Parameters.
0 1 8F28H Ausrichtungsfehler beim Lesen eines Parameters.
0 1 8F29H Ausrichtungsfehler beim Schreiben eines Parameters.
0 1 8F30H Parameter liegt im schreibgeschützten 1. akt. Datenbaustein.
0 1 8F31H Parameter liegt im schreibgeschützten 2. akt. Datenbaustein.
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F3AH Zielbereich ist nicht geladen (DB).
0 1 8F42H Quittungsverzug beim Lesen eines Parameters aus dem Peripheriebereich.
0 1 8F43H Quittungsverzug beim Schreiben eines Parameters in den Peripheriebereich.
0 1 8F44H Der Zugriff auf einen in der Bausteinbearbeitung zu lesenden Parameter ist gesperrt.
0 1 8F45H Der Zugriff auf einen in der Bausteinbearbeitung zu schreibenden Parameter ist
gesperrt.
0 1 8F7FH Interner Fehler. z. B. Unzulässige ANY-Referenz.
0 1 8090H Baugruppe mit dieser Adresse ist nicht vorhanden.
0 1 80A0H Negative Quittung beim Lesen von der Baugruppe.
0 1 80A1H Negative Quittung beim Schreiben zur Baugruppe.
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H  Die angegebene Datensatzlänge ist falsch.
oder
 Der CP geht in den Betriebszustand STOP.
0 1 80C0H Der Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Betriebsmittel (Speicher) belegt.
0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll.)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 167
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

3.2.3 PNIO_RECV

3.2.3.1 Bedeutung und Aufruf - PNIO_RECV

Bedeutung und Arbeitsweise


Der Programmbaustein PNIO_RECV wird für die Datenübernahme in den CP-Betriebsarten
PROFINET IO-Controller oder PROFINET IO-Device verwendet.
● Betrieb als PROFINET IO-Controller
Der Baustein übernimmt die Prozessdaten von PROFINET IO-Devices (Eingänge des
Controllers) sowie den IO Provider Status (IOPS) von den PROFINET IO-Devices in die
angegeben Eingabebereiche.
● Betrieb als PROFINET IO-Device
Der Baustein übernimmt die vom PROFINET IO-Controller übertragenen Daten
(projektierte A-Adressen) sowie den IO Provider Status (IOPS) des PROFINET IO-
Controllers und schreibt sie in die für die Prozess-Ausgänge reservierten Datenbereiche
der CPU im PROFINET IO-Device.

Ergänzungen
● ab Bausteinversion V2.0
PNIO_RECV unterstüzt den Parallelbetrieb von PROFINET IO−Controller− und IO-
Device. Über den zusätzlichen Parameter MODE stellen Sie ein, für welche Betriebsart
der FC aufgerufen wird.
● ab Bausteinversion V3.0
Über den Parameter MODE haben Sie für die Übertragung des IO Provider Status
folgende Wahlmöglichkeiten:
– Beschränkung auf die für schnellere Übertragung optimierte Sammel-
Statusinformation im Parameter CHECK_IOPS;
oder
– Zusätzliche, detaillierte Statusinformation im Parameter IO Provider Status.

Programmbausteine für SIMATIC NET S7-CPs


168 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Aufrufschnittstelle (ab Bausteinversion 2.0)


Aufrufschnittstelle in FUP-Darstellung

31,2B5(&9

:25' &3/$''5 ,236 $1<

%<7( 02'( 1'5 %22/

,17 /(1 (5525 %22/

67$786 :25'

&+(&.B,236 %22/

$''B,1)2 :25'

$1< 5(&9

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 12 ( //PNIO_RECV aufrufen
CPLADDR :=W#16#0100, //BG–Adresse aus Hardware–Konfiguration
MODE :=B#16#80, //Controller–Betrieb oder Device–Betrieb;
//IOCS Statusbits werden nicht übertragen.
LEN :=7, //Länge des Datenbereiches
IOPS :=P#DB11.DBX7.0 BYTE 1, //Pro Empfangsdatenbyte ein Status-Bit im DB11
NDR :=M 74.0, //Adresse für Rückgabeparameter NDR
ERROR :=M 74.1, //Adresse für Rückgabeparameter ERROR
STATUS :=MW76, //Adresse für Rückgabeparameter STATUS
CHECK_IOPS :=M74.2, //Adresse für Rückgabeparameter CHECK_IOPS
ADD_INFO :=MW 26, //Diagnose-Information
RECV :=P#DB11.DBX0.0 BYTE 7 ); //Empfangsdaten im DB11 (7 Byte)

Siehe auch
Datenkonsistenz (Seite 177)
Ersatzwerte (Seite 178)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 169
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

3.2.3.2 Erläuterung der Formalparameter - PNIO_RECV

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für den FC12:

Parameter Deklaration Datentyp Wertebereich Beschreibung


CPLADDR INPUT WORD - Baugruppen-Anfangsadresse
MODE INPUT BYTE Im Parameter MODE = XYH Angabe zur Arbeitsweise des CP mit:
(Parameter sind Werte mit folgender Y = Angabe zur Betriebsart IO-Controller
ab Version Bedeutung angebbar: bzw. IO-Device;
2.0)  X0H: X = Angabe, ob nur Sammelmeldung in
– IO-Controller−Betrieb CHECK_IOPS oder zusätzlich Statusbits in
IOPS übertragen werden sollen.
– IO-Device−Betrieb
(wenn kein Hinweise zur Kompatibilität:
Parallelbetrieb)  Der FC in der Version 1.0 kann weiterhin
– Es besteht verwendet werden, wenn der CP nicht
Kompatibilität mit dem parallel als IO-Controller und als IO-
FC in der Version 1.0 Device betrieben wird.
 X1H:  Der FC in der Version ab 2.0 verhält sich
IO-Device−Betrieb (bei mit MODE=0 wie der FC in der Version
Parallelbetrieb) 1.0.

 0YH  Der FC in der Version ab 3.0 verhält sich


mit MODE=0 und MODE=1 wie der FC in
Statusbits werden in IOPS der Version 2.0.
übertragen.

 8YH

Beschränkung auf
Sammelmeldung in
CHECK_IOPS; keine
Statusbits in IOPS.

Programmbausteine für SIMATIC NET S7-CPs


170 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Parameter Deklaration Datentyp Wertebereich Beschreibung


RECV IN_OUT ANY (als Die Adresse des Angabe von Adresse und Länge
VARTYPE Datenbereiches verweist IO-Controller-Betrieb:
ist nur alternativ auf:
Die Länge sollte der projektierten
BYTE
 Merkerbereich Gesamtlänge der dezentralen Peripherie
zugelassen
 Datenbausteinbereich entsprechen, wobei Adresslücken mit
)
übertragen werden.
Die Länge kann auch kürzer als die
Gesamtlänge der dezentralen Peripherie
sein, beispielsweise wenn der Baustein
mehrmals in 1 OB aufgerufen wird. Er muss
jedoch bei mindestens einem Aufruf die
Gesamtlänge haben.
IO-Device-Betrieb:
Die Datenstruktur ergibt sich aus der
Reihenfolge der Steckplätze der am
PROFINET IO-Controller-Strang für dieses
PROFINET IO-Device projektierten
Ausgangsmodule und deren Länge ohne
Adresslücken.
Hinweise:
 Der Baustein beginnt die Übertragung der
Daten bei Adresse 0, unabhängig davon,
wie Sie die Adressen projektiert haben
(unabhängig von der kleinsten
projektierten Adresse).
 Die Angabe eines Peripherie-Bereichs ist
nicht erlaubt, da Sie zunächst den IOPS
auf GOOD prüfen müssen, bevor Daten
in die Peripherie übernommen werden
dürfen.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 171
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Parameter Deklaration Datentyp Wertebereich Beschreibung


LEN INPUT INT Wert > 0 Länge des zu übertragenden Datenbereichs
Die maximale Gesamtlänge der in Byte.
zu übertragenden Daten Die Übertragung der Daten beginnt zwingend
entnehmen Sie bitte dem mit Adresse 0, unabhängig von der
Kapitel "Leistungsdaten" der Projektierung. Beachten Sie, dass die IO-
CP-Dokumentation. Adresse "0" mit der Länge=1 berücksichtigt
Die maximale Gesamtlänge wird.
kann für Controller- und IO-Controller-Betrieb:
Device-Betrieb unterschiedlich
 Hier muss die größte projektierte Adresse
sein.
der Devices angegeben werden. Die
einzelnen Bereiche werden nicht
zusammengefasst.
Bei mehrmaligem Aufruf des Bausteins
kann LEN auch kleiner als die größte
Adresse sein. Zumindest bei einem Aufruf
sollte die größte Adresse angegeben
werden (vgl. Parameter "RECV").
 Die Daten werden in der Reihenfolge der
logischen Adressen übertragen (wie bei
PROFIBUS DP).

IO-Device-Betrieb:
 Die Daten werden in der Reihenfolge der
Steckplätze so übertragen, wie die
Eingangsmodule am PROFINET IO-
Controller-Strang für dieses PROFINET
IO-Device projektiert sind.
 Hinweis:
Sie müssen für die Konsistenz zwischen
der hier programmierten Längenangabe
und der Projektierung des PROFINET IO-
Controllers sorgen. Beim Device wird die
gesamte Datenbereichslänge inklusive
eventueller Lücken übertragen.
NDR OUTPUT BOOL 0: - Der Zustandsparameter zeigt an, ob der
1: Daten übernommen Auftrag fehlerfrei abgewickelt wurde.
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehler
STATUS OUTPUT WORD - Statusanzeige
CHECK_ OUTPUT BOOL 0: alle IOPS auf GOOD Sammelmeldung, die anzeigt, ob es
IOPS 1: mindestens ein IOPS auf erforderlich ist, den IOPS-Statusbereich
BAD auszuwerten.
Die Sammelmeldung CHECK_IOPS wird
unabhängig vom Parameter MODE immer
geliefert.

Programmbausteine für SIMATIC NET S7-CPs


172 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Parameter Deklaration Datentyp Wertebereich Beschreibung


IOPS OUTPUT ANY (als Die Adresse des IO Provider Status
VARTYPE Datenbereiches verweist Pro Byte Nutzdaten wird ein Status-Bit
ist nur alternativ auf: übertragen.
BYTE
 Merkerbereich Voraussetzung: Die Übertragung ist im
zugelas-
 Datenbausteinbereich Parameter MODE angefordert (MODE=0
sen)
oder MODE=1). Nur in dieser Betriebsart ist
Länge:
der Parameter relevant.
Den Maximalwert entnehmen
Die Längenangabe hängt von der Länge im
Sie bitte dem
Parameter RECV ab (pro Byte ein Bit)
gerätespezifischen Teil B
dieses Handbuches unter = (Länge LEN + 7/ 8)
Kapitel "Leistungsdaten". Sie Controller-Betrieb:
kann für Controller- bzw. Entsprechend dem Parameter RECV werden
Device-Betrieb unterschiedlich Adresslücken mit übertragen.
sein.
Adresslücken werden mit Status GOOD
übertragen.
Device-Betrieb:
Adresslücken werden nicht mit übertragen.
Der Baustein beginnt die Übertragung des
Status für Adresse 0.
Hinweis:
 Die Mindestlänge des ANY-Pointer ist
(Länge LEN + 7/ 8)
ADD_INFO OUTPUT WORD Zusätzliche Diagnose- Parameter-Erweiterung
Information Hinweis:
Im Controller-Betrieb: Der Parameter ADD_INFO wird auch dann
aktualisiert, wenn im PROFINET IO-
 0: Kein Alarm
Controller keine INPUT-Adressen konfiguriert
 >0: Anzahl anstehender sind. In diesem Fall wird der Baustein
Alarme PNIO_RECV mit einer Länge LEN > 0 (z. B.
Im Device-Betrieb ist der LEN = 1 Byte) aufgerufen. Er überträgt dann
Parameter immer = 0. eine Adresslücke von 1 Byte.
Die Parameter−Erweiterung ist nutzbar für
CPs ab folgendem Firmware−Stand (FW):
 CP 343−1 (EX30) ab FW V2.0
 CP 343−1 Lean (CX10) ab FW V2.0
 CP 343−1 Advanced (GX30) ab FW V1.0
Bei älteren Firmwareversionen ist der
Parameter reserviert.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 173
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

ACHTUNG
Ausführungsbestätigung abwarten
Führen Sie folgende Aktionen erst aus, nachdem der Baustein entweder DONE = 1 oder
ERROR = 1 signalisiert hat:
 Ausgangsparameter auswerten;
 den Parameter MODE verändern.

3.2.3.3 Anzeigen des Bausteins PNIO_RECV

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus NDR, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

Tabelle 3- 3 Anzeigen PNIO_RECV

NDR ERROR STATUS Bedeutung


0 0 8180H  Datenübernahme läuft;
oder
 der CP ist im Betriebszustand STOP.
0 0 8181H Baugruppe unterstützt nicht die Bausteinversion 2.0.
Abhilfe: Bausteinversion 1.0 benutzen.
1 0 0000H Neue Daten fehlerfrei übernommen.

Programmbausteine für SIMATIC NET S7-CPs


174 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

NDR ERROR STATUS Bedeutung


0 1 8183H  PROFINET IO-Projektierung fehlt;
oder
 Parameter CPLADDR ist fehlerhaft;
oder
 der CP ist im Betriebszustand STOP.
oder
 die Beschaltung von MODE passt nicht zur Baugruppen−Projektierung oder es liegt
eine falsche Beschaltung des Parameters MODE vor.
Bei Device-Betrieb zusätzlich:
 Die Verbindung zwischen PROFINET IO-Controller und PROFINET IO-Device ist
unterbrochen,
oder
 PROFINET IO-Controller nicht erreichbar
oder
 Gesamtlängen (Projektierung und Parameter LEN) sind nicht konsistent
0 1 8184H Systemfehler bzw. unzulässiger Parametertyp.
0 1 8185H Ziel-Puffer (RECV oder IOCS) ist zu klein.
0 1 8F22H Bereichslängenfehler beim Lesen eines Parameters (z. B. DB zu kurz).
0 1 8F23H Bereichslängenfehler beim Schreiben eines Parameters (z. B. DB zu kurz).
0 1 8F24H Bereichsfehler beim Lesen eines Parameters.
0 1 8F25H Bereichsfehler beim Schreiben eines Parameters.
0 1 8F28H Ausrichtungsfehler beim Lesen eines Parameters.
0 1 8F29H Ausrichtungsfehler beim Schreiben eines Parameters.
0 1 8F30H Parameter liegt im schreibgeschützten 1. akt. Datenbaustein.
0 1 8F31H Parameter liegt im schreibgeschützten 2. akt. Datenbaustein.
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F3AH Zielbereich ist nicht geladen (DB).
0 1 8F42H Quittungsverzug beim Lesen eines Parameters aus dem Peripheriebereich.
0 1 8F43H Quittungsverzug beim Schreiben eines Parameters in den Peripheriebereich.
0 1 8F44H Der Zugriff auf einen in der Bausteinbearbeitung zu lesenden Parameter ist gesperrt.
0 1 8F45H Der Zugriff auf einen in der Bausteinbearbeitung zu schreibenden Parameter ist
gesperrt.
0 1 8F7FH Interner Fehler. z. B. Unzulässige ANY-Referenz.
0 1 8090H Baugruppe mit dieser Adresse ist nicht vorhanden.
0 1 80A0H Negative Quittung beim Lesen von der Baugruppe.
0 1 80A1H Negative Quittung beim Schreiben zur Baugruppe.
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H  Die angegebene Datensatzlänge ist falsch.
oder
 Der CP geht in den Betriebszustand STOP.
0 1 80C0H Der Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 175
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

NDR ERROR STATUS Bedeutung


0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Betriebsmittel (Speicher) belegt.
0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll.)

3.2.4 Allgemeines Verhalten der FCs für PROFINET IO

IO Consumer Status (IOCS) und IO Provider Status (IOPS)


Bei beiden Kommunikationspartnern - CPU/CP einerseits und IO-Device andererseits - gibt
es jeweils eine Statusinformation GOOD oder BAD zu den Daten. Diese Statusinformation
wird parallel mit den Daten übertragen. Der Status des Partners, der die Daten sendet, heißt
IOPS (IO Provider Status), der Status des empfangenden Partners heißt IOCS (IO
Consumer Status).
Der Status IOPS und der Status IOCS sind nicht zwingend identisch. Es kann beispielsweise
sein, dass sich die S7-300 CPU im Stop-Zustand befindet (Output Disable bzw. keine
PROFINET IO-Bausteine laufen). In diesem Fall übermittelt der CP als PROFINET IO-
Controller den Status BAD zu den IO-Devices.
Sie erhalten eine Sammelmeldung, die darüber Auskunft gibt, ob eine Auswertung der
Statusinformationen notwendig ist. Zusätzlich entscheiden Sie über den Parameter MODE,
ob detaillierte Statusinformationen an der Aufrufschnittstelle geliefert werden sollen. Sie
beschleunigen die Auftragsabwicklung, wenn Sie sich auf die Sammelmeldung beschränken.

Zusammenhang zwischen Bausteinaufruf und IO-Daten


● Betrieb als PROFINET IO-Controller
Der CP als PROFINET IO-Controller überwacht nicht den zyklischen Aufruf der
PNIO_SEND/RECV Bausteine. Wenn die Bausteine nicht aufgerufen werden, gelten die
letzten übertragenen IO-Daten und IOCS/IOPS-Daten.
● Betrieb als PROFINET IO-Device
FC11 und FC12 besitzen jeweils einen eigenen Watchdog. In Abhängigkeit von der CPU-
Zykluszeit wird die Verbindung zum PROFINET IO-Controller abgebaut, falls nach der
Initialisierungsphase einer der beiden Bausteine nicht mehr aufgerufen wird.

Datenübertragung optimieren (nur bei Betrieb als PROFINET IO-Controller)


Es ist möglich, die Bausteine mit einer Länge (Parameter LEN) aufzurufen, die kleiner ist, als
die projektierte Gesamtlänge der E/A-Daten am PNIO-Strang.
Dies können Sie so ausnutzen, dass zeitkritische Daten in jedem CPU-Zyklus und
unkritische Daten hingegen nicht in jedem Zyklus übertragen werden.

Programmbausteine für SIMATIC NET S7-CPs


176 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Beispiel:
Übertragen Sie beispielsweise in jedem Zyklus nur den ersten Bereich der Daten
(zeitkritische Daten) und in jedem zweiten Zyklus die Gesamtlänge der projektierten E/A-
Daten. Dazu müssen Sie die zeitkritischen Daten in der Projektierung in den unteren Bereich
(ab E/A-Adresse 0) legen.

3.2.5 Datenkonsistenz
Es wird immer der gesamte Eingangs- bzw. Ausgangsdatenbereich des PROFINET IO-
Controller komplett und damit konsistent übertragen.
● Betrieb als PROFINET IO-Controller
Davon unabhängig haben Sie über die Längenangabe im Bausteinaufruf die Möglichkeit,
einen kleineren als den projektierten Eingangs- bzw. Ausgangsdatenbereich konsistent
zu lesen bzw. auszugeben.
Anmerkung: Beachten Sie jedoch, dass in Bezug auf die "IO-Nutzdaten" innerhalb eines
PROFINET IO-Systems nur die Daten-Konsistenz innerhalb der einzelnen IO-Slots
garantiert werden kann. Dies ist unabhängig davon, dass für die hier beschriebenen
Bausteine eine konsistente Datenübergabe zwischen CPU und IO-Controller gewährleistet
wird.

Bausteinaufruf
Um die Datenkonsistenz zu sichern, dürfen Sie jedoch nur auf die IO-Daten zugreifen, wenn
der Baustein fehlerfrei beendet wurde (Output-Parameter NDR = TRUE). Zusätzlich müssen
Sie prüfen, ob der Status IOCS bzw. IOPS zu den Daten = GOOD ist.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 177
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Beispiel
Im Normalfall (abhängig von der Gesamtlänge der IO-Daten) wird der Baustein über
mehrere Anwenderprogramm-Zyklen laufen, bis die Anzeige DONE/NDR = 1 meldet.

31,2B5(&9%DXVWHLQVRODQJHDXIUXIHQELV1'5 

6WDWXV,236GHU YRQ,2'HYLFHV HPSIDQJHQHQ'DWHQ


SU¾IHQJHJHEHQHQIDOOV)HKOHUEHKDQGOXQJ

'DWHQDXIEHUHLWHQXQGYHUDUEHLWHQQHXH$XVJDQJVGDWHQ
YRUEHUHLWHQ

31,2B6(1'%DXVWHLQVRODQJHDXIUXIHQELV'21( 

'LHYRQGHQ,2'HYLFHVHPSIDQJHQHQ6WDWXVZHUWH
,2&6SU¾IHQJHJHEHQHQIDOOV)HKOHUEHKDQGOXQJ

Anmerkung: Der Anwenderprogramm-Zyklus und der Zyklus des IO-Datenaustauschs


zwischen PROFINET IO-Controller und PROFINET IO-Devices sind voneinander
unabhängig.

3.2.6 Ersatzwerte

Betriebsfälle
Die Aufschaltung von Ersatzwerten wird für die beiden folgenden Betriebsfälle unterstützt:
● Ersatzwerte im Anlauf (Betriebszustandswechsel der CPU von STOP nach RUN)
● Ersatzwerte bei Störungen (Ziehen/Stecken oder Stationsausfall/-wiederkehr)

Ersatzwerte im Anlauf
Sie können die Ausgänge mit Ersatzwerten initialisieren, indem Sie im Anlauf-OB einen
Merker ("Anlauf"-Merker) setzen. Im zyklischen Betrieb (OB1) werten Sie dann diesen
"Anlauf"-Merker aus um gegebenenfalls den PNIO_SEND Baustein mit den
Initialisierungswerten aufzurufen.

Programmbausteine für SIMATIC NET S7-CPs


178 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Ersatzwerte bei Störungen (nur bei Betrieb als PROFINET IO-Controller)


Im Fehlerfall (Device/Modul ist ausgefallen) können Sie über die Abfrage der
Statusinformationen IOCS / IOPS Status ermitteln, welche Module ausgefallen sind.
Daraufhin haben Sie die Möglichkeit, Ersatzwerte aufzuschalten.

3.2.7 PNIO_RW_REC

3.2.7.1 Bedeutung und Aufruf - PNIO_RW_REC

Bedeutung und Arbeitsweise


Der FB 52 dient im PROFINET IO-Controller-Betrieb sowohl der Funktion "Datensatz lesen"
als auch der Funktion "Datensatz schreiben". Der FB 52 kann zu einem Zeitpunkt nur eine
der beiden Funktionen ausführen. Die Funktion "Datensatz lesen" oder "Datensatz
schreiben" wird über den Parameter WRITE_REC gesteuert.
Beispiel: Das Anlagenkennzeichen und das Ortskennzeichen können dem CP über die
Funktion "Datensatz schreiben" mitgeteilt werden (sofern diese Parameter nicht schon in
STEP 7 im Eigenschaftendialog des CP eingestellt wurden). Hierfür wird der Maintenance-
Datensatz "IM1" mit dem Index AFF1H benutzt.
Details zu den unterstützten Datensätzen sowie deren Aufbau können Sie unter der
folgenden Internet-Adresse abrufen:
http://support.automation.siemens.com/WW/view/de/19289930

Aufrufschnittstelle
Aufrufschnittstelle in FUP-Darstellung:

PNIO_RW_REC

WORD CPLADDR

BOOL WRITE_REC

WORD ID DONE BOOL

WORD INDEX ERROR BOOL

STATUS WORD

INT LEN

ANY RECORD

Beispiel in AWL-Darstellung:

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 179
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

AWL Erläuterung
CALL FB 52, DB 52 ( //PNIO_RW_REC aufrufen
CPLADDR := W#16#0110, //BG-Adresse aus Hardware-Konfiguration
WRITE_REC := M 1.1, //Auftragstyp
ID := W#16#86A, //Logische Adresse des anzusprechenden Moduls
INDEX := W#16#8000, //Datensatznummer
DONE := M 1.3, //Adresse für Rückgabeparameter DONE
ERROR := M 1.1, //Adresse für Rückgabeparameter ERROR
STATUS := MW 12, //Adresse für Rückgabeparameter STATUS
LEN := MW 16, //Länge des Datensatzes in Byte
RECORD := P#DB3.DBX0.0 BYTE 80 ); //Ziel bzw. Quelle des Datensatzes
//(hier max. 80 Byte)

3.2.7.2 Erläuterung der Formalparameter - PNIO_RW_REC

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für den FB 52:

Parameter Deklaration Datentyp Wertebereich Beschreibung


CPLADDR INPUT WORD - Baugruppen-Anfangsadresse
WRITE_RE INPUT BOOL 0: Datensatz lesen Auftragstyp;
C 1: Datensatz schreiben Der Parameter darf über die Laufzeit des
Bausteins nicht verändert werden.
ID INPUT WORD Logische Adresse der PROFINET IO-
Komponente (Baugruppe bzw. Modul).
Bei einer Ausgabebaugruppe muss
Bit 15 gesetzt werden.
(Bsp. für Ausgangs-Adresse 5:
ID:=DW#16#8005).
Bei einer Mischbaugruppe ist die kleinere
der beiden Adressen anzugeben.
INDEX INPUT WORD Siehe Herstellerinformation, Datensatznummer, die der Anwender
welche Datensatznummern von lesen oder schreiben möchte.
der Baugruppe bzw. dem Modul
unterstützt werden.
DONE OUTPUT BOOL 0: - Der Zustandsparameter zeigt an, ob der
1: Datensatz erfolgreich Auftrag fehlerfrei abgewickelt wurde.
übertragen
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehler
STATUS OUTPUT WORD - Statusanzeige

Programmbausteine für SIMATIC NET S7-CPs


180 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Parameter Deklaration Datentyp Wertebereich Beschreibung


LEN IN_OUT INT Die Maximallänge ist 480 Byte.  Datensatz lesen:
Reiner OUTPUT-Parameter; nach
erfolgreichem Lesen wird hier die
Länge des gelesenen Datensatzes
angegeben; sonst 0.
 Datensatz schreiben:
Reiner INPUT-Parameter; Länge des
zu schreibenden Datensatzes wird
hier vom Anwender angegeben. Die
Länge muss zur Definition des
Datensatzes passen.
RECORD IN_OUT ANY (als Die Adresse des Datenbereichs  Datensatz lesen:
VARTYPE verweist alternativ auf: Reiner OUTPUT-Parameter; nach
sind BYTE, erfolgreichem Lesen werden hier die
 Merkerbereich
WORD und
 Datenbausteinbereich Daten des Datensatzes abgelegt.
DWORD
Wenn die Länge des ANY-Pointer zu
zugelassen) Die Länge des ANY-Pointer
muss größer oder gleich der klein ist, werden soviel Daten wie
Definition des Datensatzes sein. möglich übertragen.
 Datensatz schreiben:
Reiner INPUT-Parameter; die zu
schreibenden Daten des Datensatzes
werden hier vom Anwender abgelegt.
Die Länge des ANY-Pointer muss
mindestens so groß sein, wie der
Parameter LEN vorgibt.

3.2.7.3 Anzeigen des Bausteins PNIO_RW_REC

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 181
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Tabelle 3- 4 Anzeigen PNIO_RW_REC

DONE ERROR STATUS Bedeutung


0 0 8180H Datenübergabe läuft
1 0 0000H Datensatz erfolgreich übertragen
0 1 8183H  Fehlende PROFINET IO-Controller-Projektierung,
 Falsche CPLADDR
oder
 CP im Betriebszustand STOP
0 1 8184H Systemfehler bzw. unzulässiger Parametertyp
0 1 8185H Ziel-Puffer (RECORD) ist zu klein
0 1 8F22H Bereichslängenfehler beim Lesen eines Parameters (z. B. DB zu kurz)
0 1 8F23H Bereichslängenfehler beim Schreiben eines Parameters (z. B. DB zu kurz)
0 1 8F24H Bereichsfehler beim Lesen eines Parameters
0 1 8F25H Bereichsfehler beim Schreiben eines Parameters
0 1 8F28H Ausrichtungsfehler beim Lesen eines Parameters
0 1 8F29H Ausrichtungsfehler beim Schreiben eines Parameters
0 1 8F30H Parameter liegt im schreibgeschützten 1. aktiven Datenbaustein.
0 1 8F31H Parameter liegt im schreibgeschützten 2. aktiven Datenbaustein.
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F3AH Zielbereich nicht geladen (DB).
0 1 8F42H Quittungsverzug beim Lesen eines Parameters aus dem Peripheriebereich
0 1 8F43H Quittungsverzug beim Schreiben eines Parameters in den Peripheriebereich
0 1 8F44H Der Zugriff auf einen in der Bausteinbearbeitung zu lesenden Parameter ist gesperrt.
0 1 8F45H Der Zugriff auf einen in der Bausteinbearbeitung zu schreibenden Parameter ist
gesperrt.
0 1 8F7FH Interner Fehler. z. B. unzulässige ANY-Referenz
0 1 8090H Baugruppe mit dieser Adresse ist nicht vorhanden.
0 1 80A0H Negative Quittung beim Lesen von der Baugruppe
0 1 80A1H Negative Quittung beim Schreiben zur Baugruppe
0 1 80A3H Allgemeiner PROFINET IO-Context-Management-Fehler
0 1 80A9H PROFINET IO-Device oder Baugruppe meldet einen unzulässigen Typ.
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H  Die angegebene Datensatzlänge ist falsch;
oder
 Der CP geht in den Betriebszustand STOP.
0 1 80B2H Die logische Adresse oder der projektierte Steckplatz ist nicht belegt.
0 1 80B4H PROFINET IO-Device oder Baugruppe meldet einen Zugriff auf unzulässigen Bereich.
0 1 80B6H PROFINET IO-Device oder Baugruppe verweigert den Zugriff.
0 1 80B8H Die Baugruppe meldet einen unzulässigen Parameter.
0 1 80B9H Der Blocktyp und / oder die Version sind unzulässig.
0 1 80C0H Der Datensatz kann nicht gelesen werde.n
0 1 80C1H Der schreibende Zugriff auf den Datensatz ist aktuell nicht zulässig. Der Datensatz ist
entweder gerade in Bearbeitung oder wurde über die Projektierung fest vorgegeben.

Programmbausteine für SIMATIC NET S7-CPs


182 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

DONE ERROR STATUS Bedeutung


0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Betriebsmittel (Speicher) belegt
0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll.)

3.2.8 PNIO_ALARM

3.2.8.1 Bedeutung und Aufruf - PNIO_ALARM

Bedeutung und Arbeitsweise


Der FB 54 dient der Alarmauswertung durch einen als PROFINET IO-Controller betriebenen
CP 343-1 und sollte in dessen Anwenderprogramm aufgerufen werden, wenn im FC12 der
Parameter ADD_INFO ungleich 0. Nach vollständiger und fehlerfreier Übertragung aller
OUTPUT-Parameter des FB 54 werden die empfangenen Alarme automatisch quittiert.
Die Alarme werden in der zeitlichen Reihenfolge ihrer Meldung ins Anwenderprogramm
weitergegeben. Ältere, dem Anwenderprogramm noch nicht signalisierte Alarme, die durch
neuere Alarme hinfällig werden, werden durch neue Alarme nicht gelöscht.

Hinweis
Solange der Baustein noch nicht aufgerufen wurde, werden die Alarme CP-intern
automatisch quittiert.
Wenn der FB 54 im Anwenderprogramm (wenigstens) einmal aufgerufen wurde, dann muss
er auch weiterhin aufgerufen werden, um anstehende Alarme zu quittieren. Dies ist der Fall,
wenn der FC 12 im Parameter ADD_INFO einen Wert ungleich "0" meldet.
Wenn der FB 54 nach ein- oder mehrmaligem Aufruf im Anwenderprogramm nicht mehr
aufgerufen wird, dann werden Alarme nicht quittiert und es ist nicht sichergestellt, dass das
IO-Abbild korrekt aktualisiert wird. Dies kann z.B. der Fall nach einem Stationswiederkehr-
Alarm sein. Die Notwendigkeit des Aufrufens des FB 54 kann nur durch einen Neustart des
CP (Spannung AUS) zurückgesetzt werden.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 183
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Aufrufschnittstelle
Aufrufschnittstelle in FUP-Darstellung

PNIO_ALARM

WORD CPLADDR DONE BOOL

ERROR BOOL

NEW BOOL

DWORD MODE STATUS WORD

ANY TINFO ID WORD

ANY AINFO LEN INT

Beispiel in AWL-Darstellung:

AWL Erläuterung
CALL FB 54, DB 54 ( //PNIO_ALARM aufrufen
CPLADDR:= W#16#0110, //BG-Adresse aus Hardware-Konfiguration
DONE := M 1.1, //Adresse für Rückgabeparameter DONE
ERROR := M 1.2, //Adresse für Rückgabeparameter ERROR
NEW := M 1.3, //TRUE: Ein neuer Alarm wurde empfangen
STATUS := MW 12, //Fehlercode
ID := MW14, //logische Anfangsadresse der meldenden Komponente
LEN := MW 16, //Länge der empfangenen Alarminformation(AINFO)
MODE := MD 18, //RESERVIERT (Wert immer = 0)
TINFO := P#DB4.DBX0.0 BYTE 32, //task information
AINFO := P#DB4.DBX32.0 BYTE 532 ); //alarm information

3.2.8.2 Erläuterung der Formalparameter - PNIO_ALARM

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für den FB 54:

Parameter Deklaration Datentyp Wertebereich Beschreibung


CPLADDR INPUT WORD - Anfangsadresse der Fehler
auslösenden Baugruppe
DONE OUTPUT BOOL 0: - Der Zustandsparameter zeigt an, ob
1: Alarminformation erfolgreich der Auftrag fehlerfrei abgewickelt
übertragen wurde.
Bei DONE = 1 muss zusätzlich der
Parameter NEW geprüft werden.
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehler

Programmbausteine für SIMATIC NET S7-CPs


184 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

Parameter Deklaration Datentyp Wertebereich Beschreibung


NEW OUTPUT BOOL 0: Datenübertragung läuft oder Bei DONE = 1 und NEW = 1 wird hier
kein neuer Alarm ein neu empfangener Alarm
1: Neuen Alarm empfangen und signalisiert.
quittiert
STATUS OUTPUT WORD - Statusanzeige
ID OUTPUT WORD Logische Anfangsadresse der Alarm
auslösenden PNIO-Komponente
(Baugruppe bzw. Modul).
Bei einer Ausgabebaugruppe wird Bit
15 gesetzt (Beispiel für Ausgangs-
Adresse 5: ID:=DW#16#8005).
Bei einer Mischbaugruppe wird die
kleinere der beiden Adressen
angegeben.
LEN OUTPUT INT Länge der empfangenen
Alarminformation (AINFO)
MODE IN_OUT DWORD 0 Reserviert
TINFO IN_OUT ANY (als Die Adresse des Datenbereichs (task information)
VARTYPE ist verweist alternativ auf: Zielbereich für die Alarm-
BYTE, WORD Verwaltungsinformation.
 Merkerbereich
und DWORD
 Datenbausteinbereich Die Fehler-OB-Startinformation (OB-
zugelassen)
Header = Byte 0...19 von TINFO) wird
Die Länge des ANY-Pointer
von der CP-Firmware - soweit möglich
muss >= 32 Byte sein.
- nachgebildet.
Siehe auch 1)
AINFO IN_OUT ANY (als Die Adresse des Datenbereichs (alarm information)
VARTYPE verweist alternativ auf: Zielbereich für Kopfinformation und
sind BYTE, Alarmzusatzinformation. Wenn der
 Merkerbereich
WORD und ANY-Pointer AINFO zu klein ist, dann
DWORD  Datenbausteinbereich
wird die Information abgeschnitten.
zugelassen) Die Länge des ANY-Pointer
Siehe auch 1)
muss größer oder gleich der
max. zu erwartenden
Alarmzusatzinformation sein,
maximal 1432 Byte (siehe
Parameter LEN)

1) Referenzhandbuch "STEP 7 - System- und Standardfunktionen für S7-300 und S7-400",

Alarm empfangen mit dem SFB 54 "RALRM" /4/ (Seite 271)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 185
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

3.2.8.3 Anzeigen des Bausteins PNIO_ALARM

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, NEW, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

DONE NEW ERROR STATUS Bedeutung


0 0 0 8180H Datenübergabe läuft
1 1 0 0000H Alarmdaten erfolgreich übertragen und Alarm quittiert
1 0 0 0000H Keine Alarmdaten vorhanden
0 0 1 8183H  Fehlende PROFINET IO-Controller-Projektierung,
 Falsche CPLADDR
oder
 CP im Betriebszustand STOP
0 0 1 8184H Systemfehler bzw. unzulässiger Parametertyp
0 0 1 8185H Ziel-Puffer (TINFO oder AINFO) ist zu klein
0 0 1 8F22H Bereichslängenfehler beim Lesen eines Parameters (z. B. DB zu kurz)
0 0 1 8F23H Bereichslängenfehler beim Schreiben eines Parameters (z. B. DB zu kurz)
0 0 1 8F24H Bereichsfehler beim Lesen eines Parameters
0 0 1 8F25H Bereichsfehler beim Schreiben eines Parameters
0 0 1 8F28H Ausrichtungsfehler beim Lesen eines Parameters
0 0 1 8F29H Ausrichtungsfehler beim Schreiben eines Parameters
0 0 1 8F30H Parameter liegt im schreibgeschützten 1. aktiven Datenbaustein
0 0 1 8F31H Parameter liegt im schreibgeschützten 2. aktiven Datenbaustein
0 0 1 8F32H Parameter enthält zu große DB-Nummer
0 0 1 8F3AH Zielbereich nicht geladen (DB)
0 0 1 8F42H Quittungsverzug beim Lesen eines Parameters aus dem Peripheriebereich
0 0 1 8F43H Quittungsverzug beim Schreiben eines Parameters in den Peripheriebereich
0 0 1 8F44H Der Zugriff auf einen in der Bausteinbearbeitung zu lesenden Parameter ist
gesperrt
0 0 1 8F45H Der Zugriff auf einen in der Bausteinbearbeitung zu schreibenden Parameter ist
gesperrt
0 0 1 8F7FH Interner Fehler. z. B. unzulässige ANY-Referenz
0 0 1 8090H Baugruppe mit dieser Adresse ist nicht vorhanden

Programmbausteine für SIMATIC NET S7-CPs


186 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFINET
3.2 Programmbausteine für PROFINET IO (S7-300)

DONE NEW ERROR STATUS Bedeutung


0 0 1 80A0H Negative Quittung beim Lesen von der Baugruppe
0 0 1 80A1H Negative Quittung beim Schreiben zur Baugruppe
0 0 1 80B0H Baugruppe kennt den Datensatz nicht
0 0 1 80B1H  Die angegebene Datensatzlänge ist falsch
oder
 Der CP geht in den Betriebszustand STOP
0 0 1 80C0H Der Datensatz kann nicht gelesen werden
0 0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung
0 0 1 80C2H Es liegt ein Auftragsstau vor
0 0 1 80C3H Betriebsmittel (Speicher) belegt
0 0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll.)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 187
Programmbausteine für PROFINET
3.3 Mengengerüst / Ressourcenbedarf der Programmbausteine (PROFINET)

3.3 Mengengerüst / Ressourcenbedarf der Programmbausteine


(PROFINET)

Ressourcen-Bedarf

ACHTUNG

Beachten Sie die Versionsangabe der Bausteine. Die aktuell mitgelieferten


Bausteinversionen können von den hier angegebenen Bausteinversionen abweichen. Bei
Bausteinen mit anderen Ausgabeständen kann der Ressourcenbedarf abweichen.
Angaben zu den aktuellen Bausteinversionen finden Sie unter folgender Beitrags-ID:
9836605 (http://support.automation.siemens.com/WW/view/de/9836605)

Tabelle 3- 5 Angaben für FCs / FBs bei S7-400

NAME Version FC/FB Nr. Ladespeicher Arbeitsspeicher MC7 Lokaldaten


Bytes Bytes Bytes Bytes
PN_InOut 1.3 FB88 2678 2234 2198 48
PN_InOut_Fast 1.0 FB90 2906 2266 2230 48

Tabelle 3- 6 Angaben für FCs / FBs bei S7-300

NAME Version FC/FB Nr. Ladespeicher Arbeitsspeicher MC7 Lokaldaten


Bytes Bytes Bytes Bytes
PN_InOut 1.5 FB88 2470 2066 2030 54
PNIO_SEND 1.0 FC11 1272 1058 1022 42
PNIO_SEND 2.0 FC11 1342 1116 1080 42
PNIO_SEND 3.0 FC11 1420 1182 1146 46
PNIO_RECV 1.0 FC12 1122 928 892 42
PNIO_RECV 2.0 FC12 1192 986 950 42
PNIO_RECV 3.0 FC12 1270 1052 1016 46
PNIO_RW_REC 1.1 FB52 1636 1378 1342 62
PNIO_ALARM 1.1 FB54 1168 960 924 62

Programmbausteine für SIMATIC NET S7-CPs


188 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS 4
4.1 Programmbausteine für Offene Kommunikationsdienste
(SEND/RECEIVE-Schnittstelle)

4.1.1 Anwendung in der Übersicht

Übersicht
Für die Übertragung von Daten über projektierte FDL-Verbindungen stehen folgende
Programmbausteine für die SEND/RECEIVE-Schnittstelle zur Verfügung:

Programmbaustein verwendbar bei 1) Bedeutung


S7-300 S7-400
AG_SEND (FC5) x x für Daten Senden
AG_RECV (FC6) x x für Daten empfangen
AG_LSEND (FC50) x für Daten Senden
AG_LRECV (FC60) x für Daten empfangen

1) Anmerkungen zu den FCs bei S7-300 und S7-400


Um die Kompatibilität von PROFIBUS und Ind. Ethernet an der Schnittstelle im
Anwenderprogramm zu gewährleisten, können die FCs AG_LSEND und AG_LRECV bei
PROFIBUS alternativ zu AG_SEND bzw. AG_RECV verwendet werden. Es gibt keine
Unterschiede an der Schnittstelle und im Verhalten. Bei PROFIBUS können Sie aber auch mit
diesen FCs, die bei Ind. Ethernet für die Übertragung langer Datensätze bestimmt sind, nur
Datenmengen bis max. 240 Byte übertragen.
Voraussetzung ist, dass der Bausteintyp und die Bausteinversion für den verwendeten CP-Typ
zugelassen sind.
Bei den S7-CPs für S7-300 werden ausschließlich die FCs AG_SEND und AG_RECV verwendet;
bei Industrial Ethernet auch für die Übertragung langer Datensätze.
Die Gerätehandbücher geben Auskunft über die Kompatibilität der S7-CPs und der zugehörenden
Bausteine (FCs / FBs). Eine Übersicht über die Versionen der FCs/FBs finden Sie in der
Dokumentations- und Bausteinhistorie.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 189
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Anwendung
Die folgende Darstellung verdeutlicht die Anwendung der FC-Bausteine AG_SEND /
AG_LSEND und AG_RECV / AG_LRECV für den bidirektionalen Datentransfer über eine
projektierte FDL-Verbindung.
Bei bestimmten Verbindungstypen ist im Anwenderdatenbereich ein Auftragsheader
vorzusehen.

CPU PROFIBUS-CP PROFIBUS-CP CPU

STEP7- STEP7-
Anwender- Anwender-
programm FDL−Verbindung programm
über
DP- PROFIBUS DP-
Datenbereiche Datenbereiche
AG_SEND senden empfangen AG_RECV

AG_RECV empfangen senden AG_SEND

Bild 4-1 AG_SEND und AG_RECV bei beiden Kommunikationspartnern verwenden

Anwendung ohne Auftragsheader


Bei spezifizierter FDL-Verbindung sind Adress- und Auftragsparameter durch die
Verbindungsprojektierung festgelegt. Das Anwenderprogramm stellt daher nur die Nutzdaten
im FDL-Datenbereich beim Senden mit AG_SEND / AG_LSEND bereit, bzw. empfängt diese
mit AG_RECV / AG_LRECV.
Es können bis zu 240 Byte Nutzdaten übertragen werden. Diese Angabe gilt bei PROFIBUS
für den FC AG_SEND und den FC AG_LSEND.

Anwendung mit Auftragsheader


Folgende Verbindungstypen erfordern einen Auftragsheader im FDL-(Anwender-
)Datenbereich:
● Unspezifizierte FDL-Verbindung mit freiem Layer 2 Zugang
● FDL-Verbindung mit Broadcast
● FDL-Verbindung mit Multicast
Entnehmen Sie der folgenden Darstellung die Struktur des Auftragspuffers und die
Bedeutung und Platzierung der Parameter im Auftragsheader.

Programmbausteine für SIMATIC NET S7-CPs


190 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Anwender-Datenbereich
PB−Adresse LSAP Byte 0, 1
Auftragspuffer Service unbenutzt Byte 2, 3
Datenbyte 0 Datenbyte 1 Byte 4, 5
Auftragsheader

Nutzdaten

Datenbyte 234 Datenbyte 235 Byte 238, 239

Bild 4-2 Senden und Empfangen über eine FDL-Verbindung mit Broadcast-Adressierung per
Programm

Der Anwender-Datenbereich kann bis zu 240 Byte umfassen. Es können bis zu 236 Byte
Nutzdaten übertragen werden. 4 Byte sind für den Auftragsheader reserviert.
Beachten Sie, dass die beim Bausteinaufruf angegebene Datenlänge (Parameter LEN) den
Header und die Nutzdaten umfassen muss!

4.1.2 AG_SEND / AG_LSEND

4.1.2.1 Bedeutung und Aufruf - AG_SEND / AG_LSEND

Bedeutung des Bausteins


Der Programmbaustein AG_SEND / AG_LSEND übergibt Daten an den PROFIBUS-CP zur
Übertragung über eine projektierte FDL-Verbindung.
Der angegebene Datenbereich kann ein PA-Bereich, ein Merkerbereich oder ein
Datenbausteinbereich sein.
Eine fehlerfreie Ausführung wird signalisiert, wenn der gesamte Anwenderdatenbereich über
PROFIBUS gesendet werden konnte.
Anmerkung:
Alle folgenden Angaben gelten, soweit nicht anders angegeben, gleichermaßen für die FCs
AG_SEND und AG_LSEND.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 191
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Aufruf
Aufrufschnittstelle in FUP-Darstellung

$*B6(1'$*B/6(1'

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

$1< 6(1'

,17 /(1

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 5 ( //Funktionsaufruf
ACT := M 20.0, //Auftragsanstoß über Merkerbit
ID := MW 22, //Verbindungs-ID gemäß Projektierung
LADDR := W#16#0100, //=LADDR 256 dez.in Hardware-Konfiguration
SEND := P#db99.dbx10.0 byte 240, //Puffer mit Sendedaten
LEN := MW 24, //Längenangabe für Sendedaten
DONE := M 20.1, //Ausführungsanzeige
ERROR := M 20.2, //Fehleranzeige
STATUS := MW 26 ); //Statusanzeige

Aufrufe mit Auftragsheader


Entnehmen Sie der folgenden Tabelle, für welche Verbindungstypen und Auftragsarten
Parameter im Auftragsheader zu versorgen sind.
Der Auftragsheader liegt im FDL-(Anwender-)Datenbereich. Er belegt dort die ersten 4 Byte
und muss bei der Längenangabe im Parameter LEN hinzugerechnet werden. Die maximale
Nutzdatenlänge reduziert sich daher bei Aufträgen mit Auftragsheader auf 236 Byte.

Tabelle 4- 1 Versorgung des Auftrags-Header im Anwender-Datenbereich

Parameter FDL-Verbindungstyp
unspezifiziert: freie Layer 2 2) Broadcast Multicast
PB-Adresse Adresse der Zielstation bei AG_SEND ohne bei AG_SEND ohne
Wertebereich: Bedeutung; Bereich Bedeutung; Bereich
0..126 je nach Teilnehmer / aber zu reservieren. aber zu reservieren.
127 für Broadcast/Multicast

Programmbausteine für SIMATIC NET S7-CPs


192 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

FDL-Verbindungstyp
LSAP LSAP der Zielstation ohne Bedeutung; ohne Bedeutung;
Wertebereich: Bereich aber zu Bereich aber zu
0..62 je nach Teilnehmer / reservieren. reservieren.
63 für Broadcast
Service 1) SDA ( Send Data with ohne Bedeutung; ohne Bedeutung;
Acknowledge): Bereich aber zu Bereich aber zu
Wert: 00H reservieren. reservieren.
SDN ( Send Data with No
Acknowledge):
Wert: 01H
1) für Broadcast und Multicast ist nur der Service SDN möglich.
2)Die Angaben zu Broadcast und Multicast in dieser Spalte sind nur für den Fall relevant,
dass eine unspezifizierte FDL-Verbindung für Broadcast oder Multicast verwendet wird. Bei
einer projektierten FDL-Verbindung (empfohlene Anwendung) mit Broadcast oder Multicast
als Verbindungspartner werden die Adressparameter entsprechend der Projektierung
automatisch zugewiesen.

4.1.2.2 Arbeitsweise - AG_SEND / AG_LSEND

Arbeitsweise
Die folgende Ablaufdarstellung zeigt den normalen zeitlichen Ablauf einer mit AG_SEND im
Anwenderprogramm angestoßenen Datenübertragung.
Der Sendeauftrag wird ausgeführt, sobald der Parameter ACT = 1 übergeben wird.
Anschließend müssen Sie in mindestens einem weiteren Aufruf den Parameter ACT = 0
übergeben.
Die Statusanzeige in den Ausgabeparametern DONE, ERROR und STATUS wird bei jedem
Bausteinaufruf aktualisiert und kann ausgewertet werden. Zur weiteren Aktualisierung der
Statusanzeige ohne erneuten Sendeauftrag ist daher jeweils ein weiterer Bausteinaufruf mit
dem Parameter ACT = 0 abzusetzen.
Beachten Sie auch das Programmbeispiel am Ende dieses Kapitels.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 193
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

$QZHQGHUSURJUDPP 352),%86෥&3 .RPPXQLNDWLRQVSDUWQHU


&38෥=\NOXV

$*B6(1'PLW'DWHQಬ;ಬ
YHUVRUJHQ
$&7 

$*B6(1'


$*B6(1'YHUVRUJHQ
$&7 
žEHUWUDJXQJ
YRQಬ;ಬ
¾EHU352),%86
$*B6(1' O¦XIW


$*B6(1'


=HLW =HLW =HLW

/HJHQGH

3DUDPHWHU¾EHUJDEH'21((552567$786

4.1.2.3 Erläuterung der Formalparameter - AG_SEND / AG_LSEND

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion
AG_SEND / AG_LSEND:

Parameter Deklaration Datentyp Wertebereich Beschreibung


ACT INPUT BOOL 0,1 Beim FC-Aufruf mit ACT = 1 werden LEN Bytes aus
dem mit dem Parameter SEND angegebenen
Datenbereich gesendet.
Beim FC-Aufruf mit ACT = 0 werden die
Statusanzeigen DONE, ERROR und STATUS
aktualisiert.
ID INPUT INT 1,2...64 Im Parameter ID wird die Verbindungsnummer der
(S7-400) FDL-Verbindung angegeben.
1,2...16
(S7-300)

Programmbausteine für SIMATIC NET S7-CPs


194 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

Parameter Deklaration Datentyp Wertebereich Beschreibung


LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP wird die Baugruppen-
Anfangsadresse in der Konfigurationstabelle
ausgegeben. Geben Sie diese Adresse hier an.
SEND INPUT ANY Angabe von Adresse und Länge
(als Die Adresse des Datenbereiches verweist alternativ
VARTYPE auf:
sind nur
 PA-Bereich
zugelassen:
 Merkerbereich
BYTE,
WORD und  Datenbausteinbereich
DWORD Bei Aufruf mit Auftragsheader enthält der FDL-
Datenbereich den Auftragsheader und die Nutzdaten.
LEN INPUT INT 1,2,...240 (bzw. bis Anzahl der Byte, die mit dem Auftrag aus dem FDL-
"Längenangabe Datenbereich gesendet werden sollen. Die Angabe
beim Parameter kann im Bereich von 1 bis "Längenangabe beim
SEND") Parameter SEND" liegen.
Bei Aufruf mit Auftragsheader setzt sich die
Längenangabe aus dem Auftragsheader (4 Byte) +
Nutzdaten (1..236 Byte) zusammen. Es gilt daher LEN
>= 4 !
DONE OUTPUT BOOL 0: - Der Zustandsparameter zeigt an, ob der Auftrag
1: neue Daten fehlerfrei abgewickelt wurde.
Zur Bedeutung im Zusammenhang mit den Parametern
ERROR und STATUS siehe unter Anzeigen AG_SEND
und AG_LSEND (Seite 196)
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den Parametern
DONE und STATUS siehe unter Anzeigen AG_SEND
und AG_LSEND (Seite 196)
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den Parametern
DONE und ERROR siehe unter Anzeigen AG_SEND
und AG_LSEND (Seite 196)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 195
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

4.1.2.4 Anzeigen AG_SEND und AG_LSEND

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

Tabelle 4- 2 Anzeigen AG_SEND

DONE ERROR STATUS Bedeutung


1 0 0000H Auftrag fertig ohne Fehler.
0 0 0000H Kein Auftrag in Bearbeitung.
0 0 8181H Auftrag läuft.
0 1 7000H Die Anzeige ist nur bei S7-400 möglich: Der FC wurde mit ACT=0 aufgerufen; der
Auftrag wird jedoch nicht bearbeitet.
0 1 8183H Die Projektierung fehlt oder der FDL-Dienst im PROFIBUS-CP ist noch nicht gestartet.
0 1 8184H Mögliche Ursachen:
 Unzulässiger Datentyp für den Parameter SEND angegeben.
 FDL-Verbindung ohne Auftragspuffer: Systemfehler.
 FDL-Verbindung mit Auftragspuffer: Parameter LEN<4 oder unzulässiger
Parameter im Auftragsheader (bei freiem Layer 2 Zugang).
0 1 8185H Parameter LEN größer als Quell-Bereich SEND.
0 1 8186H Parameter ID ungültig. ID != 1, 2...16.
0 1 8301H SAP bei Ziel-Station nicht aktiviert.
0 1 8302H keine Empfangsressourcen bei Ziel-Station, Empfänger-Station kann empfangene
Daten nicht schnell genug verarbeiten bzw. hat kein Empfangsressourcen
bereitgestellt.
0 1 8303H Der PROFIBUS-Service ( SDA-Send Data with Acknowledge) wird auf diesem SAP von
der Ziel-Station nicht unterstützt.
Die Anzeige kann auch temporär auftreten, wenn Verbindungen oder Netzübergänge
"im RUN" geladen werden.
0 1 8304H Die FDL-Verbindung ist nicht aufgebaut.
0 1 8311H Die Zielstation ist unter der angegebenen PROFIBUS-Adresse nicht erreichbar oder
der benutzte Service ist für die angegebene PROFIBUS-Adresse nicht möglich.
0 1 8312H PROFIBUS-Fehler im CP : z. B. Buskurzschluss, eigene Station nicht am Ring,.

Programmbausteine für SIMATIC NET S7-CPs


196 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

DONE ERROR STATUS Bedeutung


0 1 8315H Mögliche Ursachen:
 Interner Parameterfehler bei einer FDL-Verbindung mit Auftragsheader: Parameter
LEN<4 oder unzulässiger Parameter im Auftragsheader (bei freiem Layer 2
Zugang).
 Busstörung
Mögliche zusätzliche Bedeutung:
 Die Fehleranzeige kann auch bei Busstörungen auftreten (beispielsweise bei
physikalischen Störungen aufgrund fehlerhafter Leitungsabschlüsse oder
unterschiedlicher Einstellungen der Übertragungsgeschwindigkeit bei den
Teilnehmern).
0 1 8F22H Quell-Bereich ungültig. z. B.:
Bereich im DB nicht vorhanden
Parameter LEN < 0
0 1 8F24H Bereichsfehler beim Lesen eines Parameters.
0 1 8F28H Ausrichtungsfehler beim Lesen eines Parameters.
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F33H DB-Nummer Fehler.
0 1 8F3AH Bereich nicht geladen (DB).
0 1 8F42H Quittungsverzug beim Lesen eines Parameters aus dem Peripheriebereich.
0 1 8F44H Adresse des zu lesenden Parameters in der Zugriffsspur gesperrt.
0 1 8F7FH Interner Fehler. z. B. unzulässige ANY-Referenz
z. B. Parameter LEN = 0 .
0 1 8090H  Eine Baugruppe mit dieser Baugruppen-Anfangsadresse ist nicht vorhanden.
 Der verwendete FC passt nicht zur verwendeten Systemfamilie (es sind
unterschiedliche FCs für S7-300 und S7-400 zu verwenden).
0 1 8091H Baugruppen-Anfangsadresse nicht auf Doppel-Wort-Raster.
0 1 8092H In ANY-Referenz ist eine Typangabe ungleich BYTE angegeben.
(nur bei S7-400)
0 1 80A4H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut. (bei neueren CPU-
Ausgabeständen).
Dies kann beispielsweise begründet sein durch:
 eine fehlende Projektierung von Verbindungen;
 eine Überschreitung der maximalen Anzahl parallel betreibbarer CPs (Angaben
hierzu siehe CP-Gerätehandbuch).
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H Der Zielbereich ist ungültig.
Die Anzahl der zu sendenden Daten überschreitet die für diesen Dienst zulässige
Obergrenze (z. B. Zielbereich > 240 Bytes).
0 1 80B2H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut.(bei älteren CPU-
Ausgabeständen; sonst 80A4H; weitere Angaben siehe dort)
0 1 80C0H Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung..
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Betriebsmittel (Speicher) belegt.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 197
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

DONE ERROR STATUS Bedeutung


0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll.
0 1 80D2H Baugruppen-Anfangsadresse ist falsch.

4.1.3 AG_RECV / AG_LRECV

4.1.3.1 Bedeutung und Aufruf - AG_RECV / AG_LRECV

Bedeutung des Bausteins


Der Programmbaustein AG_RECV übernimmt vom PROFIBUS-CP die über eine projektierte
FDL-Verbindung übertragenen Daten.
Der für die Datenübernahme angegebene Datenbereich kann ein PA-Bereich, ein
Merkerbereich oder ein Datenbausteinbereich sein.
Eine fehlerfreie Ausführung wird signalisiert, wenn die Daten vom PROFIBUS-CP
übernommen werden konnten.
Anmerkung:
Alle folgenden Angaben gelten, soweit nicht anders angegeben, gleichermaßen für die FCs
AG_RECV und AG_LRECV.

Aufrufschnittstelle
Aufrufschnittstelle in FUP-Darstellung

$*B5(&9$*B/5(&9

1'5 %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

$1< 5(&9 /(1 ,17

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 6 ( //Funktionsaufruf
ID := MW 30, //Verbindungs-ID gemäß Projektierung
LADDR := W#16#0100, //=LADDR 256 dez.in Hardware-Konfiguration
RECV := P#M 10.0 BYTE 100, //Puffer für Empfangsdaten
NDR := DB 100.DBX 0.6, //Empfangsanzeige
ERROR := DB 100.DBX 0.7, //Ausführungsanzeige

Programmbausteine für SIMATIC NET S7-CPs


198 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

AWL Erläuterung
STATUS := DB 100.DBW 2, //Fehleranzeige
LEN := DB 100.DBW 4 ); //Statusanzeige

Aufrufe mit Auftrags-Header

Tabelle 4- 3 Rückgabeparameter im Auftragsheader im FDL-(Anwender-)Datenbereich

Parameter FDL-Verbindungstyp
unspezifiziert: freie Layer 2) Broadcast Multicast
PB-Adresse Adresse des Senders
Wertebereich: 0..126 je nach Teilnehmer
LSAP LSAP des Senders
Wertebereich: 0..63 je nach Teilnehmer
Service SDN-Anzeige SDN-Anzeige SDN-Anzeige
(Send Data with No Acknowledge (Send Data with No (Send Data with No
- Indication): Acknowledge - Acknowledge -
Wert: 01H Indication): Indication):
oder Wert: 7FH Wert: 7FH
SDA-Anzeige ( Send Data with
Acknowledge - Indication):
Wert: 00H

4.1.3.2 Arbeitsweise - AG_RECV / AG_LRECV

Arbeitsweise
Die folgende Ablaufdarstellung zeigt den normalen zeitlichen Ablauf einer mit AG_RECV im
Anwenderprogramm angestoßenen Datenübernahme.
Jeder AG_RECV Auftrag des Anwenderprogrammes wird mit einer Anzeige in den
Ausgabeparametern NDR, ERROR und STATUS vom Ethernet-CP quittiert.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 199
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

$QZHQGHUSURJUDPP 352),%86෥&3 .RPPXQLNDWLRQVSDUWQHU


&38෥=\NOXV

žEHUWUDJXQJ
YRQಬ$ಬ
¾EHU352),%86
$*B5(&9
O¦XIW
  
$*B5(&9
 

(PSIDQJHQH'DWHQಬ$ಬ
HQWJHJHQQHKPHQDXVZHUWHQ
žEHUWUDJXQJ
YRQಬ%ಬ
¾EHU352),%86
$*B5(&9 O¦XIW

 

$*B5(&9
 

(PSIDQJHQH'DWHQಬ%ಬ
HQWJHJHQQHKPHQDXVZHUWHQ

$*B5(&9 žEHUWUDJXQJ
YRQಬ&ಬ
¾EHU352),%86
O¦XIW

=HLW =HLW =HLW

/HJHQGH

3DUDPHWHU¾EHUJDEH'21((552567$786

Programmbausteine für SIMATIC NET S7-CPs


200 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

4.1.3.3 Erläuterung der Formalparameter - AG_RECV / AG_LRECV

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion
AG_RECV / AG_LRECV:

Parameter Deklaration Datentyp Wertebereich Beschreibung


ID INPUT INT 1,2...16 (S7-300) Im Parameter ID wird die Verbindungsnummer der
1,2...32 (S7-400) FDL-Verbindung angegeben.
LADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP wird die Baugruppen-
Anfangsadresse in der Konfigurationstabelle
ausgegeben. Geben Sie diese Adresse hier an.
RECV INPUT ANY Angabe von Adresse und Länge
(als VARTYPE Die Adresse des FDL-Datenbereiches verweist
sind nur alternativ auf:
zugelassen:
 PA-Bereich
BYTE, WORD
 Merkerbereich
und DWORD
 Datenbausteinbereich
Bei Aufruf mit Auftragsheader enthält der FDL-
Datenbereich den Auftragsheader und die Nutzdaten.
LEN OUTPUT INT 1,2,...240 Gibt die Anzahl der Bytes an, die vom PROFIBUS-CP
in den FDL-Datenbereich übernommen wurden.
Bei Aufruf mit Auftragsheader setzt sich die
Längenangabe aus dem Auftragsheader (4 Byte) +
Nutzdaten (1..236 Byte) zusammen. Es gilt daher LEN
>= 4 !
NDR OUTPUT BOOL 0: - Der Parameter zeigt an, ob neue Daten übernommen
1: neue Daten wurden.
Zur Bedeutung im Zusammenhang mit den
Parametern ERROR und STATUS siehe unter
Anzeigen AG_RECV und AG_LRECV (Seite 202).
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den
Parametern NDR und STATUS siehe unter Anzeigen
AG_RECV und AG_LRECV (Seite 202).
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den
Parametern NDR und ERROR siehe unter Anzeigen
AG_RECV und AG_LRECV (Seite 202).

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 201
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

4.1.3.4 Anzeigen AG_RECV und AG_LRECV

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus NDR, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

Tabelle 4- 4 Anzeigen AG_RECV / AG_LRECV

NDR ERROR STATUS Bedeutung


1 0 0000H Neue Daten übernommen.
0 0 8180H  Es liegen noch keine Daten vor.
Die Projektierung fehlt oder der FDL-Dienst im PROFIBUS-CP ist noch nicht
gestartet (tritt anstelle der Anzeige 0,1,8183H auf !).
0 0 8181H Auftrag läuft.
0 1 8183H Die Projektierung fehlt oder der FDL-Dienst im PROFIBUS-CP ist noch nicht gestartet.
0 1 8184H  Unzulässiger Datentyp für den Parameter RECV angegeben.
 Systemfehler.
0 1 8185H Ziel-Puffer (RECV)ist zu klein.
0 1 8186H Parameter ID ungültig. ID != 1, 2...16.
0 1 8303H Der PROFIBUS-Service ( SDA-SendDatawithAcknowledge) wird auf diesem SAP nicht
unterstützt.
Die Anzeige kann auch temporär auftreten, wenn Verbindungen oder Netzübergänge
"im RUN" geladen werden.
0 1 8304H Die FDL-Verbindung ist nicht aufgebaut.
0 1 8F23H Quell-Bereich ungültig. z. B.:
Bereich im DB nicht vorhanden.
0 1 8F25H Bereichsfehler beim Schreiben eines Parameters.
0 1 8F29H Ausrichtungsfehler beim Schreiben eines Parameters
0 1 8F30H Parameter liegt im schreibgeschützten 1. akt. Datenbaustein.
0 1 8F31H Parameter liegt im schreibgeschützten 2. akt. Datenbaustein.
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F33H DB-Nummer Fehler.
0 1 8F3AH Zielbereich nicht geladen (DB).

Programmbausteine für SIMATIC NET S7-CPs


202 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.1 Programmbausteine für Offene Kommunikationsdienste (SEND/RECEIVE-Schnittstelle)

NDR ERROR STATUS Bedeutung


0 1 8F43H Quittungsverzug beim Schreiben eines Parameters in den
Peripheriebereich.
0 1 8F45H Adresse des zu schreibenden Parameters in der Zugriffsspur gesperrt.
0 1 8F7FH Interner Fehler. z. B. Unzulässige ANY-Referenz.
0 1 8090H  Eine Baugruppe mit dieser Baugruppen-Anfangsadresse ist nicht vorhanden.
 Der verwendete FC passt nicht zur verwendeten Systemfamilie (es sind
unterschiedliche FCs für S7-300 und S7-400 zu verwenden).
0 1 8091H Baugruppen-Anfangsadresse nicht auf Doppel-Wort-Raster.
0 1 8092H In ANY-Referenz ist eine Typangabe ungleich BYTE angegeben.
(nur bei S7-400)
0 1 80A0H Negative Quittung beim Lesen von Baugruppe.
0 1 80A4H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut. (bei neueren CPU-
Ausgabeständen).
Dies kann beispielsweise begründet sein durch:
 eine fehlende Projektierung von Verbindungen;
 eine Überschreitung der maximalen Anzahl parallel betreibbarer CPs (Angaben
hierzu siehe CP-Gerätehandbuch).
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H Mögliche Ursachen:
 Der Zielbereich ist ungültig.
 Der Zielbereich ist zu klein.

Der Zielbereich für die Empfangsdaten wurde nicht ausreichend bemessen.

Abhilfe: Führen sie einen weiteren Empfangsaufruf mit maximaler


Empfangspuffergröße durch. Dies gilt unabhängig vom Verbindungstyp (Uni-/Multi-
/Broadcast) und von der Gerätefamilie (S7-300 / S7-400).
0 1 80B2H Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut.
0 1 80C0H Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Betriebsmittel (Speicher) belegt.
0 1 80C4H Kommunikationsfehler(tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll).
0 1 80D2H Baugruppen-Anfangsadresse ist falsch.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 203
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

4.2.1 Anwendung in der Übersicht

Übersicht
Für die DP-Betriebsarten DP-Master und DP-Slave stehen folgende Programmbausteine für
S7-300 zur Verfügung:

Programmbaustein verwendbar bei Bedeutung


DP-Master DP-Slave
DP_SEND (FC1) X X für Daten Senden
DP_RECV (FC2) X X für Daten empfangen
DP_DIAG (FC3) X - für Diagnosefunktionen vom DP-
Master aus
DP_CTRL (FC4) X - für Steuerfunktionen

Programmbausteine für SIMATIC NET S7-CPs


204 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

Anwendung
Die folgende Darstellung verdeutlicht die Anwendung der Programmbausteine DP_SEND
und DP_RECV beim DP-Master und beim DP-Slave.

'3෥0DVWHU '3෥6ODYH

&38 352),%86&3 352),%86&3 &38

67(3 67(3
$QZHQGHU $QZHQGHU
SURJUDPP SURJUDPP

'3 '3
'DWHQEHUHLFKH 'DWHQEHUHLFKH
'3B6(1' VHQGHQ HPSIDQJHQ '3B5(&9
352),%86
'3B5(&9 HPSIDQJHQ VHQGHQ '3B6(1'

4.2.2 DP_SEND

4.2.2.1 Bedeutung und Aufruf - DP_SEND

Bedeutung
Der Programmbaustein DP_SEND überträgt Daten zum PROFIBUS-CP. Je nach Betriebsart
des PROFIBUS-CP hat DP_SEND folgende Bedeutung:
● Bei Verwendung im DP-Master
Der Baustein übergibt die Daten eines angegebenen DP-Ausgabebereiches an den
PROFIBUS-CP zur Ausgabe an die Dezentrale Peripherie.
● Bei Verwendung im DP-Slave
Der Baustein übergibt die Eingangsdaten des DP-Slaves an den PROFIBUS-CP zur
Übertragung an den DP-Master
Der angegebene Datenbereich kann ein PA-Bereich, ein Merkerbereich oder ein
Datenbausteinbereich sein.
Eine fehlerfreie Ausführung wird signalisiert, wenn der gesamte DP-Datenbereich vom
PROFIBUS-CP übernommen werden konnte.
Zum Starten des DP-Masters ist genau ein Aufruf von DP-SEND oder DP-RECV in der
Aufruffolge voranzustellen. Für diesen Erstaufruf gilt:
Wird zur Initialisierung der DP-SEND verwendet, wird der dabei übergebene Datenbereich
nicht übernommen und "0" an die Slaves gesendet. Erst der zweite Bausteinaufruf sendet
die übergebenen Nutzdaten.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 205
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

Aufrufschnittstelle
DP_SEND

WORD CPLADDR DONE BOOL

ANY SEND ERROR BOOL

STATUS WORD

Aufrufbeispiel in AWL-Darstellung

AWL Erläuterung
call fc 1 ( //DP_SEND Bausteinaufruf
CPLADDR:= W#16#0120,
SEND := P#db17.dbx0.0 byte 103,
DONE := M 99.1,
ERROR := M 99.0,
STATUS := MW 104 );

4.2.2.2 Arbeitsweise - DP_SEND

Arbeitsweise
Die folgende Ablaufdarstellung zeigt den normalen zeitlichen Ablauf einer mit DP_SEND im
Anwenderprogramm angestoßenen Datenübertragung.
Im Diagramm wird davon ausgegangen, dass die Initialisierung des DP-Masters durch einen
vorangegangenen Aufruf DP_SEND oder DP-RECV bereits erfolgt ist.
Jeder DP_SEND Auftrag des Anwenderprogrammes wird mit einer Anzeige in den
Ausgabeparametern DONE, ERROR und STATUS vom PROFIBUS-CP quittiert.

Programmbausteine für SIMATIC NET S7-CPs


206 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

$QZHQGHUSURJUDPP 352),%86෥&3 .RPPXQLNDWLRQVSDUWQHU


&38෥=\NOXV෥'3෥0DVWHU '3෥3ROO]\NOXV '3෥6ODYHV

1XW]GDWHQI¾U'3B6(1'YRUEHOHJHQ
DOOH$XVJ¦QJHಬ$ಬ

'3B6(1'

1XW]GDWHQಬ$ಬ  
QLFKWYHU¦QGHUQ

'3B6(1'
žEHUWUDJXQJ
 YRQಬ(UVDW]GDWHQ  ಬ
¾EHU352),%86O¦XIW
'3B6(1'


1XW]GDWHQI¾U'3B6(1'YRUEHOHJHQ
DOOH$XVJ¦QJHಬ%ಬ

'3B6(1' žEHUWUDJXQJ
 YRQಬ$ಬ
1XW]GDWHQಬ%ಬ ¾EHU352),%86O¦XIW
QLFKWYHU¦QGHUQ

'3B6(1'


'3B6(1'


1XW]GDWHQI¾U'3B6(1'YRUEHOHJHQ
DOOH$XVJ¦QJHಬ%ಬ
žEHUWUDJXQJ
'3B6(1' YRQಬ%ಬ
¾EHU352),%86O¦XIW

1XW]GDWHQಬ&ಬ
QLFKWYHU¦QGHUQ
=HLW =HLW =HLW

/HJHQGH

3DUDPHWHU¾EHUJDEH'21((552567$786

EHL¦OWHUHQ&3෥7\SHQLVWLP$QODXIGLH$Q]HLJH+P¸JOLFK

Gewährleistung der Datenübertragung


Die Darstellung zeigt auch, dass mit der Bestätigung DONE=1, ERROR=0 und
STATUS=0000 eine Übertragung der Daten zum Kommunikationspartner gewährleistet ist.
Es werden immer die neuesten, an den PROFIBUS-CP übergebenen Sendedaten an den
Kommunikationspartner übertragen. Daher dürfen neue Nutzdaten erst nach erfolgreicher
Quittierung (DONE=1, ERROR=0, STATUS=0000) im Sendepuffer eingetragen werden.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 207
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

4.2.2.3 Erläuterung der Formalparameter - DP_SEND

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion DP_SEND:

Parameter Deklaration Datentyp Wertebereich Beschreibung


CPLADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP wird die Baugruppen-
Anfangsadresse in der Konfigurationstabelle
ausgegeben. Geben Sie diese Adresse hier an.
SEND INPUT ANY Angabe von Adresse und Länge
(als VARTYPE Die Adresse des DP-Datenbereiches verweist
sind nur alternativ auf:
zugelassen:
 PA-Bereich
bei FC1 ab V3:
 Merkerbereich
BYTE
bei FC1 bis  Datenbausteinbereich
V2.x: BYTE,
WORD und Die Länge ist einzustellen für
DWORD)  DP-Master: 1...2160
 DP-Slave: 1...240
DONE OUTPUT BOOL 0: - Der Zustandsparameter zeigt an, ob der Auftrag
1: neue Daten fehlerfrei abgewickelt wurde.
Zur Bedeutung im Zusammenhang mit den
Parametern ERROR und STATUS siehe unter
Anzeigen DP_SEND (Seite 209).
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den
Parametern DONE und STATUS siehe unter Anzeigen
DP_SEND (Seite 209)
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den
Parametern DONE und ERROR siehe unter Anzeigen
DP_SEND (Seite 209)

Programmbausteine für SIMATIC NET S7-CPs


208 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

4.2.2.4 Anzeigen DP_SEND

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus DONE, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

Tabelle 4- 5 Anzeigen DP_SEND

DONE ERROR STATUS Bedeutung


0 0 8180H  Anlauf:

Der DP-Dienst wurde gestartet aber die Datenübernahme ist noch nicht möglich.
 Normalbetrieb

Die Datenübergabe läuft.


 DP ist nicht gestartet wegen folgender Situation:
– CP-STOP oder
– "keine Parametrierung" (tritt hier anstelle der Anzeige 0,1,8183H auf)
1 0 0000H Neue Daten fehlerfrei übergeben.
0 1 8183H Projektierung fehlt oder DP-Dienst im PROFIBUS-CP noch nicht gestartet.
0 1 8184H Systemfehler bzw. unzulässiger Parametertyp.
0 1 8F22H Bereichslängenfehler beim Lesen eines Parameters (z. B. DB zu kurz).
0 1 8F23H Bereichslängenfehler beim Schreiben eines Parameters (z. B. DB zu kurz).
0 1 8F24H Bereichsfehler beim Lesen eines Parameters.
0 1 8F25H Bereichsfehler beim Schreiben eines Parameters.
0 1 8F28H Ausrichtungsfehler beim Lesen eines Parameters.
0 1 8F29H Ausrichtungsfehler beim Schreiben eines Parameters.
0 1 8F30H Parameter liegt im schreibgeschützten 1. akt. Datenbaustein.
0 1 8F31H Parameter liegt im schreibgeschützten 2. akt. Datenbaustein.
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F33H DB-Nummernfehler.
0 1 8F3AH Zielbereich nicht geladen (DB).
0 1 8F42H Quittungsverzug beim Lesen eines Parameters aus dem Peripheriebereich.
0 1 8F43H Quittungsverzug beim Schreiben eines Parameters in den Peripheriebereich.
0 1 8F44H Adresse des zu lesenden Parameters in der Zugriffsspur gesperrt.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 209
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

DONE ERROR STATUS Bedeutung


0 1 8F45H Adresse des zu schreibenden Parameters in der Zugriffsschutz gesperrt.
0 1 8F7FH Interner Fehler. z. B. Unzulässige ANY-Referenz.
0 1 8090H Baugruppe mit dieser Adresse nicht vorhanden.
0 1 8091H Logische Basisadresse nicht auf Doppel-Wort-Raster.
0 1 80A1H Negative Quittung beim Schreiben zur Baugruppe.
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H Die Anzahl der zu sendenden Daten überschreitet die für diesen Dienst zulässige
Obergrenze (gilt für den DP-Master- und DP-Slave-Betrieb).
0 1 80C0H Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Betriebsmittel (Speicher) belegt.
0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll.)
0 1 80D2H Logische Basisadresse falsch.

4.2.3 DP_RECV

4.2.3.1 Bedeutung und Aufruf - DP_RECV

Bedeutung
Der Programmbaustein DP_RECV empfängt Daten über PROFIBUS. Je nach Betriebsart
des PROFIBUS-CP hat DP_RECV folgende Bedeutung:
● Bei Verwendung im DP-Master
DP_RECV übernimmt die Prozessdaten der dezentralen Peripherie sowie eine
Statusinformation in einen angegebenen DP-Eingabebereich.
● Bei Verwendung im DP-Slave
DP_RECV übernimmt die vom DP-Master übertragenen Ausgangsdaten in den am
Baustein angegebenen DP-Datenbereich.
Der für die Datenübernahme angegebene Datenbereich kann ein PA-Bereich, ein
Merkerbereich oder ein Datenbausteinbereich sein.
Eine fehlerfreie Ausführung wird signalisiert, wenn der gesamte DP-Dateneingabebereich
vom PROFIBUS-CP übergeben werden konnte.
Beachten Sie, dass der FC-Baustein DP_RECV beim DP-Slave im Anwenderprogramm
mindestens einmal erfolgreich aufgerufen werden muss, falls für diesen DP-Slave
Ausgangsdaten projektiert wurden. Bitte beachten Sie die Angaben im Gerätehandbuch.
Zum Starten des DP-Masters ist genau ein Aufruf von DP-SEND oder DP-RECV in der
Aufruffolge voranzustellen. Für diesen Erstaufruf gilt:
● Wird zur Initialisierung der DP-RECV verwendet, werden die empfangenen Daten nicht
übernommen. Erst der zweite Bausteinaufruf liefert die empfangenen Nutzdaten.

Programmbausteine für SIMATIC NET S7-CPs


210 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

Zusatzaufgabe: Statusbyte eintragen


Der FC-Baustein DP_RECV hat folgende zusätzliche Aufgabe:
● Aktualisieren des DP-Statusbyte DPSTATUS. DP_RECV übernimmt damit Aufgaben für
die DP_Diagnose.
Falls keine Empfangsdaten projektiert sind, muss der DP_RECV zur Aktualisierung des
Statusbyte DPSTATUS mit der Länge 1 aufgerufen werden (gilt nur beim DP-Master).
Bitte beachten Sie auch die Angaben im Gerätehandbuch.
● Freigeben der Stationsliste (siehe DP_DIAG (Seite 217)).

Aufrufschnittstelle
DP_RECV

WORD CPLADDR NDR BOOL

ANY RECV ERROR BOOL

STATUS WORD

DPSTATUS BYTE

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 2 ( //DP_RECV Bausteinaufruf
CPLADDR:= W#16#0120,
RECV := P#db17.dbx240.0 byte 103,
NDR := M 99.1,
ERROR := M 99.0,
STATUS := MW 104,
DPSTATUS:= MB 0 );

4.2.3.2 Arbeitsweise - DP_RECV

Arbeitsweise
Die folgende Ablaufdarstellung zeigt den normalen zeitlichen Ablauf einer mit DP_RECV im
Anwenderprogramm angestoßenen Datenübernahme.
Jeder DP_RECV Auftrag des Anwenderprogrammes wird mit einer Anzeige in den
Ausgabeparametern NDR, ERROR und STATUS vom PROFIBUS-CP quittiert.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 211
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

$QZHQGHUSURJUDPP 352),%86෥&3 .RPPXQLNDWLRQVSDUWQHU


&38෥=\NOXV෥'3෥0DVWHU '3෥3ROO]\NOXV '3෥6ODYHV
'3B5(&9 RGHU'3B6(1'
 
$QODXISKDVH

LQGHU$QODXISKDVH
'3B5(&9
ZLUGYRP'3෥0DVWHU
 352),%86෥&3 MHGHU
(LQJDQJPLWEHOHJW
'3B5(&9


(PSIDQJHQH'DWHQಬಬE]ZಬಬXQGಬ$ಬ
HQWJHJHQQHKPHQXQG'367$786 žEHUWUDJXQJ
6WDWLRQVOLVWHDXVZHUWHQ YRQಬ$ಬ
¾EHU352),%86
O¦XIW
'3B5(&9



'3B5(&9


(PSIDQJHQH'DWHQಬ$ಬE]Zಬ$ಬXQGಬ%ಬ
HQWJHJHQQHKPHQXQG'367$786 žEHUWUDJXQJ
6WDWLRQVOLVWHDXVZHUWHQ YRQಬ%ಬ
¾EHU352),%86
O¦XIW
'3B6(1'



'3B5(&9


(PSIDQJHQH'DWHQಬ%ಬ
HQWJHJHQQHKPHQXQG'367$786
6WDWLRQVOLVWHDXVZHUWHQ

=HLW =HLW =HLW

/HJHQGH

3DUDPHWHU¾EHUJDEH'21((552567$786

EHL¦OWHUHQ&3෥7\SHQLVWLP$QODXIGLH$Q]HLJH+P¸JOLFK

Gewährleistung der Datenübernahme


Die Darstellung zeigt auch, dass mit der Bestätigung NDR=1, ERROR=0 und STATUS=0000
eine Datenübernahme gewährleistet ist. Voraussetzung: Der DP-Master und die DP-Slaves
sind in der Datentransferphase.
Beachten Sie folgende Hinweise:

Programmbausteine für SIMATIC NET S7-CPs


212 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

● Bei DP-Master-Betrieb:
Befindet sich ein DP-Slave nicht in der Datentransferphase, so werden die betreffenden
Empfangsdaten auf 0 gesetzt.
Befindet sich der DP-Master weder im Zustand RUN oder CLEAR (Bit 4 und 5 in
DP-STATUS), so werden alle Empfangsdaten auf 0 gesetzt.
Wurden seit dem letzten Bausteinaufruf DP_RECV mehrmals Daten vom DP-Slave
empfangen, so werden nur die zuletzt empfangenen Daten mit dem nächsten DP_RECV
abgeholt.
● Bei DP-Slave-Betrieb:
Befindet sich der DP-Slave nicht in der Datentransferphase (Bit 1 in DP-Status) oder der
DP-Master im Zustand Clear (Bit 2 in DP-STATUS), so werden die Empfangsdaten auf 0
gesetzt.
Wurden seit dem letzten Bausteinaufruf DP_RECV mehrmals Daten vom DP-Master
empfangen, so werden nur die zuletzt empfangenen Daten mit dem nächsten DP_RECV
abgeholt.

4.2.3.3 Erläuterung der Formalparameter - DP_RECV

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion DP_RECV:

Parameter Deklaration Datentyp Wertebereich Beschreibung


CPLADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP wird die Baugruppen-
Anfangsadresse in der Konfigurationstabelle ausgegeben.
Geben Sie diese Adresse hier an.
RECV INPUT ANY Angabe von Adresse und Länge
(als VARTYPE Die Adresse des DP-Datenbereiches verweist alternativ
sind nur auf:
zugelassen:
 PA-Bereich
bei FC1 ab V3:
 Merkerbereich
BYTE
bei FC1 bis  Datenbausteinbereich
V2.x: BYTE,
WORD und Die Länge ist einzustellen für:
DWORD)  DP-Master: 1...2160
 DP-Slave: 1...240
 DP-Master; nur Statusbyte lesen: 1
(siehe auch CP-Gerätehandbuch)
NDR OUTPUT BOOL 0: - Der Zustandsparameter zeigt an, ob neue Daten
1: neue Daten übernommen wurden.
übernommen Zur Bedeutung im Zusammenhang mit den Parametern
ERROR und STATUS siehe unter Anzeigen DP_RECV
(Seite 214)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 213
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

Parameter Deklaration Datentyp Wertebereich Beschreibung


ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den Parametern
NDR und STATUS siehe unter Anzeigen DP_RECV
(Seite 214)
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den Parametern
NDR und ERROR siehe unter Anzeigen DP_RECV
(Seite 214)
DPSTATUS OUTPUT Byte Codierung DP-Statusanzeige
siehe
nachfolgend
unter
DPSTATUS

4.2.3.4 Anzeigen DP_RECV

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus NDR, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

NDR ERROR STATUS Bedeutung


0 0 8180H  Anlauf:

Der DP-Dienst wurde gestartet aber die Datenübernahme ist noch nicht möglich.
 Normalbetrieb

Die Datenübergabe läuft.


 DP ist nicht gestartet wegen folgender Situation:
– CP-STOP oder
– "keine Parametrierung" (tritt hier anstelle der Anzeige 0,1,8183H auf).
1 0 0000H Neue Daten fehlerfrei übernommen.
0 1 8183H Projektierung fehlt oder DP-Dienst im PROFIBUS-CP noch nicht gestartet.
0 1 8184H Systemfehler bzw. unzulässiger Parametertyp.
0 1 8F22H Bereichslängenfehler beim Lesen eines Parameters (z. B. DB zu kurz).
0 1 8F23H Bereichslängenfehler beim Schreiben eines Parameters (z. B. DB zu kurz).

Programmbausteine für SIMATIC NET S7-CPs


214 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

NDR ERROR STATUS Bedeutung


0 1 8F24H Bereichsfehler beim Lesen eines Parameters.
0 1 8F25H Bereichsfehler beim Schreiben eines Parameters.
0 1 8F28H Ausrichtungsfehler beim Lesen eines Parameters.
0 1 8F29H Ausrichtungsfehler beim Schreiben eines Parameters.
0 1 8F30H Parameter liegt im schreibgeschützten 1. akt. Datenbaustein.
0 1 8F31H Parameter liegt im schreibgeschützten 2. akt. Datenbaustein.
0 1 8F32H Parameter enthält zu große DB-Nummer.
0 1 8F33H DB-Nummer Fehler.
0 1 8F3AH Zielbereich nicht geladen (DB).
0 1 8F42H Quittungsverzug beim Lesen eines Parameters aus dem Peripheriebereich.
0 1 8F43H Quittungsverzug beim Schreiben eines Parameters in den Peripheriebereich.
0 1 8F44H Adresse des zu lesenden Parameters in der Zugriffsspur gesperrt.
0 1 8F45H Adresse des zu schreibenden Parameters in der Zugriffsspur gesperrt.
0 1 8F7FH Interner Fehler. z. B. Unzulässige ANY-Referenz.
0 1 8090H Baugruppe mit dieser Adresse nicht vorhanden.
0 1 8091H Logische Basisadresse nicht auf Doppel-Wort-Raster.
0 1 80A0H Negative Quittung beim Lesen von der Baugruppe.
0 1 80B0H Baugruppe kennt den Datensatz nicht.
0 1 80B1H Die Anzahl der zu sendenden Daten überschreitet die für diesen Dienst zulässige
Obergrenze (gilt für den DP-Master- und DP-Slave-Betrieb).
0 1 80C0H Datensatz kann nicht gelesen werden.
0 1 80C1H Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H Es liegt ein Auftragsstau vor.
0 1 80C3H Betriebsmittel (Speicher) belegt.
0 1 80C4H Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll).
0 1 80D2H Logische Basisadresse falsch.

4.2.3.5 DPSTATUS - DP_RECV

DPSTATUS
Die Codierung des Ausgabeparameters DP-Status ist für die Betriebsarten DP-Master-
Betrieb und DP-Slave-Betrieb unterschiedlich.

DP-Master-Betrieb

7 6 5 4 3 2 1 0
0

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 215
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

Tabelle 4- 6 Bedeutung der Bit in DPSTATUS- DP-Master-Betrieb

Bit Bedeutung
7 nicht belegt
6 Dieses Bit wird nicht gesetzt.
Bitte beachten Sie auch die Angaben im Gerätehandbuch.
5,4 Werte für DPSTATUS des DP-Masters:
00 RUN
01 CLEAR
10 STOP (wird auf den Betriebszustand OFFLINE abgebildet)
11 OFFLINE
Bitte beachten Sie auch die Angaben im Gerätehandbuch.
3 Wert 1: Zyklische Synchronisation ist eingeschaltet
2 Wert 0: keine neuen Diagnosedaten vorhanden
Wert 1: Diagnoseliste auswerten ist sinnvoll; mindestens 1 Station hat neue Diagnosedaten
1 Wert 0: alle DP-Slaves in der Datentransferphase
Wert 1: Stationsliste auswerten ist sinnvoll
0 DP Betrieb
Wert 0: DP-Master-Betrieb
Die anderen Bits sind mit der angegebenen Bedeutung nur gültig, wenn dieses Bit nicht gesetzt ist.

DP-Slave-Betrieb

7 6 5 4 3 2 1 0
1

Tabelle 4- 7 Bedeutung der Bit in DPSTATUS- DP-Slave-Betrieb

Bit Bedeutung
7-5 nicht belegt
4 Dieses Bit wird nicht gesetzt.
Bitte beachten Sie auch die Angaben im Gerätehandbuch.
3 Dieses Bit wird nicht gesetzt.
Bitte beachten Sie auch die Angaben im Gerätehandbuch.
2 Wert 1: Der DP-Master 1 ist im Zustand CLEAR. Der DP-Slave empfängt in den für die Ausgänge bestimmten DP-
Daten für alle Daten den Wert 0. Es besteht kein Einfluss auf die Sendedaten.
1 Wert 1: Die Konfigurierung / Parametrierung ist noch nicht erfolgreich beendet.
0 Wert 1: DP Slave-Betrieb.
Die anderen Bits sind mit der angegebenen Bedeutung nur gültig, wenn dieses Bit gesetzt ist.

ACHTUNG

Beachten Sie bitte, dass DPSTATUS erst ausgewertet werden darf, wenn der
Rückgabeparameter NDR=1 gesetzt ist.

Programmbausteine für SIMATIC NET S7-CPs


216 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

4.2.4 DP_DIAG

4.2.4.1 Bedeutung und Aufruf - DP_DIAG

Bedeutung des Bausteins


Der Programmbaustein DP_DIAG wird zum Anfordern von Diagnoseinformationen
verwendet. Es werden folgende Auftragsarten unterschieden:
● DP-Stationsliste anfordern;
● DP-Diagnoseliste anfordern;
● DP-Einzelstatus anfordern;
● Eingangs- / Ausgangsdaten eines DP-Slave azyklisch lesen;
● Ältere DP-Einzeldiagnose lesen;
● DP-Betriebszustand lesen.
● DP-Betriebszustand für AG-/CP-STOP lesen;
● Aktuellen Zustand des DP-Slave lesen.
Diagnosedaten können durch Angabe einer Stationsadresse Slave-spezifisch angefordert
werden.
Für die Übergabe der Diagnosedaten an die CPU ist ein Speicherbereich in der CPU
vorzusehen und im Aufruf anzugeben. Dieser Speicherbereich kann ein
Datenbausteinbereich oder ein Merkerbereich sein. Im Auftrag ist die maximale Länge des
verfügbaren Speicherbereiches anzugeben.

Hinweis
Der FC-Baustein DP_DIAG ist nur in der DP-Betriebsart mit DP-Master sinnvoll.

Ausschluss
Solange der Baustein läuft, darf er nicht mit neuen Auftragsdaten versorgt werden.
Ausnahme: DP-Stationsliste oder DP-Diagnoseliste anfordern.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 217
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

Aufrufschnittstelle
DP_DIAG

WORD CPLADDR NDR BOOL

BYTE DTYPE ERROR BOOL

BYTE STATION STATUS WORD

ANY DIAG DIAGLNG BYTE

Beispiel in AWL-Darstellung

AWL Erläuterung
call fc 3 ( //DP_DIAG Bausteinaufruf
CPLADDR:= W#16#0120,
DTYPE := B#16#00,
STATION:= B#16#03,
DIAG := P#db18.dbx0.0 byte 16,
NDR := M 70.0,
ERROR := M 70.1,
STATUS := MW 72,
DIAGLNG:= MB 20 );

4.2.4.2 Arbeitsweise - DP_DIAG

Ablauf / Hantierung an der Aufrufschnittstelle


Der Funktionsaufruf DP_DIAG wird im Rahmen der zyklischen Bearbeitung des
Anwenderprogrammes wie nachfolgend dargestellt bearbeitet:
Mit dem 1. Aufruf erfolgt der Auftragsanstoß. Erst in der Quittung eines der folgenden
Aufrufe werden Diagnosedaten zurückgemeldet

Programmbausteine für SIMATIC NET S7-CPs


218 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

$QZHQGHUSURJUDPP 352),%86&3
&38=\NOXV'30DVWHU '33ROO]\NOXV

'3B',$*


'3B',$*


'3B',$*


$OWZHUWH5¾FNJDEHZHUWH
DXVZHUWHQ

=HLW =HLW


3DUDPHWHU¾EHUJDEH1'5(552567$786

Hinweis
Beachten Sie bitte folgende Besonderheit für die Auftragsarten DP-Stationsliste_lesen und
DP-Diagnoseliste_lesen:
 Der Diagnoseauftrag liefert die Diagnosedaten, die zum Zeitpunkt des letzten DP–RECV
Aufrufes vorlagen. Ein Lesen einer Liste sperrt ein erneutes Auslesen (Rückgabewert
0x8182).
 Eine erneute Freigabe der Listen erfolgt durch ein neues Diagnoseereignis und einen
nachfolgenden DP-RECV Aufruf.

Nach dem Aufruf von DP_DIAG erhalten Sie daher als Reaktion eines der nachfolgend
beschriebenen Anzeigebilder.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 219
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

● NDR=0, ERROR=0, STATUS=8181


Solange die Anzeige NDR=0, ERROR=0 und STATUS=8181 ansteht, dürfen die
Auftragsparameter nicht verändert werden.
● NDR=1
Der Parameterwert NDR=1 zeigt an, dass gültige Diagnosedaten vorliegen. Zusätzliche
Informationen im Parameter STATUS sind möglich.
● NDR=0, ERROR=1
Es liegt ein Fehler vor. Die Diagnosedaten sind ungültig. Die Fehlermeldung steht in
STATUS.

4.2.4.3 Erläuterung der Formalparameter - DP_DIAG

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion DP_DIAG:

Parameter Deklaration Datentyp Wertebereich Beschreibung


CPLADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP wird die Baugruppen-
Anfangsadresse in der Konfigurationstabelle
ausgegeben. Geben Sie diese Adresse hier an.
DTYPE INPUT BYTE 0: Stationsliste Diagnosetyp
1: Diagnoseliste
2: Aktuelle Diagnose
3: Ältere Diagnose
4: Betriebszustand
lesen
5: Betriebszustand für
CPU-STOP lesen
6: Betriebszustand für
CP-STOP lesen
7: Eingangsdaten
(azyklisch) lesen
8: Ausgangsdaten
(azyklisch) lesen
10: Aktuellen Zustand
des DP-Slave lesen
STATION INPUT BYTE Stationsadresse des DP-Slaves
DIAG INPUT ANY Die Länge ist Angabe von Adresse und Länge
(als einzustellen von Adresse des Datenbereiches. Verweist alternativ auf:
VARTYPE 1...240
 PA-Bereich
sind nur
zugelassen:  Merkerbereich
BYTE,  Datenbausteinbereich
WORD und
DWORD)

Programmbausteine für SIMATIC NET S7-CPs


220 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

Parameter Deklaration Datentyp Wertebereich Beschreibung


NDR OUTPUT BOOL 0: - Der Zustandsparameter zeigt an, ob neue Daten
1: neue Daten übernommen wurden.
Zur Bedeutung im Zusammenhang mit den
Parametern ERROR und STATUS siehe unter
Anzeigen DP_DIAG (Seite 224)
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den
Parametern NDR und STATUS siehe unter Anzeigen
DP_DIAG (Seite 224)
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den
Parametern NDR und ERROR siehe unter Anzeigen
DP_DIAG (Seite 224)
DIAGLNG OUTPUT BYTE Enthält die tatsächliche Länge (in Byte) der vom
PROFIBUS-CP bereitgestellten Daten, unabhängig
von der im Parameter DIAG angegebenen
Puffergröße.
Bei den Auftragsarten mit DTYPE 4, 5 und 6 gilt:
DIAGLNG wird hier immer mit dem Wert "1" belegt.
Der im Parameter DIAG zurückgegebene Wert ist für
die Auswertung in diesen Fällen nicht relevant. In
diesen Fällen ist der relevante Wert im Parameter
STATUS enthalten.

4.2.4.4 Auftragsarten - DP_DIAG

Auftragsarten
Zulässige bzw. sinnvolle Auftragsangaben ergeben sich gemäß nachfolgender Übersicht aus
der Angabe für DTYPE, STATION und DIAGLNG.

Tabelle 4- 8 Auftragsarten für DP_DIAG

DTYPE Entspricht Parameter DIAGLNG Quittungscode


Auftrag STATION (enthalten im Parameter STATUS; angegeben in Tabelle
"Anzeigen DP_DIAG")
0 DP-Stationsliste --- - wird nicht Baugruppen-Anfangsadresse
lesen berücksichtigt - Bei der Konfiguration des CP wird die Baugruppen-
Anfangsadresse in der Konfigurationstabelle ausgegeben.
Geben Sie diese Adresse hier an.
1 DP-Diagnose- --- - wird nicht Mit der DP-Diagnoseliste erhalten sie im CPU-Programm
liste lesen berücksichtigt - die Information, bei welchen DP-Slaves neue
Diagnosedaten vorliegen.
2 Aktuelle DP- 1...126 >=6 Mit der aktuellen DP-Einzeldiagnose erhalten sie im CPU-
Einzeldiagnose Programm die aktuellen Diagnosedaten eines DP-Slave.
lesen

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 221
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

DTYPE Entspricht Parameter DIAGLNG Quittungscode


Auftrag STATION (enthalten im Parameter STATUS; angegeben in Tabelle
"Anzeigen DP_DIAG")
3 Ältere DP- 1...126 >=6 Mit der älteren DP-Einzeldiagnose erhalten sie im CPU-
Einzeldiagnose Programm die älteren Diagnosedaten eines DP-Slave.
lesen Diese Daten sind im PROFIBUS-CP gespeichert und
werden nach dem Prinzip "Last in first out" im Ringpuffer
gelesen.
Zur Erläuterung des Ringpuffers siehe unten.
Damit können bei schnellen Änderungen der DP-Slave-
Diagnosedaten diese DP-Slaves erfasst und im CPU-
Programm des DP-Masters ausgewertet werden.
4 Mit DP-CTRL- =1 Mit diesem Auftrag kann der DP-Betriebszustand gelesen
Auftrag werden, der mittels DP-CTRL-Auftrag (CTYPE=4) zuvor
(CTYPE=4) gesetzt wurde.
angeforderten Anmerkung: Der ausgelesene Betriebszustand muss nicht
Betriebszustand dem aktuellen Betriebszustand des CP entsprechen.
lesen
Folgende Betriebszustände sind möglich: :
 RUN
 CLEAR
 STOP (wird auf den Betriebszustand OFFLINE
abgebildet) *)
 OFFLINE
5 DP- =1 Mit diesem Auftrag ermitteln Sie, in welchen DP-
Betriebszustand Betriebszustand der PROFIBUS-CP bei CPU-STOP geht:
für CPU-STOP
 RUN
lesen
 CLEAR
 STOP (wird auf den Betriebszustand OFFLINE
abgebildet) *)
 OFFLINE

Als DEFAULT-Wert bei CPU-STOP geht der PROFIBUS-


CP in den DP-Betriebszustand CLEAR..
6 DP-Betriebs- =1 Mit diesem Auftrag ermitteln Sie, in welchen DP-
zustand für CP- Betriebszustand der PROFIBUS-CP bei CP-STOP geht :
STOP lesen
 STOP (wird auf den Betriebszustand OFFLINE
abgebildet) *)
 OFFLINE

Als DEFAULT-Wert bei CP-STOP geht der PROFIBUS-CP


in den DP-Betriebszustand OFFLINE.
7 Eingangsdaten 1...126 >=1 Mit diesem Auftrag lesen Sie als DP-Master (Klasse 2) die
lesen Eingangsdaten eines DP-Slave. Dieser Vorgang wird auch
als "Shared Input" bezeichnet.

Programmbausteine für SIMATIC NET S7-CPs


222 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

DTYPE Entspricht Parameter DIAGLNG Quittungscode


Auftrag STATION (enthalten im Parameter STATUS; angegeben in Tabelle
"Anzeigen DP_DIAG")
8 Ausgangsdaten 1...126 >=1 Mit diesem Auftrag lesen Sie als DP-Master (Klasse 2) die
lesen Ausgangsdaten eines DP-Slave. Dieser Vorgang wird auch
als "Shared Output" bezeichnet.
10 Aktuellen DP- 1...126 >=0 Mit diesem Auftrag lesen Sie den aktuellen Betriebszustand
Slave-Zustand des DP-Slave aus. Folgende Zustände sind möglich:
lesen
 Der DP-Master tauscht zyklisch Daten mit dem DP-
Slave aus.
 Der DP-Master liest zyklisch die Eingangsdaten des DP-
Slave.
 Der DP-Master liest zyklisch die Ausgangsdaten des
DP-Slave.
 Der DP-Master bearbeitet diesen DP-Slave momentan
nicht zyklisch.

*) Der Betriebszustand STOP wird bei den aktuellen Baugruppen (ab Baugruppentyp DA02) nicht mehr unterstützt.

4.2.4.5 Ringpuffer für Diagnosedaten - DP_DIAG

Ringpuffer für Diagnosedaten


Die folgende Darstellung zeigt das Prinzip des Lesens bei der Auftragsart "ältere DP-
Einzeldiagnose lesen". Mit dem 1. Lesezugriff wird die jüngste ältere Diagnose gelesen.

aktuelle Diagnose 9.Lesezugriff;


1.ältere Diagnose 1.Lesezugriff; 10.Lesezugriff

8.ältere Diagnose 8.Lesezugriff;

Bild 4-3 Ringpuffer für Diagnosedaten

Mit dem Auslesen einer aktuellen Diagnose wird der Lesezeiger auf 1. ältere Diagnose
zurückgesetzt.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 223
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

4.2.4.6 Anzeigen DP_DIAG

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus NDR, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

Tabelle 4- 9 Anzeigen DP_DIAG

NDR ERROR STATUS Möglich Bedeutung


bei
DTYPE
0 0 8181H 2-10 Auftrag läuft.
Der DP-Master ist nicht gestartet wegen
 CP-STOP oder
 "keine Parametrierung
(tritt hier anstelle der Anzeige 0,1,8183H auf).
0 0 8182H 0 Anstoß nicht sinnvoll.
Der DP-Master ist nicht gestartet wegen
 CP-STOP oder
 "keine Parametrierung
(tritt hier anstelle der Anzeige 0,1,8183H auf).
0 0 8182H 1 Keine neue Diagnose vorhanden.
Der DP-Master ist nicht gestartet wegen
 CP-STOP oder
 "keine Parametrierung
(tritt hier anstelle der Anzeige 0,1,8183H auf).
1 0 0000H 0, 1 Hinweis:
und 4-9 Bei DTYPE 2,3 und 10 wird die fehlerfreie Ausführung mit einem Statuscode
ungleich "0" signalisiert. Entsprechend finden Sie nachfolgend für eine
fehlerfreie Ausführung detaillierte Statuscodes für den Bereich:
82XXH
Bei fehlerbehafteter Ausführung erhalten Sie Statuscodes in den folgenden
Bereichen:
80XXH, 83XXH, 8FXXH

Programmbausteine für SIMATIC NET S7-CPs


224 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

NDR ERROR STATUS Möglich Bedeutung


bei
DTYPE
1 0 8222H 7, 8 Auftrag abgeschlossen ohne Fehler.
Die Länge der gelesenen DP-Slave-Daten ist ungleich der Datenlänge, die der
DP-Master anhand der Modulliste des DP-Slave in der CP-Datenbasis
erwartet.
1 0 8227H 7, 8 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : es sind keine Daten vorhanden.
1 0 8231H 4, 5, 6 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Betriebszustand ist bereits "RUN"
1 0 8232H 4, 5, 6 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Betriebszustand ist bereits "CLEAR"
1 0 8233H 4, 5, 6 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Betriebszustand ist bereits in STOP
Der Zustand STOP wird auf den Zustand OFFLINE abgebildet (hier Anzeige
8234H).
Bitte beachten Sie auch die Angaben im Gerätehandbuch.
1 0 8234H 4, 5, 6 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Betriebszustand ist bereits
"OFFLINE"
1 0 823AH 2, 3, 7, 8 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : es wurden 241 oder 242 Byte Daten gelesen. Bereitgestellt
werden 240 Byte.
1 0 8241H 2, 3, 10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der angegebene DP-Slave wurde nicht projektiert.
1 0 8243H 2, 3, 10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : in der Modulliste des CP-Slave in der CP-Datenbasis sind
nur Leer -Module enthalten.
1 0 8245H 2, 3, 10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Slave ist im Zustand "Eingangsdaten zyklisch
lesen".
1 0 8246H 2, 3, 10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Slave ist im Zustand
"Ausgangsdaten zyklisch lesen".
1 0 8248H 2, 3, 10 Auftrag abgeschlossen ohne Fehler.
Anmerkung: Dies ist für die genannten Diagnosetypen die Standardanzeige,
sofern keine zu signalisierenden Besonderheiten vorliegen.
1 0 8249H 2, 3, 10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Slave ist deaktiviert wegen eines Wechsel des DP-
Betriebszustandes ( z. B. CP-Schalter auf STOP).
1 0 824AH 2, 3, 10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Slave ist deaktiviert aufgrund eines DP_CTRL-
Auftrages im CPU-Programm.
0 1 8090H 0-10 Logische Basisadresse der Baugruppe ist ungültig
0 1 80B0H 0-10 Die Baugruppe kennt den Datensatz nicht oder befindet sich im RUN -->
STOP Übergang.
0 1 80B1H 0-10 Angegebene Datensatzlänge ist falsch
0 1 80C0H 0-10 Datensatz kann nicht gelesen werden
0 1 80C1H 0-10 Der angegebene Datensatz ist gerade in Bearbeitung

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 225
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

NDR ERROR STATUS Möglich Bedeutung


bei
DTYPE
0 1 80C2H 0-10 Es liegt ein Auftragsstau vor
0 1 80C3H 0-8 Betriebsmittel (Speicher) belegt
0 1 80C4H 0-10 Kommunikationsfehler
0 1 80D2H 0-10 Logische Basisadresse falsch
0 1 8183H 0-10 DP Master nicht projektiert.
0 1 8184H 0-8 Systemfehler bzw. unzulässiger Parametertyp.
0 1 8311H >=2 Parameter DTYPE außerhalb des Wertebereichs .
0 1 8313H 2, 3, 7, 8, Parameter STATION außerhalb des Wertebereichs.
10
0 1 8321H >=2 Der DP-Slave stellt keine gültigen Daten zur Verfügung.
0 1 8326H 7, 8 Der DP-Slave stellt mehr als 242 Byte Daten zur Verfügung. Der PROFIBUS-
CP unterstützt maximal 242 Byte.
0 1 8335H 7, 8 Der PROFIBUS-CP ist im PROFIBUS-Status: "Station nicht im Ring".
0 1 8341H 2, 3, 7, 8, Der angegebene Slave wurde nicht projektiert
10
0 1 8342H 7, 8 Der DP-Slave mit der im Parameter STATION angegebenen PROFIBUS-
Adresse ist nicht erreichbar.
0 1 8349H 7, 8 Der DP-Master ist im Zustand OFFLINE.
0 1 8F22H 0-10 Bereichslängenfehler beim Lesen eines Parameters (z. B. DB zu kurz)
0 1 8F23H 0-10 Bereichslängenfehler beim Schreiben eines Parameters (z. B. DB zu kurz)
0 1 8F24H 0-10 Bereichsfehler beim lesen eines Parameters
0 1 8F25H 0-10 Bereichsfehler beim schreiben eines Parameters
0 1 8F28H 0-10 Ausrichtungsfehler beim lesen eines Parameters
0 1 8F29H 0-10 Ausrichtungsfehler beim schreiben eines Parameters
0 1 8F30H 0-10 Parameter liegt im schreibgeschützten 1. akt. Datenbaustein
0 1 8F31H 0-10 Parameter liegt im schreibgeschützten 2. akt. Datenbaustein
0 1 8F32H 0-10 Parameter enthält zu große DB-Nummer
0 1 8F33H 0-10 DB-Nummer Fehler
0 1 8F3AH 0-10 Bereich nicht geladen (DB)
0 1 8F42H 0-10 Quittungsverzug beim lesen eines Parameters aus dem Peripheriebereich
0 1 8F43H 0-10 Quittungsverzug beim schreiben eines Parameters in den Peripheriebereich
0 1 8F44H 0-10 Adresse des zu lesenden Parameters in der Zugriffsspur gesperrt
0 1 8F45H 0-10 Adresse des zu schreibenden Parameters in der Zugriffsspur gesperrt
0 1 8F7FH 0-10 Interner Fehler. z. B. Unzulässige ANY-Referenz

Programmbausteine für SIMATIC NET S7-CPs


226 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

4.2.5 DP_CTRL

4.2.5.1 Bedeutung und Aufruf - DP_CTRL

Bedeutung des Bausteins


Der Programmbaustein DP_CTRL übergibt Steueraufträge an den PROFIBUS-CP. Durch
Angabe eines Auftragsblockes (Parameter CONTROL) wird der Steuerauftrag näher
spezifiziert.
Es werden folgende Auftragsarten unterschieden:
● Global Control azyklisch / zyklisch;
● Ältere Diagnose löschen;
● Aktuellen DP-Betriebszustand setzen;
● DP-Betriebszustand für AG-/CP-STOP setzen;
● Ein-/Ausgangsdaten zyklisch lesen;
● Bearbeitungsmodus des DP-Slave setzen.
Es gibt Einschränkungen bezüglich der hier genannten Auftragsarten (bitte beachten Sie
hierzu die Angaben im Gerätehandbuch).

Hinweis
Der FC-Baustein DP_CTRL ist nur in der DP-Betriebsart mit DP-Master sinnvoll.

Anschluss
Solange der Baustein läuft, darf er nicht mit neuen Auftragsdaten versorgt werden.

Aufrufschnittstelle
DP_CTRL

WORD CPLADDR DONE BOOL

ANY CONTROL ERROR BOOL

STATUS WORD

Beispiel in AWL-Darstellung

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 227
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

AWL Erläuterung
call fc 4 ( //DP_CTRL Bausteinaufruf
CPLADDR:= W#16#0120,
CONTROL:= P#db14.dbx0.0 byte 30, // Der Puffer für den Control-Auftrag
// belegt die ersten 30 Bytes im DB 14.
DONE := M 70.0,
ERROR := M 70.1,
STATUS := MW 72 );

4.2.5.2 Arbeitsweise - DP_CTRL

Ablauf / Hantierung an der Aufrufschnittstelle


Der Funktionsaufruf DP_CTRL wird im Rahmen der zyklischen Bearbeitung des
Anwenderprogrammes wie nachfolgend dargestellt bearbeitet:
Mit dem 1. Aufruf erfolgt der Auftragsanstoß. Erst in der Quittung eines der folgenden
Aufrufe werden Diagnosedaten zurückgemeldet.

$QZHQGHUSURJUDPP 352),%86෥&3 .RPPXQLNDWLRQVSDUWQHU


&38෥=\NOXV '3෥3ROO]\NOXV '3෥6ODYH
'3B&75/


'3B&75/



'3B&75/


$XIWUDJIHUWLJRKQH)HKOHU

=HLW =HLW =HLW

/HJHQGH

3DUDPHWHU¾EHUJDEH'21((552567$786

Nach dem Aufruf von DP_CTRL erhalten Sie daher als Reaktion eines der nachfolgend
beschriebenen Anzeigebilder.

Programmbausteine für SIMATIC NET S7-CPs


228 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

● DONE=0, ERROR=0, STATUS=8181


Solange die Anzeige DONE=0, ERROR=0 und STATUS=8181 ansteht, dürfen die
Auftragsparameter nicht verändert werden.
● DONE=1
Der Parameterwert DONE=1 zeigt an, dass der Auftrag ausgeführt wurde. Zusätzliche
Informationen im Parameter STATUS sind möglich.
● DONE=0, ERROR=1
Es liegt ein Fehler vor. Die Fehlermeldung steht in STATUS.

4.2.5.3 Erläuterung der Formalparameter - DP_CTRL

Erläuterung der Formalparameter


Die folgende Tabelle erläutert alle Formalparameter für die Funktion DP_CTRL:

Parameter Deklaration Datentyp Wertebereich Beschreibung


CPLADDR INPUT WORD Baugruppen-Anfangsadresse
Bei der Konfiguration des CP wird die Baugruppen
Anfangsadresse in der Konfigurationstabelle
ausgegeben. Geben Sie diese Adresse hier an.
CONTROL INPUT ANY Die Länge ist Angabe von Adresse und Länge des CONTROL-
(als VARTYPE einzustellen von Auftragsblockes
sind nur 1...240 Adresse des Datenbereiches. Verweist alternativ auf:
zugelassen:
 PA-Bereich
BYTE, WORD
 Merkerbereich
und DWORD)
 Datenbausteinbereich
Die Länge muss mindestens so groß wie die
Parameteranzahl gewählt werden.
DONE OUTPUT BOOL 0: - Zeigt an, ob der Auftrag gesendet und fehlerfrei
1: Auftrag abgeschlossen wurde.
fehlerfrei Zur Bedeutung im Zusammenhang mit den Parametern
ausgeführt. ERROR und STATUS siehe unter Anzeigen DP_CTRL
(Seite 235)
ERROR OUTPUT BOOL 0: - Fehleranzeige
1: Fehlerfall Zur Bedeutung im Zusammenhang mit den Parametern
DONE und STATUS siehe unter Anzeigen DP_CTRL
(Seite 235)
STATUS OUTPUT WORD Statusanzeige
Zur Bedeutung im Zusammenhang mit den Parametern
DONE und ERROR siehe unter Anzeigen DP_CTRL
(Seite 235)

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 229
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

Aufbau des CONTROL-Auftragsblockes


Der Kontrollauftrag hat folgende Struktur:

CONTROL−
Adresse CTYPE
siehe unter ’Parameter’
Parameter 1. Byte
(Anzahl und Name)
Parameter 2. Byte

Parameter n. Byte

Beispiel für den Auftragsblock


Mit einem Auftragsblock nach unten stehendem Muster wird ein zyklischer Global Control
Auftrag SYNC und Unfreeze für die Gruppe 4 und 5 ohne die Option Autoclear abgesetzt.

DB 14
Byte 0 01H CTYPE
Byte 1 24H Command Mode
Byte 2 18H Group Select
Byte 3 00H Autoclear

Die im ANY-Pointer angegebene Länge muss mindestens 4 sein (im Aufrufbeispiel gewählt
sind 30).

Programmbausteine für SIMATIC NET S7-CPs


230 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

4.2.5.4 Auftragsarten - DP_CTRL

Auftragsarten
Zulässige bzw. sinnvolle Auftragsangaben ergeben sich gemäß nachfolgender Übersicht aus
der Angabe für CTYPE sowie den Angaben im Auftragsblock.

CTYPE Entspricht Auftrag Parameter im Auftragsblock Beschreibung


Name Anzahl
0 Global Control 1. Byte: 2 Es wird ein einmaliger Global Control Auftrag an die
anstoßen Command Mode mit Group Select selektierten DP-Slaves gesendet. Im
2. Byte: Parameter Command Mode werden folgende Global
Group Select Control Aufträge bestimmt :
(siehe im  SYNC
Anschluss an
 UNSYNC
diese Tabelle)
 FREEZE
 UNFREEZE
 CLEAR - wird nicht unterstützt (bitte beachten Sie
auch die Angaben im Gerätehandbuch)
Es ist möglich, mehr als einen Auftrag im Parameter
Command Mode anzugeben.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 231
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

CTYPE Entspricht Auftrag Parameter im Auftragsblock Beschreibung


Name Anzahl
1 *) Zyklischen Global 1. Byte: 3 Es erfolgt der Anstoß an den PROFIBUS-CP, dass
Control anstoßen Command Mode dieser zyklisch Global Control Aufträge an die mit
2. Byte: Group Select selektierten DP-Slaves sendet.
Group Select Der Parameter Autoclear wird nur beim Global Control
3. Byte: Auftrag SYNC ausgewertet. Wenn mindestens ein
Autoclear DP-Slave in der gewählten Gruppe nicht in der
(siehe im Datentransferphase ist, wird bei Autoclear = 1
Anschluss an zusätzlich der CLEAR-Modus eingeschaltet. d. h. die
diese Tabelle) Ausgangsdaten der DP-Slaves werden auf "0"
gesetzt.
Im Parameter Command Mode können folgende
Global Control Aufträge eingeschaltet werden :
 SYNC
 FREEZE
 CLEAR (CLEAR-Bit = 1) - wird nicht unterstützt
(bitte beachten Sie auch die Angaben im
Gerätehandbuch)

bzw. ausgeschaltet werden :


 UNSYNC
 UNFREEZE
 UNCLEAR (CLEAR-Bit = 0)
Es ist möglich, mehr als einen Auftrag im Parameter
Command Mode anzugeben.
Um einen laufenden zyklischen Global Control Auftrag
zu beenden, muss ein erneuter Global Control Auftrag
(zyklisch oder azyklisch) durchgeführt werden.
Um den im Command Mode eingestellten Auftrag zu
beenden, muss der entsprechende Auftrag
ausgeschaltet werden. Z. B. wird der SYNC-Auftrag
durch einen UNSYNC-Auftrag ausgeschaltet.
3 Ältere DP- 1. Byte: 1 Es werden die älteren, im PROFIBUS-CP
Einzeldiagnose Slv_Adresse gespeicherten DP-Enzeldiagnosedaten für einen oder
löschen 1..126 alle DP-Slaves gelöscht.
127 = alle
Slaves

Programmbausteine für SIMATIC NET S7-CPs


232 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

CTYPE Entspricht Auftrag Parameter im Auftragsblock Beschreibung


Name Anzahl
4 Aktuellen DP- 1. Byte: 1 Mit diesem Auftrag kann der DP-Betriebszustand wie
Betriebszustand RUN = 00H folgt gesetzt werden:
setzen CLEAR = 01H  RUN
OFFLINE = 03H
 CLEAR
RUN mit
AUTOCLEAR =  OFFLINE
04H Der Parameter AUTOCLEAR bedeutet, dass der DP-
RUN ohne Master Klasse 1 selbständig in den Betriebszustand
AUTOCLEAR = CLEAR geht, wenn folgende Bedingung erfüllt ist:
04H mindestens einer der DP-Slave, mit denen der DP-
Master Klasse 1 Datenaustausch betreiben will, ist
nicht im Datentransfer.
Mit dem Parameter RUN ohne AUTOCLEAR wird
AUTOCLEAR zurückgesetzt.
Hinweise:
Der Betriebszustand STOP = 02H wird bei den
aktuellen Baugruppen nicht mehr unterstützt (ab
Baugruppentyp DA02). Eine Angabe STOP = 02H wird
auf den Betriebszustand OFFLINE abgebildet.
5 DP-Betriebszustand 1. Byte: 1 Mit diesem Auftrag wird festgelegt, in welchen DP-
für CPU-STOP setzen RUN = 00H Betriebszustand der PROFIBUS-CP bei CPU-STOP
CLEAR = 01H geht :
OFFLINE = 03H  RUN
 CLEAR
 OFFLINE
Als DEFAULT-Wert bei CPU- STOP geht der
PROFIBUS-CP in den DP-Betriebszustand CLEAR.
Der gesetzte Betriebszustand bleibt bei einem CP-
Zustandswechsel von RUN --> STOP --> RUN
erhalten.
Hinweise:
Der Betriebszustand STOP = 02H wird bei den
aktuellen Baugruppen (ab Baugruppentyp DA02) nicht
mehr unterstützt. Eine Angabe STOP = 02H wird auf
den Betriebszustand OFFLINE abgebildet.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 233
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

CTYPE Entspricht Auftrag Parameter im Auftragsblock Beschreibung


Name Anzahl
6 DP-Betriebszustand 1. Byte: 1 Mit diesem Auftrag wird festgelegt, in welchen DP-
für CP-STOP setzen OFFLINE=03H Betriebszustand der PROFIBUS-CP bei CP-STOP
geht :
 OFFLINE
Als DEFAULT-Wert bei CP-STOP geht der
PROFIBUS-CP in den DP-Betriebszustand OFFLINE.
Der gesetzte Betriebszustand bleibt bei einem CP-
Zustandswechsel von RUN --> STOP --> RUN
erhalten.
Hinweise:
Der Betriebszustand STOP = 02H wird bei den
aktuellen Baugruppen (ab Baugruppentyp DA02) nicht
mehr unterstützt. Eine Angabe STOP = 02H wird auf
den Betriebszustand OFFLINE abgebildet.
7 *) Zyklisches Lesen der 1. Byte: 1 Dieser Auftrag wird nicht unterstützt.
Eingangsdaten (DP- Slave-Adresse Bitte beachten Sie auch die Angaben im
Master Klasse 2) 1..125 Gerätehandbuch.
8 *) Zyklisches Lesen der 1. Byte: 1 Dieser Auftrag wird nicht unterstützt.
Ausgangsdaten (DP- Slave-Adresse Bitte beachten Sie auch die Angaben im
Master Klasse 2) 1..125 Gerätehandbuch.
9 Zyklisches Bearbeiten 1. Byte: 1 Mit diesem Auftrag wird das zyklische Lesen der
des DP-Slave vom Slave-Adresse Eingangsdaten oder Ausgangsdaten des adressierten
DP-Master (Klasse 1 1..125 DP-Slave oder der Datentransfer (DP-Master Klasse
/Klasse 2) beenden 1) beendet.
Anschließend wird der DP-Slave nicht mehr vom
PROFIBUS-CP als DP-Master ( Klasse 2) bearbeitet
Dieser Vorgang deaktiviert den DP-Slave.
10 Zyklisches Bearbeiten 1. Byte: 1 Der PROFIBUS-CP als DP-Master (Klasse 1)
als DP-Master (Klasse Slave-Adresse parametriert den adressierten DP-Slave und nimmt
1) aufnehmen 1..125 den zyklischen Datentransfer auf (Ausgänge
schreiben / Eingänge lesen).
Dieser Vorgang aktiviert den DP-Slave.
*) Dieser CTYPE wird bei den aktuellen Baugruppen (ab Baugruppentyp DA02) nicht mehr unterstützt.

4.2.5.5 Command Mode und Group Select - DP_CTRL

Aufbau von Command Mode


Für die Aufträge Global Control zyklisch und azyklisch geben Sie im Parameter Command
Mode die Betriebsmodi für die Ein- und Ausgangsdaten an.
Hierbei bedeutet jeweils:
1 = aktiviert
0 = nicht aktiviert

Programmbausteine für SIMATIC NET S7-CPs


234 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

Bit−Nummer: 7 6 5 4 3 2 1 0

nicht benutzt
CLEAR
UNFREEZE
FREEZE
UNSYNC
SYNC
nicht benutzt

Aufbau von Group Select


Mit dem Parameter Group Select legen Sie fest, auf welche Gruppe der im Command Mode
angegebene Steuerauftrag angewendet werden soll. Group Select belegt das 2. Byte im
Kontrollauftrag. Jedes Bit definiert eine mögliche DP-Slavegruppe.
Hierbei bedeutet jeweils:
1 = zugeordnet
0 = nicht zugeordnet

Bit−Nummer: 7 6 5 4 3 2 1 0
Gruppe: 8 7 6 5 4 3 2 1

4.2.5.6 Anzeigen DP_CTRL

Anzeigen
Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige,
gebildet aus den Parametern DONE, ERROR und STATUS.

Hinweis
Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben
zum Ausgangsparameter RET_VAL in den Beschreibungen der referenzierten System-
Programmbausteine.
Welche System-Programmbausteine genutzt werden und für die Fehlerauswertung relevant
sind, können Sie über STEP 7 abfragen.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 235
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

Tabelle 4- 10 Anzeigen DP_CTRL

DONE ERROR STATUS Möglich bei Bedeutung


CTYPE
0 0 8181H 0..10 Auftrag läuft.
Der DP-Master ist nicht gestartet wegen:
 CP-STOP oder
 "keine Parametrierung"
Anmerkung:
Die beschriebene Anzeige tritt anstelle einer der folgenden, weiter unten
beschriebenen Anzeigen auf:
0,1,8183H
0,1, 8333 H
0,1, 8334H
1 0 0000H 0..10 Auftrag fertig ohne Fehler.
1 0 8214H 0, 1 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : zyklischer Global Control Auftrag wird als azyklischer
Global Control Auftrag gesendet
1 0 8215H 0, 1 Auftrag abgeschlossen ohne Fehler.
Die in der selektierten Gruppe angesprochenen DP-Slaves sind alle
deaktiviert.
1 0 8219H 0, 1 Auftrag abgeschlossen ohne Fehler.
Es wurde versucht, einen bereits laufenden zyklischen Global Control
noch einmal abzusetzen. Der Global Control läuft unverändert weiter.
1 0 8228H 0, 1 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : die in selektierten Gruppen angesprochenen DP-
Slaves besitzen keine Eingangsmodule.
1 0 8229H 0, 1 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : die in selektierten Gruppen angesprochenen DP-
Slaves besitzen keine Ausgangsmodule.
1 0 8231H 4, 5, 6 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Betriebszustand ist bereits "RUN"
1 0 8232H 4, 5, 6 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Betriebszustand ist bereits "CLEAR"
1 0 8233H 4, 5, 6 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Betriebszustand ist bereits "STOP"
1 0 8234H 4, 5, 6 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Betriebszustand ist bereits "OFFLINE"
1 0 8235H 4 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Betriebszustand ist bereits "RUN" mit
eingeschaltetem AUTOCLEAR
1 0 8236H 4 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Betriebszustand ist bereits "RUN" mit
ausgeschaltetem AUTOCLEAR
1 0 8241H 7-10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung: der angegebene DP-Slave wurde nicht projektiert.
1 0 8243H 7-10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Slave ist bereits deaktiviert, da in der
Modulliste des DP-Slave in der CP-Datenbasis nur Leer-Module enthalten
sind .

Programmbausteine für SIMATIC NET S7-CPs


236 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

DONE ERROR STATUS Möglich bei Bedeutung


CTYPE
1 0 8245H 7-10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Slave ist bereits im Zustand "Eingangsdaten
zyklisch lesen"
1 0 8246H 7-10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Slave ist bereits im Zustand "Ausgangsdaten
zyklisch lesen"
1 0 8248H 7-10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung: in der Modulliste des DP-Slaves in der CP-Datenbasis
sind Eingangs-, Ausgangs-, oder Ein/Ausgangsmodule enthalten.
1 0 8249H 7-10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung: der Slave ist wegen eines Wechsels des DP-
Betriebszustandes deaktiviert.
1 0 824AH 7-10 Auftrag abgeschlossen ohne Fehler.
Hinweis-Meldung : der DP-Slave ist bereits deaktiviert aufgrund eines
DP_CTRL Auftrages im CPU-Programm
0 1 8090H 0..10 Baugruppe mit dieser Adresse nicht vorhanden.
0 1 8091H 0..10 Logische Adresse nicht auf Doppel-Wort-Raster.
0 1 80B0H 0..10 Baugruppe kennt den Datensatz nicht.
0 1 80B1H 0..10 Angegebene Datensatzlänge ist falsch.
0 1 80C0H 0..10 Datensatz kann nicht gelesen werden.
0 1 80C1H 0..10 Der angegebene Datensatz ist gerade in Bearbeitung.
0 1 80C2H 0..10 Es liegt ein Auftragsstau vor.
0 1 80C3H Betriebsmittel (Speicher) belegt.
0 1 8183H 0..10 DP-Master ist nicht projektiert..
Anmerkung:
Wenn sich der DP-Master im Betriebszustand "STOP" befindet, dann
kann auch der Status 8181 H ausgegeben werden.
0 1 8184H Systemfehler bzw. unzulässiger Parametertyp..
0 1 8311H 0..10 Parameter CTYPE außerhalb des Wertebereichs
0 1 8312H 0..10 Länge des Bereiches im Parameter CONTROL ist zu klein.
0 1 8313H 3, 7, 8, 9, 10 Parameter Slave-Adresse außerhalb des Wertebereichs.
0 1 8315H 0, 1 Alle DP-Slaves der im global Control angegebenen Gruppe sind
deaktiviert (tritt bei leerer Gruppe immer auf).
0 1 8317H 8 Die Länge der projektierten Ausgangsdaten ist größer als der projektierte
Empfangsbereich des DP-Slave.
Eine Aktivierung des Slave-Modus "Lese Ausgangsdaten" ist nicht
möglich.
0 1 8318H 0, 1, 4, 5, 6 Parameter 1. Byte des Auftragsdatenblocks liegt außerhalb des
Wertebereiches. Bei GLOBAL CONTROL wurde CLEAR mit SYNC
verwendet oder ein GLOBAL CONTROL mit gesetztem CLEAR an die
Gruppe 0 gesendet.
0 1 831AH 0, 1 Mindestens ein DP-Slave beherrscht FREEZE nicht.
0 1 831BH 0, 1 Mindestens ein DP-Slave beherrscht SYNC nicht.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 237
Programmbausteine für PROFIBUS
4.2 Programmbausteine für DP (Dezentrale Peripherie) bei S7-300

DONE ERROR STATUS Möglich bei Bedeutung


CTYPE
0 1 8333H 0, 1 Der Auftrag ist im DP-Betriebszustand "STOP" nicht erlaubt.
Anmerkung:
Wenn kein DP-Master projektiert ist, dann kann auch der Status 8181H
ausgegeben werden.
0 1 8334H 0, 1 Der Auftrag ist im DP-Betriebszustand "OFFLINE" nicht erlaubt.
Anmerkung:
Wenn kein DP-Master projektiert ist, dann kann auch der Status 8181H
ausgegeben werden.
0 1 8335H 0, 1 Der PROFIBUS-CP ist im PROFIBUS-Status: "Station nicht im Ring".
0 1 8339H 0, 1 Mindestens ein DP-Slave der selektierten Gruppe befindet sich nicht in
der Datentranferphase.
0 1 833CH 1 Zyklischer Global Control darf im Modus
"Plc <-> CP freilaufend" nicht benutzt werden. Dieser Fehler tritt beim CP
3425 nicht auf, da dieser Modus dort nicht möglich ist (Datenübertragung
erfolgt immer über PBUS Datensätze).
0 1 8341H 7-10 Der angegebene DP-Slave wurde nicht projektiert.
0 1 8183H 0..10 DP Master nicht projektiert.
0 1 8184H - Systemfehler bzw. unzulässiger Parametertyp.
0 1 8F22H 0..10 Bereichslängenfehler beim Lesen eines Parameters. (z. B. DB zu kurz).
0 1 8F23H 0..10 Bereichslängenfehler beim Schreiben eines Parameters.
0 1 8F24H 0..10 Bereichsfehler beim Lesen eines Parameters.
0 1 8F25H 0..10 Bereichsfehler beim Schreiben eines Parameters.
0 1 8F28H 0..10 Ausrichtungsfehler beim Lesen eines Parameters.
0 1 8F29H 0..10 Ausrichtungsfehler beim Schreiben eines Parameters.
0 1 8F30H 0..10 Der Parameter liegt im schreibgeschützten 1. aktuellen Datenbaustein.
0 1 8F31H 0..10 Der Parameter liegt im schreibgeschützten 2. aktuellen Datenbaustein.
0 1 8F32H 0..10 Parameter enthält zu große DB-Nummer.
0 1 8F33H 0..10 DB-Nummer Fehler.
0 1 8F3AH 0..10 Bereich nicht geladen (DB).
0 1 8F42H 0..10 Quittungsverzug beim Lesen eines Parameters aus dem
Peripheriebereich.
0 1 8F43H 0..10 Quittungsverzug beim Schreiben des Parameters in den
Peripheriebereich.
0 1 8F44H 0..10 Der Zugriff auf einen in der Bausteinbearbeitung zu lesenden Parameter
ist gesperrt.
0 1 8F45H 0..10 Der Zugriff auf einen in der Bausteinbearbeitung zu schreibenden
Parameter ist gesperrt.
0 1 8F7FH 0..10 Interner Fehler. z. B. Unzulässige ANY-Referenz.
0 1 80C4H 0..10 Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im
Anwenderprogramm sinnvoll.
0 1 80D2H 0..10 Logische Basisadresse falsch.

Programmbausteine für SIMATIC NET S7-CPs


238 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS
4.3 Mengengerüst / Ressourcenbedarf der Programmbausteine (PROFIBUS)

4.3 Mengengerüst / Ressourcenbedarf der Programmbausteine


(PROFIBUS)

Ressourcen-Bedarf

ACHTUNG

Beachten Sie die Versionsangabe der Bausteine. Die aktuell mitgelieferten


Bausteinversionen können von den hier angegebenen Bausteinversionen abweichen. Bei
Bausteinen mit anderen Ausgabeständen kann der Ressourcenbedarf abweichen.
Angaben zu den aktuellen Bausteinversionen finden Sie unter folgender Beitrags-ID:
9836605 (http://support.automation.siemens.com/WW/view/de/9836605)

Tabelle 4- 11 Angaben für FCs / FBs bei S7-400

NAME Version FC/FB Nr. Ladespeicher Arbeitsspeicher MC7 Lokaldaten


Bytes Bytes Bytes Bytes
AG_SEND 1.1 FC5 732 576 540 20
AG_RECV 1.1 FC6 656 522 486 20
AG_LSEND 3.0 FC50 1044 846 810 52
AG_LRECV 3.0 FC60 1190 992 956 58

Tabelle 4- 12 Angaben für FCs / FBs bei S7-300

NAME Version FC/FB Nr. Ladespeicher Arbeitsspeicher MC7 Lokaldaten


Bytes Bytes Bytes Bytes
DP_SEND 3.0 FC1 1066 886 850 42
DP_RECV 3.0 FC2 1144 950 914 46
DP_DIAG 3.0 FC3 1956 1638 1602 58
DP_CTRL 3.0 FC4 1532 1292 1256 52
AG_SEND 4.2 FC5 1976 1664 1628 50
AG_RECV 4.7 FC6 1440 1206 1170 40

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 239
Programmbausteine für PROFIBUS
4.3 Mengengerüst / Ressourcenbedarf der Programmbausteine (PROFIBUS)

Programmbausteine für SIMATIC NET S7-CPs


240 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS 5
5.1 Anwendung in der Übersicht

Übersicht
Für die FMS-Kommunikation stehen für eine S7-Station die folgenden Funktionsbausteine
zur Verfügung.
Die Liste gibt die bei der Lieferung verwendeten Bausteinnummern an. Die
Bausteinnummern können von Ihnen geändert werden.

Funktionsbaustein verwendbar in der Funktion Bedeutung /


des PROFIBUS-CP als: Funktion
Typ Busteinnummer FMS-Client FMS-Server
IDENTIFY FB2 X X für die Abfrage von
Gerätemerkmalen
READ FB3 X - für Daten Lesen
REPORT FB4 - X für Daten unbestätigt übermitteln
STATUS FB5 X X für Statusabfrage
WRITE FB6 X - für Daten Schreiben

Unterscheidung S7-300 und S7-400


Es werden unterschiedliche FBs für S7-300 und S7-400 geliefert. Greifen Sie auf die
entsprechende Bausteinbibliothek (SIMATIC_NET_CP) zu, abhängig davon, ob Sie ein
Anwenderprogramm für S7-300 oder S7-400 erstellen.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 241
Programmbausteine für PROFIBUS FMS
5.2 FMS-Bausteinparameter

5.2 FMS-Bausteinparameter

FB Aufrufschnittstellen
In den folgenden Kapiteln wird für jeden FB die Aufrufschnittstelle in der folgenden Form
angegeben:

)%[

%22/ 5(4 '21( %22/

':25' ,' (5525 %22/

67$786 :25'

%<7( 3+<6 %<7(

%<7( /2* %<7(

$1< /2&$/ $1<

Je nach FB-Typ finden Sie unterschiedliche Parameter vom Typ INPUT, OUTPUT oder
INOUT vor.
Die folgenden Tabellen erläutern die Bedeutung, Datentyp, Wertebereich und
Speicherbereich für alle vorkommenden Bausteinparameter.

INPUT-Parameter

INPUT-Parameter Bedeutung Datentyp Wertebereich / verwendet


Speicherbereich in FB
REQ Flankensignal für die BOOL 0=FALSE; 1=TRUE 2 3 4 5 6
Ausführung des Bausteins. 0->1: "starten"/
E,A,M,D,L
ID Diese Kennung identifiziert DWORD 0001 0001 .. FFFF 2 3 4 5 6
die FMS-Verbindung. (bei FB 1: FFFF /
bei S7-300: WORD) E,A,M,D,L
Die ID spezifiziert sowohl
die LAN-Verbindung als
auch die P-Bus-Adresse.
bei S7-400:
Die ID spezifiziert sowohl
die LAN-Verbindung als
auch die K-Bus-
Verbindung.
Sie müssen die ID aus der
Verbindungsprojektierung
übernehmen bzw. mit
dieser abgleichen!

Programmbausteine für SIMATIC NET S7-CPs


242 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS
5.2 FMS-Bausteinparameter

INPUT-Parameter Bedeutung Datentyp Wertebereich / verwendet


Speicherbereich in FB
VAR_1 Der Parameter adressiert ANY String: 2 3 4 - 6
die ferne Max. Länge = 254
Kommunikationsvariable, Bytes
die gelesen oder z. B.
geschrieben werden soll. '<102>' (Indexzugriff)
Angegeben werden kann, "SLAVE2" (Zugriff über
je nach Projektierung beim Name)
FMS-Server, ein Name DB
oder ein Index.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 243
Programmbausteine für PROFIBUS FMS
5.2 FMS-Bausteinparameter

INPUT-Parameter Bedeutung Datentyp Wertebereich / verwendet


Speicherbereich in FB
SD_1 Adresse eines lokalen ANY Dieser Typ entspricht - - 4 - 6
Datenbereiches, aus dem einer Referenz auf
Variablen übertragen einem DB, E/A-
werden sollen. Prozessabbild oder
Merkerbereich.
Beispiel:
SD_1 :=
P#DB17.DBX0.0 BYTE
16
In diesem Beispiel
werden die ersten 16
Bytes des DB 17
übertragen.
E,A,M,D,L,Z,T, DBx
RD_1 Adresse eines lokalen ANY Dieser Typ entspricht - 3 - - -
Datenbereiches, in den einer Referenz auf
Variablen übertragen einem DB, E/A-
werden sollen. Prozessabbild oder
Merkerbereich.
Beispiel:
RD_1 :=
P#DB17.DBX0.0 BYTE
16
In diesem Beispiel
werden die ersten 16
Bytes des DB 17
übertragen.
E,A,M,D,L, DBx
Hinweis für Array of
Byte bei S7-300:
Bei einer ungeraden
Anzahl zu lesender
Bytes müssen Sie die
Länge des
Empfangsbereiches auf
die nächst höhere
gerade Anzahl Bytes
auslegen
Beispiel:
für ein Array[1..13] of
Byte müssen Sie die
Empfangspuffergröße
auf 14 Byte reservieren.

Programmbausteine für SIMATIC NET S7-CPs


244 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS
5.2 FMS-Bausteinparameter

OUTPUT-Parameter

OUTPUT-Parameter Bedeutung Datentyp Wertebereich / verwendet in


Speicherbereich FB
DONE Zeigt die Abarbeitung des BOOL 0=FALSE - - 4 - 6
Auftrags an. 1=TRUE: Auftrag ist fertig;
E,A,M,D,L
NDR Zeigt den Empfang von BOOL 0=FALSE 2 3 - 5 -
Daten an. 1=TRUE: neue Daten wurden
übernommen;
E,A,M,D,L
ERROR Zeigt an, ob ein Fehler BOOL 0=FALSE 2 3 4 5 6
aufgetreten ist. 1=TRUE: Fehler ist aufgetreten;
E,A,M,D,L
STATUS Gibt nach Abarbeitung des WORD Entnehmen Sie die detaillierten 2 3 4 5 6
Auftrages detaillierte Entschlüsselungen den
Auskunft über Warnungen nachfolgenden Kapiteln.
oder Fehler. E,A,M,D,L

INPUT/OUTPUT-Parameter

INOUT-Parameter Bedeutung Datentyp Wertebereich / verwendet in FB


Speicherbereich
PHYS Zeigt den physikalischen BYTE 0...3 - - - 5 -
Zustand des E,A,M,D,L
Partnergerätes (VFD) an.
LOG Zeigt den logischen BYTE 0...3 - - - 5 -
Zustand des E,A,M,D,L
Partnergerätes (VFD) an.
LOCAL Parameter "local detail" ANY Das Detail kann bis zu 16 Byte - - - 5 -
des Partners umfassen.
E,A,M,D,L
VENDOR Name des STRING Länge<255 2 - - - -
Geräteherstellers D
MODEL Name des Gerätemodells STRING Länge<255 2 - - - -
D
REVISION Ausgabestand des STRING Länge<255 2 - - - -
Gerätes D

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 245
Programmbausteine für PROFIBUS FMS
5.2 FMS-Bausteinparameter

Speicherbereich
Die in der Tabelle in Kurzform angegebenen Speicherbereiche entsprechen:

Kurzform Typ
E Eingang
A Ausgang
M Merker
L temporäre Lokaldaten
D Datenbaustein-Bereich
Z Zähler
T Timer
DBX Datenbaustein

FB-Ausgabeparameter beim CP-Anlauf (S7-400)


Wenn der FB aufgerufen und aktiviert wird ( REQ:0->1, EN_R=1), während der PROFIBUS-
CP (z. B. wegen Netz aus/ein, Schalterbetätigung) hochläuft, sind folgende
Ausgabeparameter möglich:
● DONE = 0
● NDR = 0
● ERROR = 1
● STATUS = 0001 (Verbindung ist noch nicht aufgebaut) bzw.
STATUS = 0607 (Get-OV läuft noch)

Programmbausteine für SIMATIC NET S7-CPs


246 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS
5.3 IDENTIFY

5.3 IDENTIFY

5.3.1 Bedeutung und Aufruf - IDENTIFY

Bedeutung des Bausteins


Über den Funktionsbaustein IDENTIFY können Sie folgende Informationen über das
Partnergerät (bei S7-Stationen über die CPU) einholen:
● Name des Geräteherstellers
● Name des Gerätemodells
● Ausgabestand des Gerätes
Abhängig von diesen Informationen können Sie beispielsweise
● die lokale Programmfunktion auf die Leistungen und das Verhalten des Partners
einstellen;
● Kommunikationsparameter einstellen;

Aufrufschnittstelle

,'(17,)<

%22/ 5(4 1'5 %22/

':25' ,' (5525 %22/

67$786 :25'

9(1'25 675,1*

02'(/ 675,1*

5(9,6,21 675,1*

Beispiel in AWL-Darstellung

AWL Erläuterung
call FB 2, DB 22 ( //IDENTIFY Bausteinaufruf mit Instanz-DB
REQ := M 1.0, //Flankensignal für die Ausführung des FB
ID := DW#16#10001, //mit Projektierung der FMS-Verbindung
// abgeglichen
NDR := M 1.1, //zeigt an, wenn "neue Daten übernommen"
ERROR := M 1.2, //zeigt fehlerhafte Ausführung an
STATUS := MW 20, //detaillierte Fehlerentschlüsselung
VENDOR := "SLAVE2".VENDOR_ABBILD, //Datenbereich für Herstellername
MODEL := "SLAVE2".MODEL_ABBILD, //Datenbereich für Gerätetyp
REVISION := "SLAVE2".REV_ABBILD ); //Datenbereich für Ausgabestand

Zusatzinformation

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 247
Programmbausteine für PROFIBUS FMS
5.3 IDENTIFY

"SLAVE2"
ist der symbolische Name eines Datenbausteins. Dieser Name ist in der dazugehörigen
Symboltabelle definiert.
VENDOR_ABBILD, MODEL_ABBILD und REVISION_ABBILD
sind Variablen des Datentyps STRING. Diese sind im Datenbaustein "SLAVE2" definiert.

5.3.2 Arbeitsweise - IDENTIFY

Arbeitsweise
Die folgende Ablaufdarstellung zeigt den normalen zeitlichen Ablauf eines IDENTIFY-
Auftrages.
Der Auftrag wird durch einen (positiven) Flankenwechsel des Parameters REQ aktiviert.
Jeder IDENTIFY-Auftrag des Anwenderprogrammes wird mit einer Anzeige in den
Ausgabeparametern NDR, ERROR und STATUS vom PROFIBUS-CP quittiert.

)06&OLHQW )066HUYHU
$QZHQGHUSURJUDPP 352),%86&3 352),%86&3
&38=\NOXV

,13873DUDPHWHU
YHUVRUJHQ
&$//)% 5(4 

,13873DUDPHWHU
YHUVRUJHQ
&$//)% 5(4 

^
,'(17,)<3'8
$EIUDJH ;;
O¦XIW ;;
,GHQWLILNDWLRQVGDWHQ
DXVOHVHQ
,'(17,)<

^  &RQILUPHG3'8

6WDWXVDQ]HLJH
OLHJWYRU
=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH1'5(552567$786

Programmbausteine für SIMATIC NET S7-CPs


248 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS
5.4 READ

5.4 READ

5.4.1 Bedeutung und Aufruf - READ

Bedeutung
Der Funktionsbaustein READ liest Daten aus einem über Namen oder Index spezifizierten
Datenbereich des Kommunikationspartners, je nach Auftragsparametrierung. Die gelesenen
Daten werden lokal in einem Datenbaustein, einem Bereich im Prozessabbild der Ein-
/Ausgänge oder in einem Merkerbereich abgelegt.

Voraussetzung: Kommunikationsvariable projektieren


Die Struktur der Variablen ist beim Kommunikationspartner (FMS-Server) festgelegt. Beim
Aufbau der FMS-Verbindung wird die Strukturbeschreibung beim Kommunikationspartner
ausgelesen. Diese steht dann auf dem PROFIBUS-CP für die Konvertierung der Daten in die
FMS-Darstellung zur Verfügung.
Die Strukturbeschreibung wird nur dann beim Verbindungsaufbau gelesen, wenn die
Kommunikationsvariable bei der Projektierung der FMS-Verbindung ausgewählt wurde.

Gesetzte Zugriffsrechte beachten


Beachten Sie, dass für die Datenübertragung Zugriffsrechte gesetzt sein können. Die
Übertragung ist dann nur möglich, wenn entsprechende Rechte für den FMS-Client zugeteilt
sind.

FB Aufrufschnittstelle

5($'

%22/ 5(4 1'5 %22/

':25' ,' (5525 %22/

$1< 9$5B 67$786 :25'

$1< 5'B

Beispiel in AWL-Darstellung

AWL Erläuterung
call FB 3, DB 29 ( //READ Bausteinaufruf mit Instanz-DB
REQ := M 1.0, //Flankensignal für die Ausführung des FB
ID := DW#16#10001, //mit Projektierung der FMS-Verbindung
// abgeglichen

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 249
Programmbausteine für PROFIBUS FMS
5.4 READ

AWL Erläuterung
VAR_1 := "SLAVE2".INDEX, //adressiert K.-Variable, die gelesen werden soll
RD_1 := "PROZESS".Motor1, //adressiert Datenbereich, in den übertragen wird
NDR := M 1.1, //Ausführungsbestätigung
ERROR := M 1.2, //zeigt fehlerhafte Ausführung an
STATUS := MW 20 ); //detaillierte Fehlerentschlüsselung

5.4.2 Arbeitsweise READ

Arbeitsweise
Die folgende Ablaufdarstellung zeigt den normalen zeitlichen Ablauf einer mit READ im
Anwenderprogramm angestoßenen Datenübernahme.
Der Auftrag wird durch einen (positiven) Flankenwechsel des Parameters REQ aktiviert.
Jeder READ Auftrag des Anwenderprogrammes wird mit einer Anzeige in den
Ausgabeparametern NDR, ERROR und STATUS vom PROFIBUS-CP quittiert.

)06&OLHQW )066HUYHU
$QZHQGHUSURJUDPP 352),%86&3 352),%86&3
&38=\NOXV

,13873DUDPHWHU
YHUVRUJHQ
&$//)% 5(4 

,13873DUDPHWHU
YHUVRUJHQ
&$//)% 5(4 

^
5($'5HTXHVW3'8
/HVHYRUJDQJ ;;
O¦XIW ;;
/HVHQGHU'DWHQDXVGHP
$QZHQGHUGDWHQEHUHLFK
XQG.RQYHUWLHUXQJLQ
)06)RUPDW
5($'

^
&RQILUPHG3'8

/HVHYRUJDQJ
DEJHVFKORVVHQ
=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH1'5(552567$786

Gewährleistung der Datenübertragung


Die Darstellung zeigt, dass mit der Anzeige NDR=1, ERROR=0 und STATUS=0000 das
erfolgreiche Auslesen bestätigt wird.

Programmbausteine für SIMATIC NET S7-CPs


250 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS
5.4 READ

Die positive Bestätigung des Leseauftrages besagt nicht unbedingt, dass der Lesevorgang
von der Partnerapplikation registriert wurde.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 251
Programmbausteine für PROFIBUS FMS
5.5 REPORT

5.5 REPORT

5.5.1 Bedeutung und Aufruf - REPORT

Bedeutung des Bausteins


Der Funktionsbaustein REPORT (Melden) ermöglicht einem FMS-Server die unbestätigte
Übertragung von Variablen. Diese Auftragsart wird insbesondere auch zur Übertragung auf
Broadcast FMS-Verbindungen genutzt.
Die Struktur der zu meldenden Variablen muss per Projektierung lokal (FMS-Server)
festgelegt worden sein.

S7-Station als Kommunikationspartner


Damit die gemeldeten Variablen beim Kommunikationspartner entgegengenommen werden
können, müssen diese bei der Projektierung des Kommunikationspartners (FMS-Client)
eingetragen werden.

Aufrufschnittstelle

5(3257

%22/ 5(4 '21( %22/

':25' ,' (5525 %22/

$1< 6'B 67$786 :25'

$1< 9$5B

Beispiel in AWL-Darstellung

AWL Erläuterung
call FB 4, DB 28 ( //REPORT Bausteinaufruf mit Instanz-DB
REQ := M 1.0, //Flankensignal für die Ausführung des FB
ID := DW#16#10001, //mit Projektierung der FMS-Verbindung abgeglichen
VAR_1 := "SLAVE2".INDEX, //benennt K.-Variable, die gemeldet werden soll
SD_1 := "PROZESS".Motor1, //adressiert Datenbereich, aus dem übertragen wird
DONE := M 1.1, //Ausführungsbestätigung
ERROR := M 1.2, //zeigt fehlerhafte Ausführung an
STATUS := MW 20 ); //detaillierte Fehlerentschlüsselung

Programmbausteine für SIMATIC NET S7-CPs


252 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS
5.5 REPORT

ACHTUNG

Mit dem Parameter SD_1 wird der Datenbereich adressiert, aus dem die Variablenwerte
gelesen und gemeldet werden. Entsprechend den FMS-Konventionen müssen Sie
zusätzlich den Variablenindex an der FC-Schnittstelle angeben. Die Konsistenz der beiden
Angaben wird bei der Aufrufbearbeitung jedoch nicht geprüft.

5.5.2 Arbeitsweise REPORT

Arbeitsweise
Die folgende Ablaufdarstellung zeigt den normalen zeitlichen Ablauf einer mit REPORT im
Anwenderprogramm angestoßenen Datenübertragung.
Der Auftrag wird durch einen (positiven) Flankenwechsel des Parameters REQ aktiviert.
Jeder REPORT Auftrag des Anwenderprogrammes wird mit einer Anzeige in den
Ausgabeparametern DONE, ERROR und STATUS vom PROFIBUS-CP quittiert.

)066HUYHU )06&OLHQW
$QZHQGHUSURJUDPP 352),%86&3 352),%86&3
&38=\NOXV

,13873DUDPHWHU
YHUVRUJHQ
&$//)% 5(4 

,13873DUDPHWHU
YHUVRUJHQ
&$//)% 5(4 

5(32573'8


^
.RQYHUWLHUXQJGHU'DWHQ
0HOGHYRUJDQJ DXVGHP)06)RUPDW
DEJHVFKORVVHQ XQG(LQWUDJLQGHQ
$QZHQGHUGDWHQEHUHLFK

=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH'21((552567$786

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 253
Programmbausteine für PROFIBUS FMS
5.6 STATUS

5.6 STATUS

5.6.1 Bedeutung und Aufruf - STATUS

Bedeutung des Bausteins


Der Funktionsbaustein STATUS ermöglicht es, Statusinformationen beim
Kommunikationspartner auf der angegebenen FMS-Verbindung anzufordern.
Unterschieden werden:
● der logische Status der VFD;
gibt z. B. Auskunft über die Kommunikationsbereitschaft.
● der physikalische Status der VFD;
gibt Auskunft über den Gerätezustand.
● gerätespezifische Detailinformationen;
liefert eine meist herstellerspezifische Zusatzinformation.
Die folgende Tabelle gibt Aufschluss über die Anzeigen, die ein Gerät aufgrund einer
Statusabfrage liefern kann:

Gerät Meldungsvariante Log Phys Local Detail


S7 mit 1 00H: 10H: kein Eintrag
PROFIBUS-CP Kommunikations- Betriebsbereit,
bereit, CP in RUN, CPU in RUN
CPU in RUN
2 02H: 13H: kein Eintrag
Anzahl der Wartung
Dienste begrenzt, erforderlich, CPU
CP im RUN, CPU in STOP
in STOP
Fremdgerät generell möglich 00H: 10H: - hersteller-
sind: Kommunikations- Betriebsbereit spezifisch -
bereit
02H: 11H
Anzahl der Teilweise
Dienste begrenzt betriebsbereit
12H
Nicht
betriebsbereit
13H
Wartung
erforderlich

Programmbausteine für SIMATIC NET S7-CPs


254 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS
5.6 STATUS

Aufrufschnittstelle

)%

%22/ 5(4 1'5 %22/

':25' ,' (5525 %22/

67$786 :25'

%<7( 3+<6 %<7(

%<7( /2* %<7(

$1< /2&$/ $1<

Beispiel in AWL-Darstellung

AWL Erläuterung
call FB 5, DB 21 ( //STATUS Bausteinaufruf mit Instanz-DB
REQ := M 1.0, //Flankensignal für die Ausführung des FB
ID := DW#16#10001, //mit Projektierung der FMS-Verbindung abgeglichen
NDR := M 1.1, //zeigt an, wenn "neue Daten übernommen"
ERROR := M 1.2, //zeigt fehlerhafte Ausführung an
STATUS := MW 20, //detaillierte Fehlerentschlüsselung
PHYS := MB 22, //Datenbereich für physikalischen Status
LOG := MB 23, //Datenbereich für logischen Status
LOCAL := P#DB18.DBX0.0 WORD8 ); //Datenbereich für "local detail"

5.6.2 Arbeitsweise STATUS

Arbeitsweise
Die folgende Ablaufdarstellung zeigt den normalen zeitlichen Ablauf eines STATUS-
Auftrages.
Der Auftrag wird durch einen (positiven) Flankenwechsel des Parameters REQ aktiviert.
Jeder STATUS-Auftrag des Anwenderprogrammes wird mit einer Anzeige in den
Ausgabeparametern NDR, ERROR und STATUS vom PROFIBUS-CP quittiert.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 255
Programmbausteine für PROFIBUS FMS
5.6 STATUS

)06&OLHQW )066HUYHU
$QZHQGHUSURJUDPP 352),%86&3 352),%86&3
&38=\NOXV

,13873DUDPHWHU
YHUVRUJHQ
&$//)% 5(4 

,13873DUDPHWHU
YHUVRUJHQ
&$//)% 5(4 

^
67$7863'8
6WDWXVDEIUDJH ;;
O¦XIW ;;
6WDWXVLQIRUPDWLRQ
EHUHLWVWHOOHQ
67$786

^  &RQILUPHG3'8

6WDWXVDQ]HLJH
OLHJWYRU
=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH1'5(552567$786

Programmbausteine für SIMATIC NET S7-CPs


256 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS
5.7 WRITE

5.7 WRITE

5.7.1 Bedeutung und Aufruf - WRITE

Bedeutung
Der FB WRITE überträgt Daten aus einem angegebenen lokalen Datenbereich in einen
Datenbereich des Kommunikationspartners. Der lokale Datenbereich kann ein
Datenbaustein, ein Bereich im Prozessabbild der Ein-/Ausgänge oder ein Merkerbereich
sein.(vgl. Parameter SD_1, FMS Bausteinparameter (Seite 242))
Der Datenbereich des Kommunikationspartners wird über einen Variablennamen oder einen
Variablenindex angeben.

Voraussetzung: Kommunikationsvariable projektieren


Die Struktur der Variablen ist beim Kommunikationspartner (FMS-Server) festgelegt. Beim
Aufbau der FMS-Verbindung wird die Strukturbeschreibung beim Kommunikationspartner
ausgelesen. Diese steht dann auf dem PROFIBUS-CP für die Konvertierung der Daten in die
FMS-Darstellung zur Verfügung.
Die Strukturbeschreibung wird nur dann beim Verbindungsaufbau gelesen, wenn die
Kommunikationsvariable bei der Projektierung der FMS-Verbindung ausgewählt wurde.

Gesetzte Zugriffsrechte beachten


Beachten Sie, dass für die Datenübertragung Zugriffsrechte gesetzt sein können. Die
Übertragung ist dann nur möglich, wenn entsprechende Rechte für den FMS-Client zugeteilt
sind.

Aufrufschnittstelle

:5,7(

%22/ 5(4 '21( %22/

':25' ,' (5525 %22/

$1< 9$5B 67$786 :25'

$1< 6'B

Beispiel in AWL-Darstellung

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 257
Programmbausteine für PROFIBUS FMS
5.7 WRITE

AWL Erläuterung
call FB 6, DB 28 ( //WRITE Bausteinaufruf mit Instanz-DB
REQ := M 1.0, //Flankensignal für die Ausführung des FB
ID := DW#16#10001, //mit Projektierung der FMS-Verbindung abgeglichen
VAR_1 := "SLAVE2".INDEX, //benennt K.-Variable, die geschrieben werden soll
SD_1 := "PROZESS".Motor1, //adressiert Datenbereich, aus dem übertragen wird
DONE := M 1.1, //Ausführungsbestätigung
ERROR := M 1.2, //zeigt fehlerhafte Ausführung an
STATUS := MW 20 ); //detaillierte Fehlerentschlüsselung

Programmbausteine für SIMATIC NET S7-CPs


258 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS
5.7 WRITE

5.7.2 Arbeitsweise WRITE

Arbeitsweise
Die folgende Ablaufdarstellung zeigt den normalen zeitlichen Ablauf einer mit WRITE im
Anwenderprogramm angestoßenen Datenübertragung.
Der Auftrag wird durch einen (positiven) Flankenwechsel des Parameters REQ aktiviert.
Jeder WRITE Auftrag des Anwenderprogrammes wird mit einer Anzeige in den
Ausgabeparametern DONE, ERROR und STATUS vom PROFIBUS-CP quittiert.

)06&OLHQW )066HUYHU
$QZHQGHUSURJUDPP 352),%86&3 352),%86&3
&38=\NOXV

,13873DUDPHWHU
YHUVRUJHQ
&$//)% 5(4 

,13873DUDPHWHU
YHUVRUJHQ
&$//)% 5(4 

:5,7(5HTXHVW3'8

^
PLW'DWHQ
6FKUHLEYRUJDQJ ;;
O¦XIW ;;
.RQYHUWLHUXQJGHU'DWHQ
DXVGHP)06)RUPDW
XQG(LQWUDJLQGHQ
$QZHQGHUGDWHQEHUHLFK
:5,7(

^  &RQILUPHG3'8

6FKUHLEYRUJDQJ
DEJHVFKORVVHQ
=HLW =HLW =HLW


3DUDPHWHU¾EHUJDEH'21((552567$786

Gewährleistung der Datenübertragung


Die Darstellung zeigt, dass mit der Bestätigung DONE=1, ERROR=0 und STATUS=0000
eine Übertragung der Daten zum Kommunikationspartner und der Eintrag im fernen
Datenbereich gewährleistet ist.
Die positive Bestätigung des Auftrages besagt nicht unbedingt, dass die Daten von der
Partnerapplikation bereits entgegengenommen bzw. verarbeitet wurden.

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 259
Programmbausteine für PROFIBUS FMS
5.8 Anzeigen und Fehlermeldungen - FMS Bausteine

5.8 Anzeigen und Fehlermeldungen - FMS Bausteine

Aufbau der Tabellen


Entnehmen Sie den folgenden Tabellen die Anzeigen und Fehlercodes, die Sie in Ihrem
Anwenderprogramm hantieren müssen. Die Bedeutungen der Parameter DONE/NDR,
ERROR und STATUS sind in FMS Bausteinparameter (Seite 242) - erläutert
Zur besseren Übersicht sind die Fehlercodes nach folgendem Schema aufgelistet:

9RP)063DUWQHU
/RNDOHUNDQQWH)HKOHU
HUNDQQWH)HKOHU

DXIJHVFKO¾VVHOWQDFK
)HKOHUNODVVH (UO¦XWHUXQJVLHKH7DEHOOHXQWHQ
)HKOHUFRGH%HGHXWXQJ VLHKH7DEHOOHXQWHQ

Fehlerfreie Auftragsbearbeitung
Eine fehlerfreie Auftragsbearbeitung liefert folgende Anzeigen an der FB-Schnittstelle:

DONE/NDR ERROR STATUS Bedeutung


1 0 0x0000 Auftrag fertig ohne Fehler
0 0 0x000B Auftrag läuft

Fehlerklassen
Die möglichen Fehlercodes werden in folgende Fehlerklassen gruppiert:

Tabelle 5- 1 Fehlerklasse "Baustein"

Fehlerklasse Bedeutung
Baustein Bezeichnet Fehler oder Probleme bzgl.:
 FB-Parametrierung;
 Bausteinbearbeitung in CPU und CP.
Applikation Bezeichnet Fehler oder Probleme an der Schnittstelle zwischen
Anwenderprogramm und FB.
Definition Bezeichnet Fehler, die meist auf Inkonsistenzen zwischen Anwenderprogramm
und FMS-Projektierung hinweisen.
Betriebsmittel Bezeichnet Betriebsmittel-(Ressourcenprobleme) des PROFIBUS-CP.
Dienst Bezeichnet Fehler oder Probleme im Zusammenhang mit dem angeforderten
FMS-Dienst.

Programmbausteine für SIMATIC NET S7-CPs


260 Programmierhandbuch, 09/2011, C79000-G8900-C229-04
Programmbausteine für PROFIBUS FMS
5.8 Anzeigen und Fehlermeldungen - FMS Bausteine

Fehlerklasse Bedeutung
Zugriff Meldet zurückgewiesene Objektzugriffe aufgrund von:
 fehlenden Zugriffsrechten;
 Hardwareproblemen;
 sonstige Inkonsistenzen.
OV (Objekt- Bezeichnet Probleme beim Zugriff auf das Objektverzeichnis des VFD.
verzeichnis)
VFD-Status Nicht näher spezifiziertes Fehlerbild des VFD.
sonst sonstige Fehlerbilder

5.8.1 Lokal erkannte Fehler

Tabelle 5- 2 Fehlerklasse "Applikation"

DONE/NDR ERROR STATUS Bedeutung


0 1 0x0001 Kommunikationsproblem:
z. B. K-Bus-Verbindung wurde nicht aufgebaut.
0 1 0x0002 Funktion ist nicht ausführbar: entweder negative
Quittung vom CP oder Fehler in der Sequenzfolge
z. B. K-BUS-Protokollfehler.
0 1 0x0003 Die Verbindung ist nicht projektiert (ungültige ID
angegeben). Wenn die Verbindung doch projektiert
ist, dann deutet die Fehlermeldung darauf hin, dass
die zulässige Parallelität der Auftragsbearbeitung
überschritten ist. Beispiel: SAC = 0 projektiert und
es wird ein REPORT-Auftrag abgesetzt.
0 1 0x0004 Der Empfangsdatenbereich ist zu kurz oder die
Datentypen stimmen nicht überein.
0 1 0x0005 Eine Reset-Anforderung ist vom CP eingetroffen
(BRCV).
0 1 0x0006 Korrespondierende Auftragsbearbeitung im CP ist
im Zustand DISABLED oder Reset-Anforderung ist
vom CP eingetroffen; dadurch unvollständige
Übertragung.
0 1 0x0007 Korrespondierende Auftragsbearbeitung im CP ist
im falschen Zustand.
Bei REPORT: der Fehler ist im Diagnosepuffer
näher spezifiziert.
0 1 0x0008 Auftragsbearbeitung des CPs meldet Zugriffsfehler
auf Anwenderspeicher.
0 1 0x000A Zugriff auf lokalen Anwenderspeicher ist nicht
möglich (z. B. wurde der DB gelöscht).

Programmbausteine für SIMATIC NET S7-CPs


Programmierhandbuch, 09/2011, C79000-G8900-C229-04 261
Programmbausteine für PROFIBUS FMS
5.8 Anzeigen und Fehlermeldungen - FMS Bausteine

DONE/NDR ERROR STATUS Bedeutung


0 1 0x000C Beim Aufruf des unterlagerten BSEND- oder BRCV-
SFBs wurde ein Instanz-DB, der nicht zum SFB 12 /
SFB 13 gehört angegeben oder es wurde kein
Instanz-DB benutzt, sondern ein Global-DB.
0 1 0x0014 Es ist zu wenig Arbeits- oder Ladespeicher
vorhanden.

DONE/NDR ERROR STATUS Bedeutung


0 1 0x0200 Unspezifizierter Applikationsreferenzfehler.
0 1 0x0201 Die projektierte Verbindung kann z. Zt. nicht
aufgebaut werden, z. B. LAN-Verbindung nicht
aufgebaut.

Tabelle 5- 3 Fehlerklasse "Definition"

DONE/NDR ERROR STATUS Bedeutung


0 1 0x0300 Unspezifizierter Definitionsfehler.
0 1 0x0301 Objekt mit angefordertem Index/Namen ist nicht
definiert.
0 1 0x0302 Objektattribute sind inkonsistent.
0 1 0x0303 Name existiert bereits.

Tabelle