×
Siemens Industry Online Support
Siemens AG
Beitragstyp: FAQ Beitrags-ID: 18610307, Beitragsdatum: 11.04.2012
(18)
Bewerten

Wie werden die Kommunikationsbausteine FB14 "GET" und FB15 "PUT" für den Datenaustausch im S7-Programm einer S7-300 CPU programmiert?

  • Beitrag
  • Betrifft Produkt(e)

Anleitung
Um Daten zwischen zwei S7-300 Stationen über eine in NetPro projektierte S7-Verbindung austauschen zu können, müssen im S7-Programm die Kommunikationsbausteine FB14 "GET" und FB15 "PUT" aufgerufen werden. Die S7-Verbindung muss nicht beidseitig projektiert werden, da die S7-Kommunikation mittels FB14 "GET" und FB15 "PUT" auf dem Server-Client Prinzip basiert.

Merkmale der Kommunikationsbausteine FB14 "GET" und FB15 "PUT"

  • Die Funktionsbausteine FB14 und FB15 sind asynchrone Kommunikationsfunktionen.
  • In diesem Beispiel werden die Bausteine im OB1-Zyklus aufgerufen (siehe auch Beitrags-ID: 2795485).
  • Die Funktionsbausteine FB14 und FB15 können über mehrere OB1-Zyklen laufen.
  • Der FB14 sowie der FB15 wird mit dem Eingangsparameter "REQ" aktiviert.
  • Das Auftragsende wird über die Ausgangsparameter "DONE", "NDR" oder "ERROR" angezeigt.
  • PUT und GET können gleichzeitig über eine Verbindung kommunizieren.
  • Die aktuelle Version der Kommunikationsbausteine FB14 "GET" und FB15 "PUT" für den Datenaustausch über einen CP343-1 oder CP342-5 finden Sie in der SIMATIC_NET_CP Bibliothek unter "CP 300 > Blocks".
  • Die aktuelle Version der Kommunikationsbausteine FB14 "GET" und FB15 "PUT" mit der Familie "CPU_300" für den Datenaustausch über die integrierte PROFINET-Schnittstelle einer S7-300 CPU, IM151-8 PN/DP CPU oder IM154-8 CPU finden Sie in der Standard Library unter "Communication Blocks > Blocks".

Beschreibung des Programmbeispiels
Das S7-Programm beinhaltet den Aufruf der Kommunikationsbausteine FB14 "GET" und FB15 "PUT" aus der Standard Library. Der FB14 "GET" dient zum Auslesen von Daten aus einer remote CPU und der FB15 "PUT" zum Schreiben von Daten in eine remote CPU.
Das Programmbeispiel zeigt die Funktionsweise der Kommunikationsbausteine FB14 "GET" und FB15 "PUT" anhand einer S7-Verbindung.

Erstellen Sie zunächst die Hardware-Konfiguration Ihrer S7-300 Station.

Hinweis
Konfigurieren Sie das Merkerbyte 10 als Taktmerker. Über diesen Taktmerker werden der Lese- und Schreibauftrag angestoßen. Speichern und übersetzen Sie die Hardware-Konfiguration Ihrer S7-300 Station und laden Sie diese in die CPU.
In diesem Programmbeispiel wird die Timer-Ressource T10 benutzt.

Konfigurieren Sie in NetPro eine S7-Verbindung für die CPU. Wenn die Kommunikationspartner zusammen in einem STEP 7-Projekt konfiguriert sind, dann können Sie eine spezifizierte S7-Verbindung projektieren. Wenn der Kommunikationspartner nicht im selben STEP 7-Projekt wie die S7-300 Station konfiguriert ist, dann wird eine unspezifizierte S7-Verbindung projektiert. Achten Sie bei der Projektierung der S7-Verbindung auf die korrekte Vergabe der IP-Adresse bzw. der PROFIBUS-Adresse. Des Weiteren ist auf die korrekte Vergabe von Rack/Steckplatz und Verbindungsressource zu achten. Diese dienen zur eindeutigen Identifizierung der S7-Verbindung zwischen den Kommunikationspartnern.

Im Eigenschaftsdialog der S7-Verbindung > Register "Allgemein" finden Sie den Wert , der für den Eingangsparameter "ID" der Kommunikationsbausteine FB14 "GET" und FB15 "PUT" angegeben werden muss.


Bild 01

Das STEP 7-Programm besteht aus den Bausteinen OB100, OB1, FB115, DB115, DB200, DB201, FB14 und FB15.

OB100
Der OB100 ist ein Anlauf-OB und wird beim Neustart (Warmstart) der CPU durchlaufen. In diesem OB wird mit dem Merker 0.3 "START-UP" die Freigabe für den ersten Kommunikationsanstoß erteilt.

OB1
Der OB1 wird zyklisch aufgerufen. In diesem OB befindet sich der Aufruf des FB115 (Instanz-Datenbaustein: DB115) mit M0.3 "START-UP" als Parameter (INIT_COM). Nachdem der FB115 durchlaufen wurde, wird der M0.3 "START-UP" zurückgesetzt.


Bild 02

FB115
Der FB115 wird im OB1-Zyklus aufgerufen. Im FB115 finden Sie den Aufruf der Kommunikationsbausteine FB14 "GET" und FB15 "PUT".

Am Eingangsparameter "ID" der Kommunikationsbausteine geben Sie die Verbindungsnummer der in NetPro projektierten S7-Verbindung an. Den Wert für den Eingangsparameter "ID" entnehmen Sie aus dem Eigenschaftsdialog der in NetPro projetierten S7-Verbindung (siehe Bild 01).
Die Verbindungsnummer können Sie im FB115 individuell ändern. Passen Sie die Verbindungsnummer im Netzwerk 1 des FB115 entsprechend Ihrer Konfiguration an. Die Verbindungsnummer wird in einer statischen Variable und somit im Instanz-Datenbaustein DB115 gespeichert.
In diesem Beispiel wird die Verbindungsnummer "1" definiert.


Bild 03

Der FB14 wird über den Eingangsparameter "REQ" aktiviert, wenn der Taktmerker M10.6 eine positive Flanke hat und kein Auftrag läuft. Der Eingangsparameter "REQ" wird erst wieder zurückgesetzt, wenn der Leseauftrag erfolgreich oder mit Fehler abgeschlossen ist. Damit kann ein neuer Leseauftrag erst angestoßen werden, wenn der laufende Auftrag abgeschlossen ist.
Diese Verriegelung des Funktionsaufrufs ist wichtig, da die Funktion ein asynchrones Verhalten aufweist und mehrere Zyklen andauern kann. Eine ständige Aktivierung des Funktionsbausteins ohne Warten auf Beendigung des bereits aktiven Auftrags kann eine Kommunikationsüberlast erzeugen.

Der Parameter "ADDR_1" verweist auf einen Datenbereich in der remoten CPU in dem geschrieben, bzw. aus dem gelesen wird, zum Beispiel: P#DB201.DBX0.0 BYTE 200. Beim Parameter "RD_1" wird der Datenbereich für die gelesenen Daten angegeben, zum Beispiel: P#DB200.DBX0.0 BYTE 100. Die Ausgangsparameter "NDR", "ERROR" und "STATUS" werden für die Auftragsauswertung benötigt und sind nur im gleichen Zyklus gültig!


Bild 04

Wenn der Leseauftrag mit Fehler abgeschlossen ist, dann wird der Wert des Ausgangsparameters "STATUS" des FB14 für eine Fehleranalyse gesichert.


Bild 05

Der FB15 wird über den Eingangsparameter "REQ" aktiviert, wenn der Taktmerker M10.6 eine positive Flanke hat und kein Auftrag läuft. Der Eingangsparameter "REQ" wird erst wieder zurückgesetzt, wenn der Schreibauftrag erfolgreich oder mit Fehler abgeschlossen ist. Damit kann ein neuer Schreibauftrag erst angestoßen werden, wenn der laufende Auftrag abgeschlossen ist.
Diese Verriegelung des Funktionsaufrufs ist wichtig, da die Funktion ein asynchrones Verhalten aufweist und mehrere Zyklen andauern kann. Eine ständige Aktivierung des Funktionsbausteins ohne Warten auf Beendigung des bereits aktiven Auftrags kann eine Kommunikationsüberlast erzeugen.

Der Parameter "ADDR_1" verweist auf einen Datenbereich in der remoten CPU in dem geschrieben, bzw. aus dem gelesen wird, zum Beispiel: P#DB200.DBX0.0 BYTE 20. Beim Parameter "SD_1" wird der Datenbereich der zu sendenden Daten angegeben, zum Beispiel: P#DB201.DBX0.0 BYTE 20. Die Ausgangsparameter "DONE", "ERROR" und "STATUS" werden für die Auftragsauswertung benötigt und sind nur im gleichen Zyklus gültig!


Bild 06

Wenn der Schreibauftrag mit Fehler abgeschlossen ist, dann wird der Wert des Ausgangsparameters "STATUS" des FB15 für eine Fehleranalyse gesichert.


Bild 07

Weitere Informationen

  • Im Handbuch "System- und Standardfunktionen für S7-300/400 Band 1/2", Kapitel 22 "S7-Kommunikation" finden Sie u. a. Informationen zur Datenmenge, die mittels der Kommunikationsbausteine FB14 "GET" und FB15 "PUT" übertragen werden kann. Das Handbuch steht Ihnen als Download unter Beitrags-ID 44240604 zur Verfügung: ".
  • In Beitrag unter der Beitrags-ID 17628518 wird die Projektierung einer spezifizierten und unspezifizierten S7-Verbindung beschrieben.

Das STEP 7 Projekt als Download
Das STEP 7-Projekt enthält ein Programmbeispiel für den Aufruf der Kommunikationsbausteine FB14 und FB15. Es wurde mit STEP 7 V5.5 erstellt.

Sample_S7-300_PUT_GET.zip ( 197 KB )

Hinweis
Kopieren Sie die aktuelle Version der Kommunikationsbausteine FB14 und FB15 aus der SIMATIC_NET_CP Bibliothek bzw. aus der Standard Library in Ihr Anwenderprogramm und rufen Sie diese in Ihrem Anwenderprogramm auf.

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.