Bit in einer 8Bit Variable mit VBS setzen

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen
Hoff das mir hier jemand weiterhelfen kann.

Ich benütze folgendes Skript


Sub OnClick(Byval Item)
Dim tag, msg

tag = HMIRuntime.Tags("8-bit").Read


msg = MsgBox ("Regelung einschalten ?",36,"Vorwärmeregelung")

If msg = 6 Then

HMIRuntime.Tags("8-bit").Write &H20
End If

Set tag = Nothing
Set msg =Nothing

End Sub


Soweit geht das ganze auch.. Das richtige Bit wird gesetzt in diese Variable.... Nur habe ich das Problem das gleichzeitig auch andere Bit die bereits gesetzt sind abgelöscht werden... Was mache ich da falsch?
Wär super wenn mir jemand weiter helfen könnte.

Danke
 
Ohne mich jetzt mit VBS/HMI auszukennen.
- Nicht mit & verknüpfen sondern mit Oder ||
- Wenn das nicht geht zuerst den Zustand der anderen Bits sichern und dann eben das Byte vor Verknüpfung neu Zusammenstellen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hmm danke... aber mit or geht das irgendwie nicht.. Kommt ein Syntaxfehler...

Und mit dem Sichern kann ich schon gar nicht *g* bin doch ein VB Dau ;)

Aber danke dir trozdem mal
 
Tobias29 schrieb:
Code:
Sub OnClick(Byval Item)         
  Dim tag, msg

  tag = HMIRuntime.Tags("8-bit").Read
  msg = MsgBox ("Regelung einschalten ?",36,"Vorwärmeregelung")
  If msg = 6 Then 
    HMIRuntime.Tags("8-bit").Write &H20 
  End If
	
  Set tag = Nothing
  Set msg =Nothing
End Sub

In VB funktioniert folgendes:

Setzen des Bits:
Code:
If msg = 6 Then 
  HMIRuntime.Tags("8-bit").Write (tag OR &H20)
End If

Rücksetzen des Bits:
Code:
If msg = 6 Then 
  HMIRuntime.Tags("8-bit").Write (tag AND NOT &H20)
End If

Problem ist dabei allerdings, dass Änderungen der Variablen während der Anzeige der Messagebox einfach überschrieben werden.
 
Zurück
Oben