Step 7 Variabler Text in WINCC PCS7 V8.2

APHA

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

In einem System (PCS7 V8.2 mit WinCC, 400er Steuerung) ist aktuell ein Feld mit statischem Text.
Ziel ist es, dass die Bediener (am besten noch differenziert mit Benutzerrechten über Simatic Logon) den Text vom Bedienpanel aus anpassen können.

Mein Gedanke war nun, einfach ein E/A Feld daraus zu machen und einen String als Hilfsvariable dahinter zu legen, in dem der aktuelle Feldinhalt gespeichert ist.

Nun muss die Variable aber irgendwo her kommen, wofür ich m.E. im CFC einen Baustein mit IN und OUT als String benötige, oder? Hier habe ich schonmal die Standard-Lib durchforstet und z.B. "FC 2 CONCAT" gefunden. Funktioniert das damit?
Oder kann ich vielleicht sogar einfach einen "DI zu String" nehmen, weil ich entgegen meiner Annahme dafür gar nicht in UND out brauche, sondern nur eins der Beiden?

Den Baustein müsste ich dann ja einfach ohne Anbindungen in den CFC ziehen und nur im WINCC auf die Variable dahinter verweisen, wenn ich richtig liege.

Besten Dank im Voraus und viele Grüße.
 
Was soll denn mit dem String realisiert werden? Reicht da vllt auch eine interne Variable in WinCC?

Du kannst ja auch einfach einen "User"-DB anlegen. Also einen Datenbaustein mit einer Nummer kleiner 60 (glaub das war die Standard Einstellung in PCS7... Nachzusehen in einem CFC - Extras - Einstellungen - Übersetzen/Laden) anlegen und darin deinen String ablegen. Den kannst du ins WinCC hochmappen.

1668432838447.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was soll denn mit dem String realisiert werden? Reicht da vllt auch eine interne Variable in WinCC?

Im "statischen Textfeld" steht aktuell eine Chemiebezeichnung, welche an das Zulaufventil der Anlage angeschlossen ist. Bei Prozessumstellung wird an den Zulauf dann eine andere Chemie angeschlossen.
Aktuell muss da immer jemand an die ES und das WinCC Projekt "umprogrammieren", also den statischen Text abändern und anschließend Übersetzen/Laden/Archiv erstellen, etc.
Ziel ist, dass umbauende Mitarbeiter im Bedienterminal das Feld anklickt und reinschreibt, dass da jetzt "Chemie xy", ohne das ein Programmierer eingebunden werden muss.
 
Ok, dann wäre eine interne Variable denke ich eher ungünstig, da diese ihren Wert verliert, sobald die Runtime geschlossen wird.

Ich würde den Weg über einen DB gehen wie oben beschrieben. Anschließend ein EA Feld in WinCC anlegen
 
Einen Datenbaustein dafür zu verwenden funktioniert zwar, ist aber im PCS7 Umfeld die schlechteste Lösung.

Im einfachsten Fall erstellst du dir einen FB mit einem Eingangsparameter vom Typ String mit den entsprechenden Attributen, damit der Wert in die OS gemappt wird, und auch als Parameter gekennzeichnet ist und rücklesefähig ist. Das hat den Vorteil, dass wenn der FB in den zugehörigen CFC-Plan eingefügt wird, diese Zusammengehörigkeit / Durchgängigkeit erhalten bleibt. D.h. alles bleibt objektorientiert: wird der CFC-Plan gelöscht, dann werden mit übersetzen auch die OS-Variablen entfernt. Außerdem lassen sich die Parameter z.B. für ein Backup dann auch zurücklesen.

Wenn du das mehrfach hast, dann würde sich natürlich auch ein entsprechendes Objekt in der OS anbieten was automatisch erzeugt wird, mit allem was dazugehört um PCS7 konform zu sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe mir das Ganze eben nochmal vor Ort angesehen.
Über die DB-Lösung wurde bisher noch gar nichts so gemacht, würde ich deshalb auch eher nicht favorisieren.

Der FB wäre dann ganz leer oder? Ist ja m.E. quasi nur der Container für den String. Und da reicht dann auch der Eingangsparameter für Ein- UND Ausgabe? Ist das dann noch mit Änderungsladen implementierbar?
 
Ja, der FB bzw. der spätere Instanz-DB ist quasi nur ein Container um die Daten zu halten. Änderungsladen ist kein Problem, der FB bekommt ja einen eigenen Instanz-DB und beeinflusst den Rest im CFC-Plan nicht.

Je nach Bibliothek würde ich versuchen zumindest annähernd den Stil fortzuführen. Wie bei der APL beim OpAnL ist der Wert auf den die OS schreibt ein IN-Parameter, die Attribute kann man sich auch "abgucken".

Du musst bei den Strings in der SPS nur an die Max.-Länge denken, und bei Fremdsprachen (chinesisch, kyrillisch usw.) muss man auch aufpassen, welche Zeichen im 8-Bit Zeichensatz untergebracht werden können.
 
Zurück
Oben