|
Beschreibung Für den Datenaustausch über die integrierte PROFINET-Schnittstelle einer CPU können Sie u. a. die offene Kommunikation über Industrial Ethernet nutzen. Hierbei werden folgende Protokolle unterstützt:
Für die offene Kommunikation über Industrial Ethernet mittels UDP Protokoll stehen folgende Kommunikationsbausteine zur Verfügung:
- FB65 "TCON" zum Einrichten des UDP-Endpunktes
- FB66 "TDISCON" Abschalten des UDP-Endpunktes
- FB67 "TUSEND" zum Senden von Daten
- FB68 "TURCV" zum Empfangen von Daten
Diese Kommunikationsbausteine finden Sie in der Standard Library -> Communication Blocks.
Kopieren Sie die aktuelle Version der o. g. Funktionsbausteine aus der Standard Library in Ihr Anwenderprogramm und rufen Sie diese in Ihrem Anwenderprogramm auf.
Die Parameter zur Einrichtung des UDP-Endpunktes sind in einer Datenstruktur gespeichert. In diesem Beispiel wird die Datenstruktur UDT65 "TCON_PAR" verwendet, die vom Anwender selbst parametriert wird. Es wird keine Kommunikationsverbindung in NetPro konfiguriert.
Beschreibung des Programmbeispiels Das S7-Programm beinhaltet den Aufruf des FB65 "TCON" und die Datenstruktur UDT65 "TCON_PAR" mit den Parametern zum Einrichten des UDP-Endpunktes. Des Weiteren beinhaltet das S7-Programm den Aufruf der Kommunikationsbausteine FB67 "TUSEND" und FB68 "TURCV" aus der Standard Library -> Communication Blocks. Der FB67 "TUSEND" dient zum Senden von Daten an eine S7-Station, an eine PC-Station oder an ein Fremdsystem. Der FB68 "TURCV" dient zum Empfang der Daten einer S7-Station, einer PC-Station oder eines Fremdsystems.
Erstellen Sie zunächst die Hardware-Konfiguration ihrer S7-300 Station. Konfigurieren Sie das Merkerbyte 10 als Taktmerker. Über diesen Taktmerker wird der Sendeauftrag angestoßen. Speichern und übersetzen Sie die Hardware-Konfiguration Ihrer S7-300 Station und laden Sie diese in die CPU.
Das STEP 7-Programm besteht aus den Bausteinen OB100, OB1, FB500, DB500, FC95, FC96, UDT65, UDT66 und FB63, FB64, FB67 und FB68.
OB100 Der OB100 ist ein Anlauf-OB und wird beim Neustart (Warmstart) der CPU durchlaufen. In diesem OB wird mit Merker M0.3 die Freigabe für den ersten Kommunikationsanstoß erteilt.
OB1 Der OB1 wird zyklisch aufgerufen. Im OB1 wird der FB500 mit dem Instanz-Datenbaustein DB500 und mit Merker M0.3 als Parameter INIT_COM aufgerufen. Der Meker M0.3 wird im OB1 nach dem Aufruf des FB500 wieder zurückgesetzt.

Bild 01
FB500 Der FB500 wird zyklisch im OB1 aufgerufen.
Im FB500 werden die Funktionen FC95 "SET_UDP_REMOTE" und FC96 "SET_UDP_ENDPOINT" sowie die Funktionsbausteine FB65 "TCON", FB67 "TUSEND", FB68 "TURCV" und FB66 "TDISCON" aufgerufen.

Bild 02
An den Eingangsparametern der Funktion FC96 "SET_UDP_ENDPOINT" definieren Sie die Parameter des lokalen UDP-Endpunkts.
| Eingangsparameter |
Datentyp |
Beschreibung |
| ID |
Word |
Verbindungsnummer |
| DEV_ID |
Byte |
B#16#01 für die IM151-8 PN/DP CPU
B#16#02 für die CPU 31x-2PN/DP, IM154-8 CPU
B#16#03 für die CPU 319-3PN/DP
B#16#05 für die CPU 412-2PN, CPU 414-3 PN/DP, CPU 416-3 PN/DP |
| LOC_PORT |
DInt |
lokaler Port in der CPU
-zulässige Portnummern für S7-300 CPUs bis einschließlich V2.6 und S7-400 CPUs bis einschließlich V5.1: 2000 bis 5000
-zulässige Portnummern für S7-300 CPUs ab V2.7 und S7-400 CPUs ab V5.2: 1 bis 49151 |

Bild 03
An den Eingangsparametern der Funktion FC95 "SET_UDP_REMOTE" definieren Sie die Parameter des remoten UDP-Endpunkts.
| Eingangsparameter |
Datentyp |
Beschreibung |
| REM_PORT |
DInt |
remote Port des Kommunikationspartners
-zulässige Portnummern für S7-300 CPUs bis einschließlich V2.6 und S7-400 CPUs bis einschließlich V5.1: 2000 bis 5000
-zulässige Portnummern für S7-300 CPUs ab V2.7 und S7-400 CPUs ab V5.2: 1 bis 49151 |
| IP_ADDR1 |
Int |
IP-Adresse des Kommunikationspartners |
| IP_ADDR2 |
Int |
| IP_ADDR3 |
Int |
| IP_ADDR4 |
Int |
Hinweis Die Verbindungsnummer tragen Sie im Netzwerk 2 des FB500 ein. Diese wird in einer statischen Variable und somit im Instanz-Datenbaustein DB500 gespeichert.

Bild 04
Die Einrichtung des UDP-Endpunkts wird durch eine positive Flanke am Eingangsparameter "REQ" des FB65 "TCON" gestartet. Die Datenstruktur UDT65 "TCON_PAR" mit der Parametrierung des lokalen UDP-Endpunkts ist im Instanz-Datenbaustein des FB500 eingebunden.
Am Eingangsparameter "CONNECT" des FB65 "TCON" wird der Speicherbereich angegeben, der die Parametrierung des lokalen UDP-Endpunktes enthält.
Die Einrichtung des UDP-Endpunkts erfolgt beim Systemstart und bleibt solange bestehen bis dieser zum Beispiel gezielt mit dem FB66 "TDISCON" abgeschaltet wird, die CPU in STOP geht oder die Stromversorgung ausgeschalten wird.

Bild 05
Der Sendeauftrag wird über eine positive Flanke am Eingangsparameter "REQ" des FB67 "TUSEND" angestoßen. Der Anstoß des Sendeauftrags wird mit dem Taktmerker M10.6 und der Variable "C1.SEND_BUSY" gesteuert. Wenn der Sendeauftrag läuft, dann ist "C1.SEND_BUSY" gesetzt. Somit ist kein Anstoß eines neuen Sendeauftrags möglich.
Am Eingangsparameter "DATA" geben Sie den Speicherbereich an, der die zu sendenden Daten enthält.
Am Eingangsparameter "LEN" geben Sie die Anzahl der zu sendenden Bytes an.
Am Eingangsparameter "ADDR" geben Sie den Datenbereich an, in dem die IP-Adresse des Empfängers gespeichert ist. In diesem Beispiel sind die Adressparameter des Kommunikationspartners in der Datenstruktur UDT66 "TADDR_PAR" gespeichert. Diese ist im Instanz-Datenbaustein DB500 eingebunden.
Die Ausgangsparameter "DONE", "ERROR" und "STATUS" werden für die Auftragsauswertung benötigt.

Bild 06
Wenn der Sendauftrag erfolgreich abgeschlossen ist, dann wird "C1.SEND_BUSY" zurückgesetzt. Somit kann ein neuer Sendeauftrag angestoßen werden.
Wenn der Sendeauftrag mit Fehler abgeschlossen ist, dann wird "C1.SEND_BUSY" ebenfalls zurückgesetzt und der Wert des Ausgangsparameters "STATUS" des FB67 wird für eine Fehleranalyse gesichert.

Bild 07

Bild 08
Sobald der UDP-Endpunkt eingerichtet ist können die Daten empfangen werden.
Am Eingangsparameter "DATA" geben Sie die Adresse und Länge des Datenbereiches an, in dem die empfangenen Daten gespeichert werden.
Am Eingangsparameter "ADDR" geben Sie den Datenbereich an, in dem die IP-Adresse des Senders gespeichert ist. In diesem Beispiel sind die Adressparameter des Kommunikationspartners in der Datenstruktur UDT66 "TADDR_PAR" gespeichert. Diese ist im Instanzdaten-Baustein DB500 eingebunden.

Bild 09
Der Ausgangsparameter "NDR" dient als Anzeige dafür, dass neue Daten empfangen wurden. Der Ausgangsparameter RCVD_LEN gibt die Länge der empfangenen Daten an.
Wenn die Daten erfolgreich empfangen werden, dann wird der Wert des Ausgangsparameters "RCVD_LEN" gesichert.
Wenn die Daten nicht erfolgreich empfangen werden, dann wird der Wert des Ausgangsparameters "STATUS" gesichert und ausgewertet.

Bild 10
Mit dem FB66 "TDISCON" ist es möglich den UDP-Endpunkt gezielt abzuschalten. Der Auftrag zum Abschalten des UDP-Endpunkts wird durch eine positive Flanke am Eingangsparameter "REQ" des FB66 "TDISCON" gestartet.

Bild 11
Das STEP 7 Projekt als Download Das STEP 7-Projekt enthält ein Programmbeispiel für den Aufruf des FB500 sowie die Funktionen FC95 "SET_UDP_ENDPOINT", FC96 "SET_UDP_REMOTE", die Bausteine FB65 "TCON", FB66 "TDISCON", FB67 "TUSEND" und FB68 "TURECV" mit Statusauswertung. Es wurde mit STEP 7 V5.4 SP3 erstellt.
Sample_open_UDP.zip ( 44 KB )
Weitere UDP Verbindungen konfigurieren Um UDP-Datagramme an mehrere Kommunikationspartner zu senden, konfigurieren Sie weitere lokale und remote UDP-Endpunkte. Kopieren Sie den FB500, so dass Sie weitere Funktionsbausteine (z. B. FB501) erhalten. Ändern Sie die Parameter des lokalen und remoten UDP-Endpunkts und generieren Sie neue Instanz-Datenbausteine.
Die ID des lokalen UDP-Endpunktes ist aus dem Wertebereich 1 bis 4095 frei wählbar.
Der lokale und remote Port ist für S7-300 CPUs ab V2.7 und S7-400 CPUs ab V5.2 aus dem Wertebereich 1 bis 49151 frei wählbar.
Die ID und der Port muss für jeden lokalen UDP-Endpunkt eineindeutig sein, d.h. Sie müssen für jeden lokalen UDP-Endpunkt eine andere ID und einen anderen Port definieren.
Definieren Sie den remoten Port und die IP-Adresse entsprechend der Projektierung des Kommunikationspartners.
Die folgende Tabelle zeigt ein Beispiel für die Konfiguration mehrerer lokaler und remoter UDP-Endpunkte. In diesem Beispiel wird jeweils lokal und remote die selbe ID und der selbe Port verwendet.
| lokaler/remoter UDP-Endpunkt |
1 |
2 |
3 |
| ID |
1 |
2 |
3 |
| LOC_PORT |
2000 |
2001 |
2002 |
| REM_PORT |
2000 |
2001 |
2002 |
| IP-Adresse des Kommunikationspartners |
172.16.43.40 |
172.16.43.50 |
172.16.43.60 |
Weitere Informationen
- Ausführliche Informationen zur offenen Kommunikation über Industrial Ethernet finden Sie im Handbuch "System- und Standardfunktionen für S7-300/400 Band 1 und Band 2" unter der Beitrags-ID: 44240604.
- Eine Anleitung zur Projektierung einer UDP-Verbindung für die Kommunikation über S7-300 und S7-400 Industrial Ethernet CPs finden Sie unter der Beitrags-ID: 47885893.
|