|
Beschreibung Für den Datenaustausch über die integrierte PROFINET-Schnittstelle einer CPU oder über den CP443-1 Advanced 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 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 Verbindungsparameter zum Aufbau der ISO-on-TCP Verbindung sind in einer Datenstruktur gespeichert. In diesem Beispiel wird die Datenstruktur UDT65 "TCON_PAR" verwendet, die vom Anwender selbst parametriert wird. Die ISO-on-TCP Verbindung wird nicht in NetPro konfiguriert.
Beschreibung des Programmbeispiels Das S7-Programm beinhaltet den Aufruf des FB65 "TCON" und die Datenstruktur UDT65 "TCON_PAR" mit den Verbindungsparametern zum Aufbau der ISO-on-TCP Verbindung. Des Weiteren beinhaltet das S7-Programm den Aufruf der Kommunikationsbausteine 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 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, FB400, DB400, FB420, UDT65 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 FB400 mit dem Instanz-Datenbaustein DB400 und mit dem Merker M0.3 als Parameter INIT_COM aufgerufen. Der Merker M0.3 wird im OB1 nach dem Aufruf des FB400 wieder zurückgesetzt.

Bild 01
FB400 Der FB400 wird zyklisch im OB1 aufgerufen. Im FB400 werden folgende Funktionsbausteine Funktionsbausteine aufgerufen:
- FB420 "SET_ISO_PARAM"
- FB65 "TCON",
- FB63 "TSEND",
- FB64 "TRCV",
- FB66 "TDISCON"

Bild 02
An den Eingangsparametern des Funktionsbausteins FB420 "SET_ISO_PARAM" definieren Sie die lokalen und remoten Parameter der ISO-on-TCP Verbindung.
| Eingangsparameter |
Datentyp |
Beschreibung |
| ID |
Word |
Verbindungsnummer |
| DEV_ID |
Byte |
B#16#0 für den CP443-1 Adv
B#16#1 für die IM151-8 PN/DP CPU oder B#16#2 für die CPU 31x-2PN/DP, IM154-8 CPU oder
B#16#3 für die CPU 319-3PN/DP oder
B#16#5 für die CPU 412-2 PN, CPU 414-3 PN/DP, CPU 416-3 PN/DP |
| ACTIV |
Bool |
true = aktiver Verbindungsaufbau
false = passiver Verbindungsaufbau |
| TSAP |
Struct |
lokaler TSAP in der CPU und remote TSAP des Kommunikationspartners |
| IP_ADDR1 |
Int |
IP-Adresse des Kommunikationspartners |
| IP_ADDR2 |
Int |
| IP_ADDR3 |
Int |
| IP_ADDR4 |
Int |
Tabelle 01
Der Eingangsparameter "TSAP" vom Datentyp Struct ist wie folgt aufgebaut:
| Parameter |
Datentyp |
Beschreibung |
| LOC_RACK_SLOT |
Byte |
Definieren Sie den Parameter LOC_RACK_SLOT mit dem Wert B#16#0, wenn dem lokalen TSAP die zwei Bytes mit den Werten 0xE0 (hex) und 0x02 (hex) nicht vorangestellt werden sollen. Bei CPUs, die das ASCII-Format für die TSAPs unterstützen, müssen die ersten 2 Bytes des lokalen TSPAs nicht mit den Werten 0xE0 und 0x02 definiert werden.
Definieren Sie den Parameter LOC_RACK_SLOT mit dem Wert B#16#2, wenn dem lokalen TSAP zwei Bytes mit den Werten 0xE0 (hex) und 0x02 (hex) vorangestellt werden sollen. Dies ist notwendig bei CPUs, die das ASCII-Format für die TSAPs nicht unterstützten. |
| LOC_TSAP |
String |
- lokaler TSAP (Verbindungsendpunkt)
- Der benutzerdefinierte ASCII-String ist mit folgendem Wert vorbelegt: 'TCP-1'.
|
| CP_RACK_SLOT |
Byte |
Geben Sie den Rack und Steckplatz des CPs an, wenn die Kommunikation über einen CP443-1 Advanced erfolgt. |
| REM_RACK_SLOT |
Byte |
Definieren Sie den Parameter REM_RACK_SLOT mit dem Wert B#16#0, wenn dem TSAP im Kommunikationspartner die zwei Bytes mit den Werten 0xE0 (hex) und 0x02 (hex) nicht vorangestellt werden sollen. Bei CPUs, die das ASCII-Format für die TSAPs unterstützen, müssen die ersten 2 Bytes des lokalen TSPAs nicht mit den Werten 0xE0 und 0x02 definiert werden.
Definieren Sie den Parameter REM_RACK_SLOT mit dem Wert B#16#2, wenn dem TSAP im Kommunikationspartner zwei Bytes mit den Werten 0xE0 (hex) und 0x02 (hex) vorangestellt werden sollen. Dies ist notwendig bei CPUs, die das ASCII-Format für die TSAPs nicht unterstützten. |
| REM_TSAP |
String |
- TSAP (Verbindungsendpunkt) im Kommunikationspartner
- Der benutzerdefinierte ASCII-String ist mit folgendem Wert vorbelegt: 'TCP-1'.
|
Tabelle 02
Folgende CPUs unterstützen das ASCII-Format für die TSAPs.
- CPU 314C-2 PN/DP
- CPU 315-2 PN DP, CPU 317-2 PN/DP ab V3.1
- CPU 319-3 PN/DP ab V2.7
- CPU 414-3 PN/DP, CPU 416-3 PN/DP ab V5.2
- CPU 412-2 PN ab V6.0
- IM 151-8 PN/DP CPU ab V2.7
- IM 154-8 CPU ab V3.2
Lokalen TSAP und TSAP im Kommunikationspartner definieren In diesem Beispiel werden folgende TSAPs (Verbindungsendpunkte verwendet:
| |
lokaler TSAP in der CPU |
remote TSAP des Kommunikationspartners |
| Anfangswert (ASCII) |
TCP-1 |
TCP-1 |
| Anfangswert (hex) |
E0.02.54.43.50.2D.31 |
54.43.50.2D.31 |
Tabelle 03
In der Schnittstellenparametrierung des FB400 ändern Sie den Wert des lokalen und remoten TSAP entsprechend Ihrer Konfiguration (siehe Bild 04). Sie tragen in der Struktur "T_TSAP" für die Parameter "LOC_TSAP" und "REM_TSAP" den lokalen und remoten TSAP Ihrer Konfiguration als Anfangswert ein.
Wenn die ersten 2 Bytes des lokalen TSAPs in der CPU mit den Werten 0xE0 und 0x02 definiert werden sollen, dann ändern Sie die Schnittstellenparametrierung des FB400. In der Struktur "T_TSAP" definieren Sie für den Parameter "LOC_RACK_SLOT" den Anfangswert "B#16#2".
Wenn die ersten 2 Bytes des remoten TSAPs mit den Werten 0xE0 und 0x02 definiert werden sollen, dann ändern Sie die Schnittstellenparametrierung des FB400. In der Struktur "T_TSAP" definieren Sie für den Parameter "REM_RACK_SLOT" den Anfangswert "B#16#2".

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

Bild 04
Verbindungsaufbau Der Verbindungsaufbau wird durch eine positive Flanke am Eingangsparameter "REQ" des FB65 "TCON" gestartet. Die Datenstruktur UDT65 "TCON_PAR" mit der Verbindungsparametrierung ist im Instanz-Datenbaustein des FB400 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 05
Der Sendeauftrag wird über eine positive Flanke am Eingangsparameter "REQ" des FB63 "TSEND" angestoßen. Der Anstoß des Sendeauftrags wird mit dem Taktmerker M10.6 und der Variable "C1.SEND_BUSY" gesteuert. Wenn der Sendeauftrag läuft 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.
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 FB63 wird für eine Fehleranalyse gesichert.

Bild 07

Bild 08
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.

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.

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

Bild 11
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 12
Das STEP 7 Projekt als Download Das STEP 7-Projekt enthält ein Programmbeispiel für den Aufruf des FB400 "TSEND_TRECV_ISO1" sowie die Funktionsbausteine FB420 "SET_ISO_PARAM", FB65 "TCON", FB66 "TDISCON", FB63 "TSEND" und FB64 "TRECV" mit Statusauswertung. Es wurde mit STEP 7 V5.4 SP5 erstellt.
Sample_open_ISO.zip ( 52 KB )
Weitere ISO-on-TCP Verbindungen konfigurieren Zur Konfiguration weiterer ISO-on-TCP Verbindungen kopieren Sie den FB400, so dass Sie einen weiteren Funktionsbaustein (z. B.FB401) erhalten. Ändern Sie die Parameter und generieren Sie einen neuen Instanz-Datenbaustein.
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 ISO-on-TCP Verbindung für die Kommunikation über S7-300 und S7-400 CPs finden Sie unter der Beitrags-ID: 47885440.
|