Beitragstyp: FAQ, Beitrags-ID: 18516182, Beitragsdatum: 11.04.2012
(0)
Bewerten

Wie werden die Kommunikationsbausteine FB12 "BSEND" und FB13 "BRCV" 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 FB12 "BSEND" und FB13 "BRCV" aufgerufen werden. Die S7-Verbindung muss beidseitig projektiert werden, da die S7-Kommunikation mittels FB12 "BSEND" und FB13 "BRCV" auf dem Client-Client Prinzip basiert.

Merkmale der Kommunikationsbausteine FB12 "BSEND" und FB13 "BRCV"

  • Die Funktionsbausteine FB12 und FB13 sind asynchrone Kommunikationsfunktionen.
  • In diesem Beispiel werden die Bausteine im OB1-Zyklus aufgerufen (siehe auch Beitrags-ID: 2795485).
  • Die Funktionsbausteine FB12 und FB13 können über mehrere OB1-Zyklen laufen.
  • Der FB12 wird mit dem Eingangsparameter "REQ" aktiviert.
  • Der FB13 wird mit dem Eingangsparameter "EN_R" aktiviert.
  • Das Auftragsende wird über die Ausgangsparameter "DONE", "NDR" oder "ERROR" angezeigt.
  • BSEND und BRCV können gleichzeitig über eine Verbindung kommunizieren.
  • Die aktuelle Version der Kommunikationsbausteine FB12 "BSEND" und FB13 "BRCV" 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 FB12 "BSEND" und FB13 "BRCV" 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 FB12 "BSEND" und FB13 "BRCV" aus der Standard Library. Der FB12 "BSEND" dient zum Senden von Daten und der FB13 "BRCV" zum Empfangen von Daten.
Das Programmbeispiel zeigt die Funktionsweise der Kommunikationsbausteine FB12 "BSEND" und FB15 "BRCV" anhand einer S7-Verbindung.

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

Hinweis
Konfigurieren Sie das Taktmerkerbyte 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.
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. 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 FB12 "BSEND" und FB13 "BRCV" angegeben werden muss.

 
Bild 01

Das STEP 7-Programm besteht aus den Bausteinen OB100, OB1, FB105, DB105, DB200, DB201, FB12 und FB13.

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 FB105 (Instanz-Datenbaustein: DB105) mit M0.3 "START-UP" als Parameter (INIT_COM). Nachdem der FB105 durchlaufen wurde, wird der M0.3 "START-UP" zurückgesetzt.


Bild 02

FB105
Der FB105 wird im OB1-Zyklus aufgerufen. Im FB105 finden Sie den Aufruf der Kommunikationsbausteine FB12 "BSEND" und FB13 "BRCV".

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 FB105 individuell ändern. Passen Sie die Verbindungsnummer im Netzwerk 2 des FB105 entsprechend Ihrer Konfiguration an. Die Verbindungsnummer wird in einer statischen Variable und somit im Instanz-Datenbaustein DB105 gespeichert.
In diesem Beispiel wird die Verbindungsnummer "1" definiert.


Bild 03

Der FB12 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 Sendeauftrag erfolgreich oder mit Fehler 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.

Mit dem Eingangsparameter "R_ID" legen Sie die Zusammengehörigkeit eines Sende- und eines Empfangsauftrags fest. Die "R_ID" am FB12 "BSEND" des Senders und am FB13 "BRCV" des Empfängers müssen übereinstimmen.

Am Eingangsparameter "SD_1" des FB12 geben Sie die Adresse und die Länge des Datenbereichs an, der die zu sendenden Daten enthält (Sendepuffer), z. B. P#DB201.DBX0.0 BYTE 8000.
Am Eingangsparameter "LEN" tragen Sie die Länge der zu sendenden Daten in Bytes ein. Die Länge der zu sendenden Daten definieren Sie im Netzwerk 1 des FB105. Sie wird in einer statischen Variable und somit im Instanz-Datenbaustein DB105 gespeichert.
In diesem Beispiel wird die Länge der zu sendenden Daten mit 8000 Bytes definiert.

Die Ausgangsparameter "DONE", "ERROR" und "STATUS" werden für die Auftragsauswertung benötigt und sind nur im gleichen Zyklus gültig!


Bild 04

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


Bild 05

Der FB13 wird über den Eingangsparameter "EN_R" aktiviert. Der Wert des Eingangsparameters "EN_R" ist immer "1", da der Merker M0.1 im Anlauf-OB OB100 auf den Wert "1" gesetzt wird. Somit ist die S7-300 Station immer empfangsbereit.

Mit dem Eingangsparameter "R_ID" legen Sie die Zusammengehörigkeit eines Sende- und eines Empfangsauftrags fest. Die "R_ID" muss beim FB12 auf Sendeseite und beim FB13 auf Empfangsseite übereinstimmen.

Am Eingangsparameter "RD_1" geben Sie die Adresse und Länge des Datenbereichs, wo die empfangenen Daten gespeichert werden (Empfangspuffer), z. B. P#DB200.DBX0.0 BYTE 8000.

Der Ausgangsparameter "LEN" zeigt die Anzahl der empfangenen Daten in Bytes an. Die Ausgangsparameter "NDR", "ERROR" und "STATUS" werden für die Auftragsauswertung benötigt und sind nur im gleichen Zyklus gültig!


Bild 06

Wenn der Empfangsauftrag mit Fehler abgeschlossen ist, dann wird der Wert des Ausgangsparameters "STATUS" des FB13 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 FB12 "BSEND" und FB13 "BRCV" übertragen werden kann. Das Handbuch steht Ihnen als Download unter der Beitrags-ID 44240604" zur Verfügung.
  • Die Projektierung einer spezifizierten und unspezifizierten S7-Verbindung wird in folgendem Beitrag beschrieben: Beitrags-ID 17628518.

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

Sample_S7-300_BSEND_BRCV.zip ( 47 KB )

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

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