TIA Slice-Zugriff in TIA WinCC und VB-Script

detronbe

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Wenn ich in SCL auf ein einzelnes Bit in einer Variable zugreifen will, kann ich das zum Beispiel so machen (Slice-Zugriff):

Code:
Test_Bool := "Test_DB"."Test_Array"[57][B][COLOR=#008000].[/COLOR][/B][COLOR=#008000][B]%X3[/B][/COLOR];      // (Datentyp: Array of Int)

Gibt es in in WinCC RT Advanced bei einem VB-Script die Möglichkeit, auf diese Weise direkt auf ein einzelnes Bit einer HMI-Variable zuzugreifen?
Alternativ würde mir auch helfen, wenn man direkt bei der Auswahl einer Variable z.B. für die Sichtbarkeit eines Elementes auf ein einzelnes Bit einer Variable zugreifen könnte.

Folgendes habe ich im Skript probiert, jedoch ohne Erfolg:

Code:
Test_Bool  = SmartTags("Test_Array")(57)[COLOR=#008000].%X3
[/COLOR]
Test_Bool  = SmartTags("Test_Array[COLOR=#008000].%X3[/COLOR]")(57)

Test_Bool  = SmartTags("Test_Array")(57).([COLOR=#008000]3[/COLOR])

Besten Dank im Voraus.
 
Alternativ würde mir auch helfen, wenn man direkt bei der Auswahl einer Variable z.B. für die Sichtbarkeit eines Elementes auf ein einzelnes Bit einer Variable zugreifen könnte.
Das sollte gehen.
Bei der Sichtbarkeits-Animation die gewünschte Variable auswählen und dann mit der Einstellung "Einzelbit" das gewünschte Bit dieser Variable angeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In VBS gibt es keine Slice-Bitzugriffe. Da wird üblicherweise das zu testende Bit ausmaskiert
Code:
Test_Bool = (Test_Word And 2^3) <> 0   [COLOR="#008000"]'SCL: Test_Bool := Test_Word.%X3;[/COLOR]
Test_Bool = (Test_Word And &H8) <> 0   [COLOR="#008000"]'SCL: Test_Bool := Test_Word.%X3;[/COLOR]
Test_Bool = (Test_Word And &H400) <> 0 [COLOR="#008000"]'SCL: Test_Bool := Test_Word.%X10;[/COLOR]
Test_Bool = (Test_Word And 32768) <> 0 [COLOR="#008000"]'SCL: Test_Bool := Test_Word.%X15;[/COLOR]

Aber Vorsicht beim Maskieren von DWords!
! Runtimeerror wenn Bit .31 = 1 ist
! fehlerhafte Ergebnisse wenn Bits .15 bis .31 mit &Hnnnn-Hexkonstanten maskiert werden
siehe VBS Laufzeitfehler Überlauf

Harald
 
Zurück
Oben