# vbscript indizierte Adressierung auf verschiedene Datenbausteine



## Erikli (7 November 2019)

*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


----------



## Wincctia (7 November 2019)

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


----------



## Erikli (7 November 2019)

Hallo Wincctia,

WinCC RT prof Tia v14


----------



## Ralle (7 November 2019)

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.


----------

