×
Siemens Industry Online Support
Siemens AG
Beitragstyp: FAQ Beitrags-ID: 29737950, Beitragsdatum: 12.11.2014
(21)
Bewerten

Wie werden die Kommunikationsbausteine FB63 "TSEND", FB64 "TRCV", FB65 "TCON" und FB66 "TDISCON" programmiert, um das TCP-Protokoll für den Datenaustausch über die integrierte PROFINET-Schnittstelle einer S7-300/S7-400 CPU zu nutzen?

  • Beitrag
  • Betrifft Produkt(e)
Beschreibung Die CPUs mit integrierter PROFINET-Schnittstelle und die WinAC RTX unterstützen die offene IE-Kommunikation. ...

Beschreibung
Die CPUs mit integrierter PROFINET-Schnittstelle und die WinAC RTX unterstützen die offene IE-Kommunikation.

Unter der Beitrags-ID 18909487 finden Sie eine Übersicht der Kommunikationsdienste, die von den CPUs mit integrierter PROFINET-Schnittstelle und von der WinAC RTX unterstützt werden. In dieser Übersicht finden Sie Informationen darüber, welche Protokolle der offenen IE-Kommunikation von den CPUs mit integrierter PROFINET-Schnittstelle und von der WinAC RTX unterstützt werden.

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

  • FB65 "TCON" zum Verbindungsaufbau
  • FB66 "TDISCON" zum Verbindungsabbau
  • FB63 "TSEND" zum Senden von Daten
  • FB64 "TRCV" 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 Verbindungsdaten zum Aufbau der TCP-Verbindung 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 Erstellung der Verbindungsdaten nutzen Sie den "Open Communication Wizard". Dieser steht Ihnen unter der Beitrags-ID 98957840 als Download zur Verfügung.
  • Die TCP-Verbindung wird nicht in NetPro konfiguriert.

Tabelle 01 zeigt den Aufbau der Datenstruktur "OUCW_2", in der die Verbindungsdaten gespeichert sind.
 

Byte Parameter Datentyp Beschreibung
0 bis 1 block_length WORD Länge der Datenstruktur "OUCW_2"
2 bis 3 id BYTE Referenz auf diese Verbindung
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 TCP: B#16#11
5 active_est BOOL Kennung für die Art des Verbindungsaufbaus
  • FALSE: passiver Verbindungsaufbau
  • TRUE: aktiver Verbindungsaufbau
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
Mögliche Werte, wenn connection_type = B#16#11: 0 oder 2
(aktive Seite: 0 oder 2, passive Seite: 2)
8 rem_subnet_id_len BYTE Dieser Parameter wird derzeit nicht verwendet. Er ist mit B#16#00 belegt.
9 rem_staddr_len BYTE Länge der Adresse des remoten Verbindungsendpunkts:
  • 0: unspezifiziert, d. h. Parameter rem_staddr ist irrelevant.
  • 4: gültige IP-Adresse im Parameter rem_staddr.
10 rem_tsap_id_len BYTE Verwendete Länge des Parameters rem_tsap_id
Mögliche Werte, wenn connection_type = B#16#11: 0 oder 2
11 next_staddr BYTE Verwendete Länge des Parameters next_staddr
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. Er ist mit B#16#00 belegt.
34 bis 39 rem_staddr ARRAY [1..6] of BYTE IP-Adresse des remoten Verbindungsendpunkts, z. B. 192.168.0.30
rem_staddr[1] = B#16#C0
rem_staddr[2] = B#16#A8
rem_staddr[3] = B#16#00
rem_staddr[4] = B#16#1E
rem_staddr[5-6] = B#00 (reserviert)
40 bis 55 rem_tsap id ARRAY [1..16] of BYTE Port-Nummer des remoten Verbindungsendpunkts, 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
56 bis 61 next_staddr ARRAY [1..6] of BYTE next_staddr[1-6] = B#16#00
62-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 den Datenbaustein DB1 mit der Datenstruktur "OUCW_2", in der die Verbindungsdaten zum Aufbau der TCP-Verbindung gespeichert sind. Des Weiteren beinhaltet das S7-Programm den Aufruf der Funktionsbausteine FB63 "TSEND" und FB64 "TRCV" aus der Standard Library > Communication Blocks. Der FB63 "TSEND" dient zum Senden von Daten an eine S7-Station oder S5-Station, an eine PC-Station oder an ein Fremdsystem. Der FB64 "TRCV" dient zum Empfang der Daten einer S7-Station bzw. S5-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, FB65 und FB66.

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 10.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"
  • FB63 "TSEND",
  • FB64 "TRCV"
  • 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 "2" definiert.


Bild 02

Verbindungsaufbau
Der Verbindungsaufbau wird durch eine positive Flanke am Eingangsparameter "REQ" des FB65 "TCON" gestartet. Die Datenstruktur "OUCW_2" mit der Verbindungsparametrierung ist im Datenbaustein DB1 eingebunden.
Am Eingangsparameter "CONNECT" des FB65 "TCON" wird der Speicherbereich angegeben, der die Verbindungsparametrierung enthält.
Die Verbindung wird beim Systemstart aufgebaut und bleibt solange bestehen, bis diese zum Beispiel gezielt mit dem FB66 "TDISCON" abgebaut wird, die CPU in STOP geht oder die Stromversorgung ausgeschaltet wird.


Bild 03

Der Sendeauftrag wird über eine positive Flanke am Eingangsparameter "REQ" des FB63 "TSEND" angestoßen. Der Anstoß des Sendeauftrags wird mit dem Taktmerker M100.6 und der Variablen "SEND_BUSY" gesteuert. Wenn der Sendeauftrag läuft 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.
Die Ausgangsparameter "DONE", "ERROR" und "STATUS" werden für die Auftragsauswertung benötigt.


Bild 04

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 FB63 wird für eine Fehleranalyse gesichert.


Bild 05


Bild 06

Sobald die TCP-Verbindung aufgebaut ist können die Daten empfangen werden.
An den Eingangsparametern "DATA" und "LEN" 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.


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, die TCP-Verbindung gezielt abzubauen. Der Auftrag zum Abbau der TCP-Verbindung wird durch eine positive Flanke am Eingangsparameter "REQ" des FB66 "TDISCON" gestartet.


Bild 10

Hinweis
In diesem Programmbeispiel wird das TCP-Protokoll für die Datenübertragung verwendet, d.h. in der Datenstruktur "OUCW_2" ist der Parameter "connection_type" mit dem Wert "B#16#11" definiert.
Die S7-300 CPUs V2.3 unterstützen den "TCP-Kompatibilitätsmodus". Wenn Sie das Programmbeispiel auf einer S7-300 CPU V2.3 betreiben möchten, dann ändern Sie in der Datenstruktur "OUCW_2" den Parameter "connection_type" auf den Wert "B#16#01".

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", FB63 "TSEND" und FB64 "TRECV" mit Statusauswertung. Es wurde mit STEP 7 V5.5 SP3 erstellt.

Sample_open_TCP.zip ( 286 KB )

Weitere TCP-Verbindungen konfigurieren
Zur Konfiguration weiterer TCP-Verbindungen 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.

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 TCP-Verbindung für die Kommunikation über S7-300 und S7-400 Industrial Ethernet CPs finden Sie unter der Beitrags-ID: 22385024.
Securityhinweise
Um technische Infrastruktur, Systeme, Maschinen und Netzwerke gegen Cyber-Bedrohungen zu sichern, ist es erforderlich, ein ganzheitliches IT Security-Konzept zu implementieren (und kontinuierlich aufrechtzuerhalten), das dem aktuellen Stand der Technik entspricht. Die Produkte und Lösungen von Siemens formen nur einen Bestandteil eines solchen Konzepts. Weitergehende Informationen über Cyber Security finden Sie unter
https://www.siemens.com/cybersecurity#Ouraspiration.
Beitrag bewerten
keine Bewertung
Anfragen und Feedback
Was möchten Sie tun?
Hinweis: Das Feedback bezieht sich immer auf den vorliegenden Beitrag / das vorliegende Produkt. Ihre Nachricht wird an die Redakteure im Online Support gesendet. In einigen Tagen erhalten Sie von uns eine Antwort, wenn Ihr Feedback das erfordert. Ist für uns alles klar, werden wir Ihnen nicht mehr antworten.