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

Programmbeispiel: S7-Kommunikation mit den Bausteinen SFB14 ("GET") und SFB15 ("PUT") bei der S7-400

  • Beitrag
  • Betrifft Produkt(e)

FRAGE:
Wie werden die Kommunikationsbausteine SFB14 ("GET") und SFB15 ("PUT") für den Datenaustausch auf der S7-400 programmiert?

ANTWORT:
Um Daten zwischen zwei S7-400 Stationen über eine in NetPro projektierte S7-Verbindung austauschen zu können, müssen im S7-Programm Kommunikationsfunktionen aufgerufen werden. SFB14 ("GET") dient zum Auslesen von Daten aus einer remote CPU und SFB15 ("PUT") zum Schreiben von Daten in eine remote CPU.

Merkmale der Kommunikationsbausteine SFB14 ("GET") und SFB15 ("PUT")

  • SFB14 / SFB15 sind Systemfunktionsbausteine und damit in der Firmware der CPU enthalten.
  • SFB14 und SFB15 sind asynchrone Kommunikationsfunktionen.
  • Sie können über mehrere OB1-Zyklen laufen.
  • SFB14 bzw. SFB15 werden mit dem Eingangsparameter ("REQ") aktiviert.
  • Das Auftragsende wird über "DONE", "NDR" bzw. "ERROR" angezeigt.

Das Programmbeispiel beinhaltet eine S7-Verbindung, über die Daten mit SFB14 aus einer remoten CPU gelesen und mit SFB15 in eine remote CPU geschrieben werden können.

Beschreibung des Programmbeispiels

Das STEP 7-Projekt beinhaltet zwei S7-400 Stationen mit der CPU 416-2DP und dem CP 443-1 für die Kommunikation über Industrial Ethernet. Als Kommunikationsgrundlage wurde eine S7-Verbindung zwischen den beiden Stationen eingerichtet. Wenn Sie über "rechte Maustaste > Objekteigenschaften" die Eigenschaften der S7-Verbindung in NetPro öffnen, können Sie den Bausteinparameter "ID" der Kommunikationsfunktionsbausteine einsehen. Diese Angabe ist beim Aufruf des SFB14 bzw. SFB15 zu beachten, damit ein Datenaustausch über die S7-Verbindung erfolgen kann.


Bild 1: Eigenschaften der S7-Verbindung

Das STEP 7-Programm besteht aus den Bausteinen OB100, OB1, FB100, DB100, DB200, DB201, SFB14 und SFB15.

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


Bild 2: OB100

  • OB1
    OB1 wird zyklisch aufgerufen. In diesem OB befindet sich der Aufruf des FB100 (Instanz-DB: DB100) mit M1.0 und M0.1. Nachdem der FB100 durchlaufen wurde, wird M1.0 zurückgesetzt.


Bild 3: OB1

  • FB100
    FB100 wird im OB1-Zyklus aufgerufen. In diesem FB finden Sie den Aufruf von SFB14 ("GET") und SFB15 ("PUT"). SFB14 wird über den Eingangsparameter "REQ" aktiviert, wenn der Taktmerker M10.6 eine positive Flanke hat und kein Auftrag läuft.
    Diese Verriegelung des Funktionsaufrufs ist wichtig, da die Funktion ein asynchrones Verhalten aufweist und mehrere Zyklen andauern kann. Eine ständige Aktivierung des Systemfunktionsbausteins ohne Warten auf Beendigung des bereits aktiven Auftrags kann eine Kommunikationsüberlast erzeugen. Der Eingangsparameter "ID" muss aus dem Eigenschaftsdialog der S7-Verbindung in NetPro übernommen werden (siehe Bild1). Beim Parameter "ADDR_1" wird der zu lesende Datenbereich aus der remote CPU angegeben. Beim Parameter "RD_1" muss der Datenbereich für die gelesenen Daten vorgegeben werden. Die Ausgangsparameter "NDR", "ERROR" und "STATUS" werden für die Auftragsauswertung benötigt und sind nur im gleichen Zyklus gültig!


Bild 4: FB100- Aufruf des SFB14

Wenn der Baustein mit Fehler durchlaufen wurde, wird das Statuswort des Bausteins für die Fehleranalyse gesichert.


Bild 5: FB100- Sichern des Statuswort

SFB15 wird über den Eingangsparameter "REQ" aktiviert, wenn der Taktmerker M10.6 eine positive Flanke hat und kein Auftrag läuft. Diese Verriegelung des Funktionsaufrufs ist wichtig, da die Funktion ein asynchrones Verhalten aufweist und mehrere Zyklen andauern kann. Eine ständige Aktivierung des Systemfunktionsbausteins ohne Warten auf Beendigung des bereits aktiven Auftrags kann eine Kommunikationsüberlast erzeugen. Der Eingangsparameter "ID" muss aus dem Eigenschaftsdialog der S7-Verbindung in NetPro übernommen werden (siehe Bild1). Beim Parameter "ADDR_1" wird der Datenbereich in der remote CPU angegeben, in den die Werte geschrieben werden sollen. Beim Parameter "SD_1" muss die Adresse der zu sendenden Daten vorgegeben werden. Die Ausgangsparameter "DONE", "ERROR" und "STATUS" werden für die Auftragsauswertung benötigt und sind nur im gleichen Zyklus gültig!


Bild 6: FB100- Aufruf des SFB15

Wenn der Baustein mit Fehler durchlaufen wurde, wird das Statuswort des Bausteins für die Fehleranalyse gesichert.


Bild 7: FB100- Sichern des Statuswort

Das STEP 7 Projekt als Download:
Das STEP 7-Projekt enthält ein Programmbeispiel für den Aufruf des SFB14 und den Aufruf des SFB15 mit Statusauswertung. Es wurde mit STEP 7 V5.2 erstellt.

Sample_S7-400_PUT-GET-01.exe ( 389 KB )  

Kopieren Sie die Datei "Sample_S7-400_PUT-GET-01.exe" in ein separates Verzeichnis und starten Sie die Datei anschließend per Doppelklick. Das STEP 7 Projekt wird automatisch mit allen Unterverzeichnissen entpackt. Sie können jetzt das Projekt mit dem SIMATIC Manager öffnen und bearbeiten.

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.