Beitragstyp: FAQ, Beitrags-ID: 29738463, Beitragsdatum: 24.04.2015
(2)
Bewerten

Wie werden die Kommunikationsbausteine FB67 "TUSEND", FB68 "TURCV", FB65 "TCON" und FB66 "TDISCON" programmiert, um das UDP-Protokoll für den Datenaustausch über die integrierte PROFINET-Schnittstelle einer S7-300/S7-400 CPU zu nutzen?

  • Beitrag
  • Betrifft Produkt(e)
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:

  • TCP
  • ISO-on-TCP
  • UDP

Für die "Open User Commuication" über Industrial Ethernet mittels UDP-Protokoll stehen folgende Kommunikationsbausteine zur Verfügung:

  • FB65 "TCON" zum Einrichten des UDP-Endpunkts
  • FB66 "TDISCON" Abschalten des UDP-Endpunkts
  • 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-Endpunkts sind in einer Datenstruktur gespeichert. In diesem Beispiel wird die Datenstruktur "OUCW_2" verwendet. Diese ist im Datenbaustein DB1 hinterlegt und wird vom Anwender selbst parametriert.

Hinweis

  • Für eine einfache Einrichtung des UDP-Endpunkts nutzen Sie den "Open Communciation Wizard". Dieser steht Ihnen unter der Beitrags-ID "98957840! als Download zur Verfügung.
  • Die UDP-Verbindung wird nicht in NetPro konfiguriert.

Tabelle 01 zeigt den Aufbau der Datenstruktur "OUCW_2", in der die Parameter zur Einrichtung des UDP-Endpunkts gespeichert sind.
 

Byte Parameter Datentyp Beschreibung
0 bis 1 block_length WORD Länge der Datenstrucktur "OUCW_2"
2 bis 3 id BYTE Referenz auf diese Verbindung zwischen Anwenderprogramm und Kommunikationsschicht des Betriebssystems
Wertebereich: w#16#0001 bis w#16#0FFF
Den Wert dieses Parameters müssen Sie im jeweiligen Baustein bei ID angeben.
4 connection_type BYTE Protokollvariante UDP: B#16#13
5 active_est BOOL Kennung für die Art des Verbindungsaufbaus
Diesen Parameter müssen Sie mit FALSE belegen.
6 local_device_id BYTE Kommunikation über die integrierte PN-Schnittstelle der CPU 315-2 PN/DP: B#16#02
7 local_tsap_id_len BYTE Verwendete Länge des Parameters local_tsap_id: 2 Byte
8 rem_subnet_id_len BYTE Dieser Parameter wird derzeit nicht verwendet. Er ist mit B#16#00 belegt.
9 rem_staddr_len BYTE Dieser Parameter wird derzeit nicht verwendet. Er ist mit B#16#00 belegt.
10 rem_tsap_id_len BYTE Dieser Parameter wird derzeit nicht verwendet. Er ist mit B#16#00 belegt.
11 next_staddr_len BYTE Dieser Parameter wird derzeit nicht verwendet. Er ist mit B#16#00 belegt.
12 bis 27 local_tsap_id ARRAY
[1 ..16] of BYTE
Lokale Port-Nummer, z. B. 2000
local_tsap_id[1] = B#16#7 (high byte der Port-Nummer in hexadezimaler Darstellung)
local_tsap_id[2] = B#16#D0 (low byte der Port-Nummer in hexadezimaler Darstellung)
local_tsap_id[3-16] = B#16#00
28 bis 33 rem_subnet_id ARRAY
[1 ..6] of BYTE
Dieser Parameter wird derzeit nicht verwendet.
rem_subnet_id[1-6] = B#16#00
34 bis 39 rem_staddr ARRAY
[1 ..6] of BYTE
Dieser Parameter wird derzeit nicht verwendet.
rem_staddr[1-6] = B#16#00
40 bis 55 rem_tsap_id ARRAY
[1 ..16] of BYTE
Dieser Parameter wird derzeit nicht verwendet.
rem_tsap_id[1-16] = B#16#00
56 bis 61 next_staddr ARRAY
[1 ..6] of BYTE
Dieser Parameter wird derzeit nicht verwendet.
next_staddr[1-6] = B#16#0
62 bis 63 spare WORD Reserve, der Parameter ist mit W#16#0000 belegt.
Tabelle 01

Beschreibung des Programmbeispiels
Das S7-Programm beinhaltet den Aufruf des FB65 "TCON" und die Datenstruktur "OUCW_2", in der die Parameter zum Einrichten des UDP-Endpunkts gespeichert sind. Des Weiteren beinhaltet das S7-Programm den Aufruf der Funktionsbausteine 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 100 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, FB1, DB11, DB1, DB100, DB200 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 FB1 mit dem Instanz-Datenbaustein DB11, mit dem Merker M0.3 als Parameter INIT_COM und mit dem Merker M10.0 als Parameter ABORT aufgerufen. Der Merker M0.3 wird im OB1 nach dem Aufruf des FB1 wieder zurückgesetzt.


Bild 01

FB1
Der FB1 wird zyklisch im OB1 aufgerufen. Im FB1 werden folgende Funktionsbausteine aufgerufen:

  • FB65 "TCON"
  • FB67 "TUSEND"
  • FB68 "TURCV"
  • FB66 "TDISCON"

Verbindungsnummer definieren
Die Verbindungsnummer können Sie individuell ändern. Passen Sie die Verbindungsnummer im Netzwerk 2 des FB1 entsprechend Ihrer Konfiguration an.
Die Verbindungsnummer wird in einer statischen Variable und somit im Instanz-Datenbaustein DB11 gespeichert.
In diesem Beispiel wird die Verbindungsnummer "3" definiert.


Bild 02

Verbindungsaufbau
Die Einrichtung des UDP-Endpunkts wird durch eine positive Flanke am Eingangsparameter "REQ" des FB65 "TCON" gestartet. Die Datenstruktur "OUCW_2" mit der Parametrierung des lokalen UDP-Endpunkts ist im Datenbaustein DB1 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 ausgeschaltet wird.


Bild 03

Der Sendeauftrag wird über eine positive Flanke am Eingangsparameter "REQ" des FB67 "TUSEND" angestoßen. Der Anstoß des Sendeauftrags wird mit dem Taktmerker M100.6 und der Variablen "SEND_BUSY" gesteuert. Wenn der Sendeauftrag läuft, dann ist "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.
In diesem Beispiel sind die Sendedaten im DB100 gespeichert. Es werden 100 Bytes Daten an den Kommunikationspartner gesendet.
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 "OUCW_3" gespeichert. Diese ist im Datenbaustein DB1 eingebunden.
Die Ausgangsparameter "DONE", "ERROR" und "STATUS" werden für die Auftragsauswertung benötigt.


Bild 04

Tabelle 02 zeigt den Aufbau der Datenstruktur "OUCW_3", in der die Adressparameter des Kommunikationspartners gespeichert sind.
 

Byte Parameter Datentyp Beschreibung
0 bis 3 rem_ip_addr ARRAY
[1 .. 4] of BYTE
IP-Adresse des remoten Partners, z. B. 192.168.0.30
rem_ip_addr[1] = B#16#C0
rem_ip_addr[2] = B#16#A8
rem_ip_addr[3] = B#16#00
rem_ip_addr[4] = B#16#1E
4 bis 5 rem_port_nr ARRAY
[1 .. 2] of BYTE
remote Port-Nummer, z. B. 2000
local_tsap_id[1] = B#16#7 (high byte der Port-Nummer in hexadezimaler Darstellung)
local_tsap_id[2] = B#16#D0 (low byte der Port-Nummer in hexadezimaler Darstellung)
6 bis 7 spare ARRAY
[1 .. 2] of BYTE
Reserve, der Parameter ist mit W#16#0000 belegt.
Tabelle 02

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


Bild 05


Bild 06

Sobald der UDP-Endpunkt eingerichtet ist können die Daten empfangen werden.
Am Eingangsparameter "DATA" geben Sie die Adresse und Länge des Datenbereichs an, in dem die empfangenen Daten gespeichert werden.
In diesem Beispiel werden 100 Bytes Daten empfangen und im DB200 gespeichert.
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 "OUCW_3" gespeichert. Diese ist im Datenbaustein DB1 eingebunden. Tabelle 02 zeigt den Aufbau der Datenstruktur "OUCW_3".


Bild 07

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.


Bild 08

Wenn die Daten nicht erfolgreich empfangen werden, dann wird der Wert des Ausgangsparameters "STATUS" gesichert und ausgewertet.


Bild 09

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 10

Das STEP 7-Projekt als Download
Das STEP 7-Projekt enthält ein Programmbeispiel für den Aufruf des FB1 sowie die Funktionsbausteine FB65 "TCON", FB66 "TDISCON", FB67 "TUSEND" und FB68 "TURCV" mit Statusauswertung. Es wurde mit STEP 7 V5.5 SP3 erstellt.

 Registrierung notwendig  sample_open_udp.zip (294,6 KB)

Weitere UDP-Verbindungen konfigurieren
Zur Konfiguration weiterer UDP-Endpunkte kopieren Sie den FB1, so dass Sie einen weiteren Funktionsbaustein (z. B. FB101) erhalten. Ändern Sie die Parameter und generieren Sie einen neuen Instanz-Datenbaustein. Erstellen Sie mit dem Open Communication Wizard eine neue Datenstruktur, in der die Parameter des neuen UDP-Endpunkts gespeichert werden.

Weiterführende 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.
Fehlerdetails
Detailierte Fehlerbeschreibung
Helfen Sie uns, den Online Support zu verbessern.
Die aufgerufene Seite kann nicht angezeigt werden. Bitte kontaktieren Sie den Webmaster.
Kontakt zum Webmaster