×
Siemens Industry Online Support
Siemens AG
Beitragstyp: Anwendungsbeispiel Beitrags-ID: 18754615, Beitragsdatum: 30.03.2004
(0)
Bewerten

Ret_Val-Werte von SFCs speichern

  • Beitrag
  • Betrifft Produkt(e)

FRAGE:  
Ist es möglich, den Ret_Val-Wert einer Systemfunktion zwischenzuspeichern?

ANTWORT:  
Während der Anwendung einer Systemfunktion im Onlinemodus kann es vorkommen, dass man nacheinander verschiedene Ret_Val-Werte erhält, oder dass sich der Ret_Val-Wert nur kurz ändert, danach aber zur Auswertung nicht mehr zur Verfügung steht.

Mit dem beiliegenden Programmbeispiel ist es möglich, die ausgegebenen Ret_Val-Werte nacheinander in einem Datenbaustein zu speichern. Das Programmbeispiel enthält einen Funktionsbaustein FB20 (mit dem zugehörigen Instanzdatenbaustein DB20), eine Funktion FC20 und einen Globaldatenbaustein DB22 in dem die Ret_Val-Werte gespeichert werden.

Bild1: Aufrufstruktur der enthaltenen Bausteine 

Der FC20 ist nach dem Aufruf eines Systemfunktionsbausteins bzw. einer Systemfunktion auszuführen. Als Übergabe Parameter erhält der FC20 den Ret_Val-Wert der von dem Systemfunktionsbaustein bzw. der Systemfunktion zurück gegeben wurde. 
Im FC20 erfolgt zunächst die Abfrage, ob der Ret_Val einen neuen Wert erhalten hat. Der neue aktuelle Ret_Val-Wert wird dann in ein Vergleichsmerkerwort geschrieben und steht dann als Vergleich für die weiteren Ret_Val-Werte zur Verfügung. Bei einem neuen Ret_Val-Wert wird der FB20 aufgerufen der den Ret_Val-Wert in den DB22 speichert.
Der FB20 und der DB22 sind für 50 Ret_Val-Werte ausgelegt. Sie können aber auf eine größere Anzahl von Ret_Val-Werten erweitert werden.

Der DB22 hat 50 Adressen (DB22.DBW0, DB22.DBW2, ...). Jede Adresse ist für je einen Ret_Val-Wert reserviert. Ist eine Adresse schon mit einem Ret_Val-Wert belegt, wird der neue (geänderte) Ret_Val-Wert in die nächste Adresse eingetragen. 
Im FB20 erfolgt zunächst die Abfrage, welche nächste freie Adresse im DB22 zur Verfügung steht. Ist diese ermittelt, wird der neue aktuelle Ret_Val-Wert in diese Adresse (außer der Wert Null) eingetragen und das Programm beendet. Der eingetragene Ret_Val-Wert wird nicht überschrieben, und der nächste neue sich ändernde Ret_Val-Wert wird dann in die nächste Adresse geschrieben. Sind alle 50 Adressen im DB22 belegt, muss für den DB22 im FC20 ein Reset durchgeführt werden. Alle Adressen im DB22 werden dann auf Null gesetzt.

Zur Übergabe des Ret_Vals wird der FC20 in einem Baustein aufgerufen (z.B. im OB1 wie im Programmbeispiel) und mit einem Merkerwort parametriert.

Der beigefügte Download enthält das STEP 7 Projekt "S_RetVal" mit den oben beschriebenen Bausteinen zum speichern des Ret_Vals. 

S_Ret_Val.exe

Kopieren Sie die Datei "S_Ret_Val.exe" in ein separates Verzeichnis und starten Sie die Datei anschließend per Doppelklick. Das STEP 7 V5.2 Projekt wird jetzt automatisch mit allen dazugehörigen Unterverzeichnissen entpackt. Anschließend können Sie das entpackte Projekt mit dem SIMATIC Manager öffnen und bearbeiten.

Ablauffähigkeit und Testumgebung:
Das Beispiel ist einsetzbar auf allen CPU Varianten der SIMATIC S7-300 und S7-400.
In folgender Tabelle sind die Komponenten aufgeführt,  mit denen dieser Beitrag erstellt und die beschriebene Funktionsweise verifiziert wurde:

Testumgebung Version 
PC Plattform Pentium III, 800MHz, 260 MB Hauptspeicher
PC-Betriebssystem Microsoft Windows XP V5.1 SP1
STEP 7  STEP 7 V5.2 SP1
Optionspakete -- 
S7-CPU CPU 417-4  V3.1

Suchbegriffe:
Fehlerinformation, Fehlercode

 

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.
Beitrag bewerten
keine Bewertung
Anfragen und Feedback
Was möchten Sie tun?
Note: The feedback always refers to the current entry. Your message will be sent to the editors in the online support. You will receive an answer from us in a few days if your feedback requires it. If everything is clear to us, we will no longer answer you.