Bitzugriff in WinCC VBS

Anfängerproggi

Level-1
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moinsen,

ich habe in WinCC ein Visual Basic Script programmiert, in dem ich mehrere Variablen miteinander vergleiche und "umsortiere". Bei diesen Variablen möchte ich nun aber gerne auf einzelne Bits zugreifen. Wie komme ich an diese ran?
 
z.b. so

Dim Tag
Tag = HMIRuntime.Tags("Deine Variable").Read

If (Tag And 8 ) <>0 then ' 8 steht z.b. für Bit 3
'Anweisung
else
' Anweisung

End If

Set Tag = Nothing
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hmm also nochmal. Du hast ca. 200 Variablen. Aus diesen willst du jeweils ein Bit auslesen. Was soll passieren wenn das Bit "True" ist...
Oder müssen alle 200 eine 1 haben.

Beschreib doch mal bischen genauer was du machen willst. (Kann aber nicht versprechen, das ich weiter helfen kann)
 
Also...ich habe ein Haufen Messwerte(circa 200) die in Bytes abgelegt werden. Diese Messwerte sind in einem Datenbaustein. Nun habe ich ein Skript geschrieben, in dem immer bestimmte Bits abgefragt werden müssen. Es gibt in jeder Variable ein Bit, das anzeigt, ob ein Sensor Netzspannung hat bzw. in Betireb ist. Das ist das Bit 3 der Variable.

Nun steht im Skript: if Variable1 Bit 3 =1 then Variable1Betrieb=1 else Variable1Betrieb=0

Das ganze Circa also 200 mal und teilweise muss ich dann noch auf andere Bits der Variablen zugreifen.

z.B. Variable2 Bit2 =1 oder Variable3 Bit2 dann Ergebnis=1

Wie schreibe ich nun den Bittzugriff?
 
hm da du auf 200 Variablen zugreifen mußt. Sprich lesen denke ich bleibt dir nichts anders als diese 200 einzeln im skript zu schreiben.
Andere möglichkeit wäre dein DB in Rohdaten einlesen.

Mit diesen Rohdaten kannst du glaub ich 256 Byte einlesen. Bin mir aber nicht mehr ganz sicher.... Aber du sparst dir halt nur das einlesen der 200 Variablen. das zuweisen denke ich mußt du trozdem einzeln schreiben


Schreiben kannst du in VB z.b. so..

Tag = HMIRuntime.Tags("Deine_Variable").Read

HMIRuntime.Tags("Deine_Variable").Write (Tag Or &H4) ' z.b. Bit 2 schreiben


Hier noch die einzelnen Bits aufgelistet

Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7
&H1 &H2 &H4 &H8 &H10 &H20 &H40 &H80
 
Zurück
Oben