Step 7 Programmkonstanten ohne Neucompilierung ändern

GBat

Level-1
Beiträge
84
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Bei meiner S7-1200 würde ich gerne Konstanten/Parameter wie z.B. Verzögerungszeiten von Timern oder PID-Werte von Reglern nachträglich ohne Neucompilierung ändern.

Das geht wahrscheinlich. Irgendwie suche ich wahrscheinlich immer nach den falschen Begriffen.

Welche Möglichkeiten gibt es hier eigentlich?

Gefunden habe ich:

1.) Änderung von Parametern durch Zugriff über ein Display
2.) Änderung von Parametern durch Zugriff über Webserver (benutzerspezifische Webseiten)
3.) Werte auf eine Flash-Karte schreiben und dann auslesen

Kann man aber auch nur mit dem TIA-Portal auf eine SPS zugreifen und Parameter ändern - sozusagen als allereinfachste Methode weil kein Programmieraufwand notwendig wäre? Also einfach auf eine beliebige S7-1200 per TIA zugreifen, auch wenn man den Quellcode z.B. nicht hat und das Programm parametrieren.

Beste Grüsse und Danke für eure Tipps

Geri
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Halloy vinylsucker

Danke für den Hinweis. Modul M4 der Siemens Ausbildungsunterlagen kenne ich. Dorst steht was zu diesem Thema.

Werde aber mal mit den Begriffen suchen. Was ich bisher schon geschafft habe, das ist mit Hilfe des TIA-Portals über Profinet eine Verbindung zu einer S7-1200 herzustellen. Dort sieht man die FBs, OBs etc. man kann aber keine Parameter ändern. Die PLC-Tagliste und die Datenbausteine sieht ma aber z.B. nicht.

Beste Grüsse und Danke nochmals

Geri
 
Hallo

Danke für die Infos! Ja, dieses Beispiel hatte ich mir auch schon angeschaut. Sie sind sehr interessant.

Mich würde interessieren wie man das Schreiben bewerkstelligen kann und als was man die Parameter definieren muss, damit man sie im nichtflüchtigen Speicher ändern und dort wieder ablegen kann.

Irgendwie muss das ja gehen:)

Beste Grüsse
Geri
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi!

Du kannst deine veränderbaren Parameter ganz einfach in einem Datenbaustein "aufräumen" und als "remanent" deklarieren.
Der Datenbaustein befindet sich im Arbeitsspeicher der SPS (wenn er nicht explizit so konfiguriert wurde, dass er nur im Ladespeicher existiert) und somit sind die Daten bei einer Änderung auch erstmal remanent gespeichert.

Wenn du dann von aussen über die von dir gewollte, einfachste Methode Daten verändern willst, gehst du folgendermaßen vor:
1. Verbindung zur CPU aufbauen (optimaler Weise aus der Projektdatei heraus), also "Online" gehen.
2. In der Baumstruktur der CPU gibt es den Punkt "Beobachtungs- und Forcetabellen".
3. Lege dir eine neue Tabelle an und gebe in der Spalte "Name" die Adresse der Parameter in deinem Datenbaustein an. (z.B.: TESTDATENBAUSTEIN.PARAMETER1)
4. Klicke auf die Schaltfläche "Alle beobachten" (Brille mit dem "Play"-Symbol)
5. Blende die "Steuerspalte" ein (Blitz-Symbol mit Spaltensymbol, ganz links)
6. Gebe für die Daten einen neuen "Steuerwert" in der Spalte "Steuerwert" ein
7. Wähle in der Steuerspalte (Spalte mit dem Blitz-Symbol) durch aktivieren des Häckchens den Steuerbefehl an
8. Wähle die Schaltfläche "Steuern, einmalig" (Blitz-Symbol mit der "1")
9. Die neuen Werte wurden nun in die angegebene Adresse geschrieben und sind remanent gespeichert (nur wenn die Variable im Datenbaustein auch so deklariert wurde!!)


Das ist die günstigste und schnellste Methode, manuell Parameter anzupassen.

Die zweite Variante wäre den internen Webserver zu verwenden.
Die beste/komfortabelste Variante ist dann ein Touchpanel (bzw. eine Runtime auf einem PC).


Gruß,

Ottmar
 
Zuletzt bearbeitet:
Hallo Ottmar

Vielen Dank für deine ausführliche Antwort. In der Art habe ich es schon mal probiert.

Werde mir die Sache morgen nochmals genauer zu Gemüte führen und dann Rückmeldung geben.

Die Lösung mit dem Tochpanel würde mir eigentlich auch am besten gefallen. Möchte aber gerne mal die verschiedenen Möglichkeiten probieren.


Beste Grüsse und vielen Dank nochmals
Geri
 
Um veränderliche Parameter spannungsausfallsicher zu speichern ist das Anlegen in remanenten Datenbausteinen die Standardlösung. Dort können die Werte mit allen möglichen Variablendiensten verändert werden. Allerdings halten die da eingestellten Werte nur bis zum nächsten Urlöschen... Sollen die Werte wirklich "nichtflüchtig" für "immer" (auf der Memorycard) abgespeichert werden, dann muß man die Werte nicht nur in den Aktualwerten sondern auch in den Anfangswerten eintragen - man muß den/die Datenbaustein(e) aus der CPU herauslesen, ändern und erneut in die CPU laden. Was ich nicht weiß: Eventuell gibt es bei S7-1200 auch Systemfunktionen für das Ändern der Anfangswerte oder andere Funktionen, um Werte auf der Memorycard abzuspeichern und wieder zu lesen.

Sollen öfters ganze Parametersätze gespeichert und wiederhergestellt werden, dann ist das eine typische Aufgabe für ein Operatorpanel mit Rezepturen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Könnte man nicht die SFC22/SFC23/SFC24/SFC82/SFC83 beziehungsweise SFC21 (SIMATIC7) oder überhaupt eine der Datenbankhandling Funktionen aus der Bibliothek benutzen ?

(... es ist nur eine Frage !)
 
Zuletzt bearbeitet:
Guten Morgen

@Harald: Bei der S7-1200 kann man bei den Variableneigenschaften festlegen ob diese das Attribut "RETAIN" haben soll. Remanent kann ich im TIA-Portal 12 nicht finden. Ich bin nun aber mal hergegangen und habe in einem Datenbaustein eine Variable mit dem Namen MBTestVariable vom Typ Byte definiert und dieser den Wert 212 zugewiesen sowie diese als RETAIN markiert.
Nach dem Compilieren und Upload zur CPU das Programm gestarte und im Webterminal die Variable "Data_block_1".MBTestVariable unter dem Menüpunkt "Variable Status" überwacht. Dort steht der Wert 212 drin.
Anschliessend habe ich im TIA-Portal den Wert im Datenbaustein geändert. Im Webterminal hat sich aber (auch nach Neustart der CPU) und Aktualisierung des Web-Browsers nichts geändert.

Habe es dann auch mal mit Forcing versucht. Die Variablen im Datenbaustein liessen sich nicht forcen. Lediglich jene, die als globale PLC-Tags definiert sind...


Was mach ich hier bitte falsch?

Ist das Forcing von Variablen eigentlich nicht nur für Testzwecke gedacht?

In meinem Fall handelt es sich bei den Parametern z.B. um Verzögerungszeiten und Kalibrierwerte, die man später verändern können sollte..

@00alex: Dazu kann ich nichts sagen:) Datenbank klingt aber interessant.

Vielen Dank für eure Hilfe

Geri
 
Hi!

Gehe nach meiner Anleitung vor, das ist genau das was du machen willst.

Die variable muss "gesteuert" werden.


Gruß,

Ottmar
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Könnte man nicht die SFC22/SFC23/SFC24/SFC82/SFC83 beziehungsweise SFC21 (SIMATIC7) oder überhaupt eine der Datenbankhandling Funktionen aus der Bibliothek benutzen ?

(... es ist nur eine Frage !)
@00alex
1.) Hast Du eine Liste, welche SFC und SFB auf welcher S7-1200-CPU vorhanden sind und also genutzt werden können?
2.) Kann es sein, daß Du mit "Datenbankhandling Funktionen" etwas verwechselst? Mit "DB" in S7-Steuerungen sind nicht Datenbanken sondern Datenbausteine gemeint. Das sind zwei völlig verschiedene Sachen. Ich schätze, Du hast mit Deinem "nur eine Frage"-Beitrag den TE etwas verwirrt...

Harald
 
Ab Firmware Version 4 soll die Möglichkeit bestehen CSV Dateien auf der 1200er als
Quasi Rezepturverwaltung zu nutzen, vielleicht wäre das auch eine Lösung.
 
Hallo Ottmar

Vielen Dank, das klappte so. Hatte einen Schritt nicht richtig ausgeführt. Im Webbrowser kann man das Verhalten unter dem Menüpunkt "Variable Status" gut nachvollziehen.

Gibt es "standardmässig" eigentlich noch einen Weg eine solche Variable zu ändern, selbst wenn der Benutzer kein HMI oder Zugriff auf den Webserver hat und den Sourcecode nicht gerade dabei hat? Soviel ich gesehen habe, kann man mit dem Web-Browser auch nur Variablen betrachten, außer man erstellt sich seine eigenen Web-Pages..

..oder muss er immer das TIA-Portal und den Sourcecode auf seinem PC haben?

Beste Grüsse und vielen Dank nochmals für eure Hilfe!

Geri
PS: Am schlausten ist wahrscheinlich ein Display an die Steuerung zu hängen... Alleine schon für die Diagnose beim Auftreten von Fehlern...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Am einfachsten (mit dem wenigsten Zusatz-Aufwand) wird das Ändern wohl direkt mit dem TIA-Portal sein, notfalls auch ohne Sourcecode. Wenn der Anwender die Werte ändern können soll, dann macht man es üblicherweise mit einem Operatorpanel.

Wenn man die Datenbausteine "nicht optimiert" anlegt, so daß die Variablen in den DB eine absolute Adresse haben, dann gibt es viele Programme, die schon Variablen in S7-300/S7-400 von außen ändern konnten und dann auch mit S7-1200 funktionieren sollten. Dann könnte man z.B. auch mit Excel und LibNoDave die Variablenwerte ohne Siemens-Software lesen/schreiben/ändern.

Harald
 
Hallo zusammen

@rostiger Nagel: Klingt interessant, Danke, werde ich mir auch mal anschauen


@Harald
Vielen Dank für deine Hinweise. Ich habe schon gesehen, das Operatorpanel ist eine sehr gute Lösung - auch weil man ohne weiteres Gerät an der Steuerung Änderungen durchführen kann.

Eine letzte Frage zur Kalibierwerteverwalung hierzu nun noch: Wie legt ihr eure Kalibrierwerte in der Steuerung an? Möglich wäre ja beispielsweise einen Datenbaustein oder Datenbausteine zu definieren und diese dort alle abzulegen. Dann gäbe es einen übersichtlichen logisch abgetrennten Bereich. ..oder macht man das vielleicht besser anders? ..mal abgesehen von Rezepturen (grösseren komplexen Datenkonstrukte..


Beste Grüsse und vielen Dank nochmals

Geri
 
Zuletzt bearbeitet:
Die Werte in einem remanenten Datenbaustein zusammenfassen.
Dann weiß man z.B. bei Serienmaschinen, daß man außer dem Standard-Programm (was in allen Maschinen gleich ist) noch einen Datenbaustein extra sichern/einspielen muß (der einzige Unterschied zwischen den Serienmaschinen).
Bzw. bei single-Anlagen reicht ein Voll-Backup und dann regelmäßige Backups nur des Einstellungen-Datenbausteins (falls sich die Einstellungen öfters ändern).

Harald
 
Zurück
Oben