TIA Variable aus Skript aktualisieren

blimaa

Level-2
Beiträge
957
Reaktionspunkte
103
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi
Variablen kann man anscheinend im WinCC Adv. auf Anforderung aktualisieren.
Nun starte ich mein Skript. Dort sollten zuerst die Variablen aktualisiert werden und danach weiter verarbeitet werden.

Die Hilfe sagt dazu:
Wenn sie die ERfassungsart "Auf Anforderung" wählen, wird die Variable nicht zyklisch aktualisiert. Die Aktualisierung erfolgt nur auf Anforderung, z.B. durch die Systemfunktion "Aktualisiere Variable" oder auch durch ein Skript


Also habe ich mir mal ein paar Testvariablen angelegt.
1. Problem: Bei diesen muss man ja eine Ziffer anlegen. z.B. bei Variable1 die 50. Nun kann ich aber die Variable2 nicht auch die 50 vergeben. Der Wert darf aber nur zwischen 1 und 100 liegen... das würde ja heissen, dass ich max. 100 Variablen so aktualisieren könnte...
2. Problem: wie kann ich nun im Skript die Aktuallisierung starten?
3. Problem: wie lange brauchen den jetzt die Daten, bis sie aktuell sind???

Wer weiss bescheid?`:rolleyes:
 
Hi

Die Systemfunktion "AktualisiereVariable" wird Dir wohl nicht helfen. Man bekommt keine Rückmeldung wann die Aktualisierung fertig ist und "AktualisiereVariable" ist in Skripten nicht verwendbar.

Im Skript kann man die Aktualisierung einfach auslösen indem man die Variable einmal liest. Dann erstellt WinCC einen Leseauftrag für die Variable und packt den in die normale Aktualisierungs-Auftragsschlange. Dann könnte man im Skript warten, ein..zwei Sekunden später sollte die Aktualisierung erfolgt sein - das ist aber nicht garantiert.

Man könnte der Variable zunächst einen Wert zuweisen (*) der normal nie vorkommt und warten bis ein anderer Wert drinsteht - dann wurde die Variable aktualisiert.
(*) dadurch wird allerdings der Wert zunächst in die Variable in der PLC geschrieben

Sicher aktualisiert bekommt man Variablen nur mit Handshake ins HMI eingelesen, wofür es sogar schon was fertiges gibt: Einlesen per Rezeptur mit "GetDataRecordTagsFromPLC".
Schau mal hier, da geht es genau um das "AktualisiereVariable" und das Einlesen per Rezeptur mit Warten auf die Fertigmeldung.

Alternativ zur Rezeptur könnte man sich auch selber ein Handshake mit der PLC programmieren, z.B. zunächst ungültige Werte in die Variablen in der PLC schreiben und ein Anforderungs-Bit zur PLC setzen. Die PLC wartet dann bis alle Variablen die ungültigen Werte haben und schreibt danach die richtigen Werte in die Variablen und setzt ein Fertig-Bit. Die HMI wartet nun bis alle Variablen nicht mehr die ungültigen Werte haben und kann sie danach verwenden. Das Schreiben der ungültigen Werte kann man weglassen, wenn man über alle Variablenwerte eine Prüfsumme bildet und die Prüfsumme ebenfalls von der HMI gelesen wird.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi
Ja das scheint ja eine grössere Sache zu sein...
Eigentlich wollte ich Messwerte in eine SQL Datenbank schreiben via HMI Runtime. Vieleicht doch so etwas wie sql4automation oder sowas in der Art nehmen.

Trotzdem besten Dank für die ausführliche Erklärung.

Braucht den irgendwer diese Variablenaktualisierung auf verlangen???

Gesendet von meinem BLN-L21 mit Tapatalk
 
Zurück
Oben