Beitragsliste anzeigen
Industrial Ethernet S7-300/400 CPs -- Kommunikation projektieren und programmieren -- Kommunikationsbausteine verwenden
Wie kopieren Sie den CFC-Plan "Modbus" aus dem Beispielprojekt für OPEN MODBUS / TCP in Ihr Anwenderprojekt?
Worin unterscheiden sich die Initialisierungs- und Laufzeitparameter an den Bausteinen für Modus TCP?
Warum wird am Baustein für Modbus TCP der Statuswert A090 (hex) ausgegeben, obwohl Sie die richtige Lizenz eingetragen haben?
Welche Unterschiede gibt es zwischen der lizenzierten Version und der downloadbaren Demoversion der Bausteine für Modbus TCP?
Warum wird der Wert A083 (hex) permanent am Ausgangsparameter STATUS des Bausteins für Modbus TCP ausgegeben, wenn der Eingangsparameter ENQ_ENR=true gesetzt wurde?
Wie werden Daten mit variabler Telegrammlänge über das TCP-Protokoll übertragen und in einer S7-300 Station über den Industrial Ethernet CP empfangen?
Wie werden die Funktionsbausteine FB14 "GET" und FB15 "PUT" im S7-Programm der S7-300 programmiert, um mehr als 160 Byte Daten zu übertragen?
Wo finden Sie Programmbeispiele und Dokumentation zur Kommunikation von SIMATIC S5-Baugruppen zu SIMATIC S7-Baugruppen über Industrial Ethernet mittels UDP-Protokoll?
Wo finden Sie Programmbeispiele und Dokumentation zur Kommunikation von SIMATIC S5-Baugruppen zu SIMATIC S7-Baugruppen über Industrial Ethernet mittels TCP-Protokoll?
Wo finden Sie Programmbeispiele und Dokumentation zur Kommunikation von SIMATIC S5-Baugruppen zu SIMATIC S7-Baugruppen über Industrial Ethernet mittels ISO-Transportprotokoll?
Wie programmieren Sie den FC10 "AG_CNTRL"?
Welche Kommandos (CMD) des FC10 "AG_CNTRL" können mit den IE CPs umgesetzt werden?
Wie viele Kommunikationsaufträge dürfen in einer S7-300 CPU für die S7-Kommunikation über einen CP343-1 gleichzeitig verwendet werden?
Welche Ports sind für die Modbus/TCP-Kommunikation freigegeben und wie viele Modbus-Clients können mit einer SIMATIC S7-CPU als Modbus-Server kommunizieren?
Hinweis zur Verwendung einer Instanz für mehrere Verbindungs-IDs
Interner Aufruf des FC5 (AG_SEND) bei den FTP-Client-Bausteinen (FC 40-44) für den CP343-1 IT (6GK7 343-1GX11-0XE0)
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 CPU oder über den CP443-1 Advanced zu nutzen?
Wie werden die Kommunikationsbausteine FC11 und FC12 für das PROFINET IO-Device programmiert?
Bausteinaufrufe für Kommunikationsprozessoren in mehreren Ablaufebenen
Veränderung der Eingangsparameter der Anwenderbausteine "AG_SEND" und "AG_RECV" während der Laufzeit eines Auftrags
Was müssen Sie beim Aufruf der Kommunikationsbausteine FC5/50 "AG_SEND/AG_LSEND" und FC6/60 "AG_RCV/AG_LRCV" beachten, wenn Sie Variablen mit dem Datentyp "REAL" übertragen?
Was ist bei der Verwendung der Kommunikationsbausteine FC53 "AG_SSEND" und FC63 "AG_SRECV" zu beachten?
Welche Punkte sind beim Aufruf der Kommunikationsbausteine FC5/50 und FC6/60 im STEP 7-Anwenderprogramm der CPU zu beachten?
Wie werden die Kommunikationsbausteine FC11 und FC12 für den PROFINET IO-Controller programmiert?
Wie kann ich von einer SIMATIC S7 eine OPEN MODBUS / TCP Kommunikation aufbauen und wo erhalte ich weitere Informationen?
Wie werden die Kommunikationsbausteine FC50 und FC60 programmiert?
Fehler-STATUS "0x7000" am Funktionsbaustein FC5 / FC50 (AG_SEND) bei der Send/Receive-Kommunikation auf der S7-400 Steuerung
Wie werden die Kommunikationsbausteine FC5 und FC6 programmiert?
Programmbeispiel: S7-Kommunikation mit den Bausteinen SFB14 ("GET") und SFB15 ("PUT") bei der S7-400
Programmbeispiel: S7-Kommunikation mit den Bausteinen FB14 ("GET") und FB15 ("PUT") bei der CPU 317-2PN/DP
Wie werden die Kommunikationsbausteine FB8 "USEND" und FB9 "URCV" für den Datenaustausch auf der S7-300 programmiert?
"STATUS = 27" (0x1B) bei der ladbaren S7-Kommunikation auf der S7-300
Wie werden die Kommunikationsbausteine FB14 "GET" und FB15 "PUT" für den Datenaustausch im S7-Programm einer S7-300 CPU programmiert?
Wie werden die Kommunikationsbausteine FB12 "BSEND" und FB13 "BRCV" für den Datenaustausch im S7-Programm einer S7-300 CPU programmiert?
Wiederholung des "BSEND"-Auftrags (SFB12), wenn der "BRCV"-Baustein (SFB13) im Zustand "disable" ist ("EN_R = 0")
PROFIBUS S7-300/400 CPs -- Kommunikation projektieren und programmieren -- Kommunikationsbausteine verwenden
Wie werden die Kommunikationsbausteine FC50 und FC60 programmiert?
Wie werden die Kommunikationsbausteine FB12 "BSEND" und FB13 "BRCV" für den Datenaustausch im S7-Programm einer S7-300 CPU programmiert?
Wie werden die Kommunikationsbausteine FB14 "GET" und FB15 "PUT" für den Datenaustausch im S7-Programm einer S7-300 CPU programmiert?
Welche Bausteine für Modbus TCP können Sie umbenennen oder umverdrahten, wenn die Bausteinnummern der Modus-Bausteine im Anwenderprogramm bereits verwendet werden?
Wie werden die Funktionsbausteine FB14 "GET" und FB15 "PUT" im S7-Programm der S7-300 programmiert, um mehr als 160 Byte Daten zu übertragen?
Wo finden Sie Programmbeispiele und Dokumentation zur Nutzung des Protokolls PROFIBUS DP für den Datenaustausch zwischen SIMATIC S5-Baugruppen und SIMATIC S7-Baugruppen?
Wo finden Sie Programmbeispiele und Dokumentation zur Kommunikation von SIMATIC S5-Baugruppen zu SIMATIC S7-Baugruppen über PROFIBUS unter Verwendung des freien Layer 2 Zugangs des FDL-Protokolls?
Wo finden Sie Programmbeispiele und Dokumentation zur Kommunikation von SIMATIC S5-Baugruppen zu SIMATIC S7-Baugruppen über PROFIBUS mittels FDL-Protokoll?
Wo finden Sie Programmbeispiele und Dokumentation zur Nutzung des Protokolls PROFIBUS FMS für den Datenaustausch zwischen SIMATIC S5-Baugruppen und SIMATIC S7-Baugruppen, sowie für den Datenaustausch zwischen SIMATIC S5-Baugruppen und PCs ?
Hinweis zur Verwendung einer Instanz für mehrere Verbindungs-IDs
Verarbeiten der Daten aus DP-Slaves über CP342-5 auf CPU31x
Bausteinaufrufe für Kommunikationsprozessoren in mehreren Ablaufebenen
Veränderung der Eingangsparameter der Anwenderbausteine "AG_SEND" und "AG_RECV" während der Laufzeit eines Auftrags
Was müssen Sie beim Aufruf der Kommunikationsbausteine FC5/50 "AG_SEND/AG_LSEND" und FC6/60 "AG_RCV/AG_LRCV" beachten, wenn Sie Variablen mit dem Datentyp "REAL" übertragen?
Wie werden die Kommunikationsbausteine FC5 und FC6 programmiert?
Welche Besonderheiten und Eigenschaften bietet die S7-Basiskommunikation?
Profibus: Diagnose von S7-Verbindungen mit Step 7
Wiederholung des "BSEND"-Auftrags (SFB12), wenn der "BRCV"-Baustein (SFB13) im Zustand "disable" ist ("EN_R = 0")
Wie werden die Kommunikationsbausteine FB8 "USEND" und FB9 "URCV" für den Datenaustausch auf der S7-300 programmiert?
Besonderheiten bei der Parameterversorgung der Kommunikationsbausteine des CP342 / CP343
Was ist beim Umstieg/Ersatzteilfall des CP342-5 zu beachten?
Welche Version der Funktionsbausteine benötigen Sie zum Betrieb des CP342-5?
CP 342-5 -- Wie erkennt man, dass sich der CP 342-5 vom PROFIBUS zurückgezogen hat?
CP 342-5 -- Wie programmiere ich den Datenaustausch, wenn mein DP-Slave nur Ausgänge besitzt?
CP 342-5 -- Wie werden konsistente Daten von einem DP-Slave über den CP 342-5 gelesen bzw. geschrieben?
Wie werden die Kommunikationsbausteine FC50 und FC60 programmiert?
Bestellnummer:

Anleitung
Für die Kommunikation über eine der folgenden Kommunikationsverbindungen müssen im S7-Programm der S7-400 die Kommunikationsbausteine FC50 "AG_LSEND" und FC60 "AG_LRECV" aufgerufen werden.

  • TCP-Verbindung
  • ISO-on-TCP-Verbindung (RFC 1006)
  • ISO-Transportverbindung
  • UDP-Verbindung
  • FDL-Verbindung

Merkmale der Kommunikationsbausteine FC50 "AG_LSEND" und FC60 "AG_LRECV"

  • FC50 und FC60 sind asynchrone Kommunikationsfunktionen.
  • FC50 und FC60 laufen über mehrere OB1-Zyklen.
  • FC50 wird mit dem Eingangsparameter "ACT" aktiviert.
  • Das Auftragsende wird über "DONE" bzw. "ERROR" angezeigt.
  • AG_LSEND und AG_LRECV können gleichzeitig über eine Verbindung kommunizieren.
  • Die aktuelle Version der Kommunikationsbausteine FC50 "AG_LSEND" und FC60 "AG_LRCV" finden Sie in der SIMATIC_NET_CP Bibliothek unter "CP 400 > Bausteine".

Beschreibung des Programmbeispiels
Das S7-Program beinhaltet den Aufruf der Kommunikationsbausteine FC50 "AG_LSEND" und FC60 "AG_LRECV" aus der SIMATIC_NET_CP Bibliothek. Der FC50 "AG_LSEND" dient zum Senden von Daten an eine S7-Station bzw. S5-Station, an eine PC-Station oder an ein Fremdsystem. Der FC60 "AG_LRECV" dient zum Empfang der Daten einer S7-Station bzw. S5-Station, einer PC-Station oder eines Fremdsystems.
Das Programmbeispiel zeigt die Funktionsweise der Kommunikationsbausteine FC50 "AG_LSEND" und FC60 "AG_LRCV" anhand einer ISO-on-TCP Verbindung.

Erstellen Sie zunächst die Hardware-Konfiguration ihrer S7-400 Station.

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

Konfigurieren Sie in NetPro eine der o. g. Kommunikationsverbindungen für die CPU. Wenn die Kommunikationspartner zusammen in einem STEP 7-Projekt konfiguriert sind, dann können Sie eine spezifizierte Kommunikationsverbindung projektieren. Wenn der Kommunikationspartner nicht im selben STEP 7-Projekt wie die S7-400 Station konfiguriert ist, dann wird eine unspezifizierte Kommunikationsverbindung konfiguriert. Achten Sie bei der Konfiguration der Kommunikationsverbindung auf die korrekte Vergabe von IP-Adresse bzw. PROFIBUS-Adresse. Des Weiteren ist auf die korrekte Vergabe von PORT, TSAP bzw. LSAP zu achten. Diese dienen zur eindeutigen Identifizierung der Kommunikationsverbindung zwischen den Kommunikationspartnern.

Im Eigenschaftsdialog der Kommunikationsverbindung -> Register "Allgemein" finden Sie den Wert, der für die Eingangsparameter "ID" und "LADDR" der Kommunikationsbausteine FC50 "AG_LSEND" und FC60 "AG_LRECV" angegeben werden muss.


Bild 01

Das STEP 7-Programm besteht aus den Bausteinen OB100, OB1, FB200, DB200, DB201, FC50 und FC60.

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

OB1
Der OB1 wird zyklisch aufgerufen. In diesem OB befindet sich der Aufruf des FB200 (Instanz-Datenbaustein: DB200) mit M1.0 als Parameter (INIT_COM). Nachdem der FB200 durchlaufen wurde, wird M1.0 zurückgesetzt.


Bild 02

FB200
Der FB200 wird im OB1-Zyklus aufgerufen. In diesem FB finden Sie den Aufruf von FC50 "AG_LSEND" und FC60 "AG_LRECV". Der Sendeauftrag wird über eine positive Flanke am Eingangsparameter "ACT" des FC50 angestoßen. Der Anstoß des Sendeauftrags wird mit dem Taktmerker M10.7 und der Variable "SND_BUSY" gesteuert. Wenn der Sendeauftrag läuft ist "SND_BUSY" gesetzt. Somit ist kein Anstoß eines neuen Sendeauftrags möglich.
Der Anstoß des Empfangsauftrag wird mit der Variable "RCV_DISABLE" gesteuert. Der Wert dieser Variable=FALSE, so dass der FC50 "AG_LRCV" immer empfangsbereit ist und jederzeit Daten empfangen werden können. 

Diese Verriegelung der Funktion ist besonders wichtig, da die Funktion asynchron ist und mehrere Zyklen andauern kann. Ein ständiges Anstoßen neuer Sendeaufträge ohne abzuwarten, dass diese erfolgreich oder mit Fehler beendet wurden, kann eine Kommunikationsüberlast erzeugen.

Die Werte für die Eingangsparameter "ID" und "LADDR" müssen aus dem Eigenschaftsdialog der Kommunikationsverbindung in NetPro übernommen werden (siehe Bild 01).
Am Eingangsparameter "SEND" des FC50 wird die Adresse und Länge des Datenbereiches angegeben, welcher die zu sendenden Daten enthält (Sendepuffer), zum Beispiel: P#DB201.DBX0.0 BYTE 100.
Am Eingangsparameter "LEN" wird die Länge der zu sendenden Daten in Bytes eingetragen. In diesem Beispiel wird die Länge der zu sendenden Daten mit 100 Bytes definiert.
Die Ausgangsparameter "DONE", "ERROR" und "STATUS" werden für die Auftragsauswertung benötigt und sind nur im gleichen Zyklus gültig!


Bild 03


Bild 04

Wenn der Sendauftrag erfolgreich abgeschlossen ist, dann wird "SND_BUSY" zurückgesetzt. Somit kann ein neuer Sendeauftrag angestoßen werden.


Bild 05

Wenn der Sendeauftrag mit Fehler abgeschlossen ist, dann wird "SND_BUSY" ebenfalls zurückgesetzt und der Wert des Ausgangsparameters "STATUS" des FC50 wird für eine Fehleranalyse gesichert.
Ist der Wert des Ausgangsparameters "STATUS" 0x7000Hex (28672Dez), dann wird die Funktion FC50 "AG_LSEND" erneut aufgerufen.


Bild 06

Ist der Wert des Ausgangsparameters "STATUS" 0x8183Hex (32381Dez) oder 0x8304Hex (31996Dez),  d.h. die Kommunikationsverbindung ist nicht aufgebaut, dann wird nur alle 10s ein Sendeauftrag initiiert.


Bild 07

Die Werte für die Eingangsparameter "ID" und "LADDR" müssen aus dem Eigenschaftsdialog der Kommunikationsverbindung in NetPro übernommen werden (siehe Bild 01). Bei Eingangsparameter "RECV" des FC60 wird die Adresse und Länge des Datenbereiches angegeben, wo die empfangenen Daten gespeichert werden (Empfangspuffer), zum Beispiel: P#DB201.DBX100.0 BYTE 100.


Bild 08

Der Ausgangsparameter "NDR" dient als Anzeige dafür, dass neue Daten empfangen wurden. Der Ausgangsparameter "LEN" gibt die Länge der empfangenen Daten an.
Wenn die Daten nicht erfolgreich empfangen werden, dann wird der Wert des Ausgangsparameters "STATUS" gesichert und ausgewertet.


Bild 09

Ist der Wert des Ausgangsparameters "STATUS" 0x8183Hex (32381Dez) oder 0x8304Hex (31996Dez),  d.h. die Kommunikationsverbindung ist nicht aufgebaut, dann wird die Variable "RCV_DISABLE" für 10s gesetzt. In dieser Zeit werden keine Daten empfangen. Erst nach Ablauf dieser Zeit (10s) können wieder neue Daten empfangen werden.


Bild 10

Die Länge der erfolgreich empfangenen Daten wird in einer statischen Variablen gespeichert.


Bild 11

Im FB200 wird ausgewertet wie oft die entsprechenden STATUS-Werte am FC50 "AG_LSEND" und FC60 "AG_LRCV" auftreten. Diese Information wird in den statischen Schnittstellenparametern des FB200 in der Variable "STATISTIC" vom Datentyp "Struktur" gespeichert.


Bild 12

Über die Variable "#STATISTIC.ON_OFF" ist es möglich die STATUS-Auswertung ein- bzw. auszuschalten. Die STATUS-Auswertung ist standardmäßig eingeschalten.


Bild 13

Sonderfall
Wenn der Datenaustausch über eine TCP-Verbindung erfolgt, dann wird der Ausgangsparameter "NDR" erst gesetzt, wenn der komplette Empfangspuffer gefüllt worden ist! Der Wert des Ausgangsparameters "LEN" zeigt somit immer die gesamte Länge des Empfangspuffers!

Das STEP 7 Projekt als Download
Das STEP 7-Projekt enthält ein Programmbeispiel für den Aufruf der Funktion FC50 und FC60 mit Statusauswertung. Es wurde mit STEP 7 V5.5 SP2 erstellt.

NET_S7400_LSEND_LRECV.zip ( 195 KB )

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

Ergänzende Suchbegriffe
send, receive

 Beitrags-ID:18513371   Datum:2012-07-02 
Dieser Artikel...hat mir geholfenhat mir nicht geholfen                                 
mySupport
My Documentation Manager 
Newsletter 
CAx-Download-Manager 
Support Request
Zu diesem Beitrag
Drucken
PDF erstellen 
Beitrag versenden
QuickLinks
Kompatibilitäts-Tool 
Hilfe
Online Hilfe
Guided Tour