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

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

  • Beitrag
  • Betrifft Produkt(e)

Beschreibung
Für den Datenaustausch über die integrierte PROFINET-Schnittstelle einer CPU oder über den CP 443-1 Advanced können Sie u. a. die "Open User Communication" über Industrial Ethernet nutzen. Hierbei werden folgende Protokolle unterstützt:

  • TCP
  • ISO-on-TCP
  • UDP

Für die "Open User Communication" über Industrial Ethernet mittels ISO-on-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 ISO-on-TCP-Verbindung sind in einer Datenstruktur gespeichert. In diesem Beispiel wird die Datenstruktur "OUCW_1" 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 ISO-on-TCP-Verbindung wird nicht in NetPro konfiguriert.

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

Byte Parameter Datentyp Beschreibung
0 bis 1 block_length WORD Länge der Datenstruktur "OUCW_1"
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 ISO-on-TCP: B#16#12
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 PROFINET-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#12: 2 bis 16
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#12: 0 oder 2 bis 16
  • aktive Seite: 2 bis 16
  • passive Seite: 0 oder 2 bis 16 (0 bedeutet unspezifiziert)
11 next_staddr_len BYTE Verwendete Länge des Parameters next_staddr
12 bis 27 local_tsap_id ARRAY [1..16] of BYTE Lokaler TSAP, z. B. ISO1:
local_tsap_id[1] = B#16#49
local_tsap_id[2] = B#16#53
local_tsap_id[3] = B#16#4F
local_tsap_id[4] = B#16#31
local_tsap_id[5-16] = B#16#00

Hinweis
Bei CPUs, die das ASCII-Format für die TSAPs nicht unterstützen, müssen die ersten 2 Bytes des TSAPs mit den Werten B#16#E0 und B#16#02 definiert werden.

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 TSAP des remoten Verbindungsendpunkts, z. B. ISO1:
rem_tsap_id[1] = B#16#49
rem_tsap_id[2] = B#16#53
rem_tsap_id[3] = B#16#4F
rem_tsap_id[4] = B#16#31
rem_tsap_id[5-16] = B#16#00

Hinweis
Bei CPUs, die das ASCII-Format für die TSAPs nicht unterstützen, müssen die ersten 2 Bytes des TSAPs mit den Werten B#16#E0 und B#16#02 definiert werden.

56 bis 61 next_staddr ARRAY [1..6] of BYTE next_staddr[1-6] = B#16#00

Hinweis
Wenn local_device_id=B#16#00, dann wird hier Rack und Steckplatz des (lokalen) CPs angegeben.

62-63 spare WORD Reserve, der Parameter ist mit W#16#0000 belegt.
Tabelle 01

Folgende CPUs unterstützen das ASCII-Format für die TSAPs.

  • CPU 314C-2 PN/DP
  • CPU 315(F)-2 PN/DP, CPU 317(F)-2 PN/DP ab V3.1
  • CPU 315T-3 PN/DP, CPU 317T-3 PN/DP, CPU 317TF-3 PN/DP
  • CPU 319(F)-3 PN/DP
  • CPU 414-3 PN/DP, CPU 416(F)-3 PN/DP ab V5.2
  • CPU 414F-3 PN/DP, CPU 412-2 PN
  • CPU 412-5H PN/DP, CPU 414-5H PN/DP, CPU 416-5H PN/DP, CPU 417-5H PN/DP
  • IM 151(F)-8 PN/DP CPU ab V2.7
  • IM 154(F)-8 CPU ab V3.2

Beschreibung des Programmbeispiels
Das S7-Programm beinhaltet den Aufruf des FB65 "TCON" und den Datenbaustein DB1 mit der Datenstruktur "OUCW_1", in der die Verbindungsdaten zum Aufbau der ISO-on-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 bzw. 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 "1" definiert.



Bild 02

Verbindungsaufbau
Der Verbindungsaufbau wird durch eine positive Flanke am Eingangsparameter "REQ" des FB65 "TCON" gestartet. Die Datenstruktur ""OUCW_1" 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 ISO-on-TCP-Verbindung aufgebaut ist können die Daten empfangen werden.
An den Eingangsparametern "DATA" und "LEN" geben Sie die Adresse und Länge des Datenbereiches 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 ISO-on-TCP-Verbindung gezielt abzubauen. Der Auftrag zum Abbau der ISO-on-TCP-Verbindung 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", FB63 "TSEND" und FB64 "TRECV" mit Statusauswertung. Es wurde mit STEP 7 V5.5 SP3 erstellt.

Sample_open_IoT.zip ( 285 KB )

Weitere ISO-on-TCP-Verbindungen konfigurieren
Zur Konfiguration weiterer ISO-on-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 ISO-on-TCP-Verbindung für die Kommunikation über S7-300 und S7-400 CPs finden Sie unter der Beitrags-ID: 47885440.

Securityhinweise
Um Anlagen, Systeme, Maschinen und Netzwerke gegen Cyber-Bedrohungen zu sichern, ist es erforderlich, ein ganzheitliches Industrial 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 Industrial Security finden Sie unter
http://www.siemens.com/industrialsecurity.
Unterstützung zur Statistik
Mit dieser Funktion werden die IDs des Suchergebnisses nach gewünschter Anzahl ausgegeben (Format .txt)

Liste generieren
URL kopieren
mySupport Cockpit