vbscript indizierte Adressierung auf verschiedene Datenbausteine

Erikli

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
WinCC RT prof vbscript indizierte Adressierung auf verschiedene Datenbausteine

Hallo Leute,


ich möchte über VBScript auf die gleiche Adresse in verschiedenen DB's zugreifen, je nachdem, welcher DB über einen Integer aktiviert wurde. Nehmen wir an, ich habe 5 Datenbausteine und möchte
auf Bit 0.0, in Abhängigkeit des Betrages im Integer, zugreifen.

Ist der Integer=3 intressiert mich DB3.DBX0.0. Ist der Integer=5 intressiert mich DB5.DBX0.0

Jetzt meine Frage, wie schreibe ich das in VBSript?

SmartTags "DB[" & ("Integer") & "].dbx0.0" ?

Ich bekomme es einfach nicht hin :confused:
 
Zuletzt bearbeitet:
Hallo Erikli,

leider schreibst nicht welches System du Verwenden willst, es klinkt für mich etwas nach win Cc Flex oder Tia Advanced. Da solltest du dier mal Variablen Multiplexen anschauen mit so etwas kann es dann Realisiert werden.

Gruß Tia
 
Mit den Smarttags greifst du ja nicht direkt in den DB, sondern auf Variablen, die du in WinCC Prof in den Variablentabellen angelegt hast, die wiederum auf die Variablen in der SPS zeigen
In WinCC, in den HMI-Variablen mußt du für jeden DB inkl. Inhalt oder mehrer Variable anlegen. Da muß man leider etwas probieren, ein Array-Variable oder Strukturvariable kann man einfach aus dem DB in eine Variablendabelle ziehen, ob das mit dem DB geht mußt du testen. Fakt ist, das wird dann so einige Powertags kosten, denn JEDES!!!! Element z.B. in einem Array 0...999 sind das 1000 kostet dich einen Powertag. Da muß man bei Strukturen genau hinsehen, was man eigentlich braucht.

Diese dann angelegten Variablen, kannst du als Smarttags ansprechen.

Eine Variable baust du dann so zusammen:

OrderVar = "PB2O-Auftrag_" & Number
OrderVarINI = OrderVar & "_INI"
OrderVarName = OrderVar & "_Name"
OrderTemplateVar = OrderVar & "_TemplateName"

Dim OrderName, OrderStatus
OrderName = CStr(HMIRuntime.Tags(OrderVarName).Read(1))
OrderStatus = CInt(HMIRuntime.Tags(OrderVarINI).Read(1))

Was ich gerade nicht weiß, weil ich das noch nicht gemacht habe, ob du so auch die zusammengesetzen Variablen (mit Punkt) zudsammenbauen kannst oder ob das nur mit "einfachen" direkten Variablen geht.
 
Zuletzt bearbeitet:
Zurück
Oben