TIA WinCC V14 Adv TP1900 Panel VBS Datentypen definition

jok3r

Level-2
Beiträge
353
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
kann man irgendwie in einer VBS Variable einen Typ Definition vornehmen ?
Das Funktioniert nur wenn die PageNr eine HMI Variable vom Typ Int ist.
Im Skript kann ich aber keinen Datentyp festlegen.... und ich bekomme die meldung das der Typ nicht konvertiert werden konnte.

Gruß

Code:
PageNr = Left(ActiveScreenName,InStr(1,ActiveScreenName," ",vbBinaryCompare))
Select Case True
 Case PageNr >=100 And PageNr < 200
  GlobalDB_Visu_activeMainMenu = 1
 Case PageNr >=200 And PageNr < 300
  GlobalDB_Visu_activeMainMenu = 2
 Case PageNr >=300 And PageNr < 400
  GlobalDB_Visu_activeMainMenu = 3
 Case PageNr >=400 And PageNr < 400
  GlobalDB_Visu_activeMainMenu = 4
 Case PageNr >=500 And PageNr < 500
  GlobalDB_Visu_activeMainMenu = 5
 Case PageNr >=600 And PageNr < 600
  GlobalDB_Visu_activeMainMenu = 6
End Select
 
In VBS kann man beim Deklarieren von Variablen keinen Datentyp angeben. In VBS ergibt sich (und ändert sich auch!) der Typ des Inhalts der Variable bei jeder Zuweisung. Man muß darauf achten daß der Ausdruck rechts von der Zuweisung den gewünschten Datentyp ergibt.
Bei Dir: die Left-Funktion liefert eine Zeichenfolge. Die müsstest Du explizit mit einer Konvertierfunktion in Int umwandeln, z.B. mit CInt()

Falls es in Deinem TIA V14 keine VBS-Hilfe gibt: eine VBS-Referenz findest Du in dieser FAQ im Beitrag #1 und #10
PS: schau Dir in der VBS-Hilfe mal die Syntax der "Select Case" Anweisung an. Ich glaube das kann man nicht so schreiben.
PPS: hab's gefunden, den Trick "Select Case True" kann man so schreiben :) allerdings:
Salman Arshad schrieb:
I recommend that you code the conditions using IF...ELSEIF...ELSE...END IF Statements
[...]
You can use the SELECT CASE TRUE but it is essentially the same as a bunch of IF...ELSEIF

Harald
 
Zuletzt bearbeitet:
Zurück
Oben