TIA Probleme mit VB Script

zimmermann

Level-2
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

bin gerade am Basteln...(TIA V13 und S7-300)

...und auf folgendes Problem gestoßen:

Wenn ich über ein Script den Wert einer Internen Variabel (popup_sollwert_fu) auf eine HMI-Variable (hier DB7.DBD2) schreibe, funktioniert das einwandfrei mit folgendem Script:

HmiRuntime.SmartTags("DB_PANEL_"& anl & "_" & bmk & dp) = SmartTags("popup_sollwert_fu")

Wenn ich dagegen den Wert der HMI-Variable auf eine Interne Varibale schreiben möchte, tut das nicht:

SmartTags("popup_sollwert_fu") = HmiRuntime.SmartTags("DB_PANEL_"& anl & "_" & bmk & dp)

Ist doch irgenwie das Gleiche, nur umgekehrt.
Die HMI-Variable setzt ich aus verschiedenen Teile zusammen.

Bin gerade am verzweifeln...

Vorab schonmal Danke und Grüße

Jochen
 
Woran machst du aus dass du nichts bekommst?
Landet in "popup_sollwert_fu" ein 0-Wert?
Wird der Wert überhaupt mit einem neuen Wert beschrieben? Als vorher mal was anderes reinschreiben und Skript ausführen.
Sonst ist auch gefährlich wenn dein ""DB_PANEL_irgendwas" nirgends aktualisiert wird. Dann bekommst du keinen neuen Wert. Stell mal die versuchsweise die Variablenaktualisierung auf zyklisch.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ronin,

wenn ich im Script statt der "DB_Panal.."-Variable eine Konstante schreibe, wird deren Wert in die Interne eingetragen. Ebenso wenn ich statt der "zusammengebauten" Variable, den direkten Variablennamen angebe...
 
Wie RONIN schon andeutete, nur mit anderen Worten: Wenn eine HMI-Variable gerade nirgends verwendet wird, dann wird auch nicht deren Wert aktualisiert. Du müsstest die zusammengebastelte Variable irgendwie in dem Bild (oder dessen Vorlage) unterbringen/verwenden wo das Skript aufgerufen wird, oder die Aktualisierung der Variable auf zyklisch stellen (was oft die schlechtere Lösung ist).

Wodurch wird das Skript aufgerufen?

Harald
 
Ebenso wenn ich statt der "zusammengebauten" Variable, den direkten Variablennamen angebe...
Wenn es bei Direkteingabe des VarNamens geht und mit dem Zusammenbau nicht, dann wird wohl was beim zusammenbauen daneben gehen.
Prüf einfach mal was vor dem Zugriff für ein String zusammengebaut wird.
Entweder per ShowSystemalarm raus-schreiben oder, einfacher, vor dem Zugriff in eine interne String-Variable schreiben und per EA-Feld beobachten.

Vorher interne StringVariable anlegen (Achtung- Länge erhöhen)
Code:
On Error Resume Next
Dim StrScriptInternal

Err.Clear
StrScriptInternal = "DB_PANEL_"& anl & "_" & bmk & dp
ShowSystemAlarm("Fehler 1: " & Err.Description)
SmartTags("HMIStringVar") = StrScriptInternal 
SmartTags("popup_sollwert_fu") = HmiRuntime.SmartTags(StrScriptInternal)
ShowSystemAlarm("Fehler 2: " & Err.Description)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ronin,
Hallo Harald,

vielen Dank für Eure Mühe und Hilfe!!

Habe jetzt den Erfassungszyklus der Variablen auf "zyklisch fortlaufend" eingestellt, und siehe da, es funzt!!!

Ronin, Dein Script ist perfekt!!! Konnte dadurch sicherstellen, dass der Variablenname passt.

Ende gut, alles gut! Gute Nacht!!! :D

Grüsse
Jochen
 
Zurück
Oben