Boolesche variable setzen bzw. rücksetzen über einen Button

borsti87

Level-1
Beiträge
71
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
achtung.gif


Kann mir jemand sagen wie ich eine boolsche Variable über einen Button erst auf TRUE setzen kann und bei erneutem betätigen wieder auf FALSE setzen kann?

Ich habe bis jetzt folgendes
Code:
[LEFT][LIST=1]
[*]If JoystickButton = True And bPressed = False Then
[*]    bPressed = True
[*]    If Variable = False Then
[*]        Variable = True
[*]        Sleep (200)
[*]    Else
[*]        Variable = False
[*]        Sleep (200)
[*]    End If
[*]ElseIf JoystickButton = False Then
[*]    bPressed = False
[*]End If[/LIST][/LEFT]
Danke bosti87
 
Zuletzt bearbeitet:
ein Binäruntersetzer also? nun, in step7 würde er so funktionieren (z.b.)

Code:
U  E0.7       //Eingang E0.7 
FP #FO        //Abfrage positive Flanke über Flankenoperanden FO 
=  #IO        //zuweisen des Flankenoperanden FO an den Impulsoperanden IO 
  
U  #IO        //Abfrage des Impulsoperanden IO 
UN A2.0       //Abfrage und Negation des Signalzustandes des Ausgangs A2.0 
S  A2.0       //Ausgang A2.0 setzen 
R  #IO        //rücksetzen des Impulsoperanden 
  
U  #IO        //Abfrage des Impulsoperanden 
U  A2.0       //Abfrage des Ausgangs A2.0 
R  A2.0       //rücksetzen des Ausgangs A2.0

in einer hochsprache so

Code:
If (E0.7 == true AND #IO == false)
Then #IO = true
Else #IO = false
EndIf

If (#IO == true AND A2.0 == false)
Then A2.0 = true
#IO = false
EndIf

If (#IO == true AND A2.0 == true)
Then A2.0 = false
EndIf
oder?
 
Zuletzt bearbeitet:
für die sps ist das alles viel zu kompliziert...
hier die einfache lösng:

U E1.0
FP M100.0
X A1.0
= A1.0


gibts es in deiner hochsprache auch sowas wie x-oder?
 
Ja das mit dem Minimalisten "ELTAKO" ist schön ich habe es als FUP (für CoDeSys/Beckhoff) auch mal hier angehängt.

Aber zu dem Eigentlichen Topic: Wo drin läuft den der Code bei VB ist ja fast alles ereignisgesteuert. Lässt Du das mit einem Timer laufen oder wo?
 

Anhänge

  • Eltako_FUP.gif
    Eltako_FUP.gif
    2,1 KB · Aufrufe: 43
das label ändert sich duch das klicken einer joysticktaste, gleichzeitig ändert sich mein boolescher wert

Code:
(...)

Select Case MyJoy.dwButtons
        Case 1 ' Button1
            bButton(1) = True
            lblButton1.Caption = 1
        Case 2 ' Button2
            bButton(2) = True
            lblButton2.Caption = 1
        Case 4 ' Button3
            bButton(3) = True
            lblButton3.Caption = 1
        Case 8 ' Button4
            bButton(4) = True
            lblButton4.Caption = 1
        Case Else ' Kein Button gedrückt (0)
        Dim i As Long
                           
            lblButton1.Caption = 0
            lblButton2.Caption = 0
            lblButton3.Caption = 0
            lblButton4.Caption = 0
            
            For i = 1 To 4
               bButton(i) = False
            Next
    End Select

(...)

was besseres is mir bis jetzt nicht eingefallen

bin für ideen aller art offen bin halt absoluter vb anfänger
 
ich wollte das dan so auwerten

Code:
(...)

Private Sub lblButton1_change()
   If bButton(1) =  True Then
(...)
End If

(...)

End Sub 

(...)
 
dann würde meine "Ausgabe" ja flackern
es soll ja so sein:

Joystickbutton erses mal gedrückt
Variable "True"
Joystickbutton zweites mal gedrückt
Variable wieder "False"
 
Hallo,
meiner Meinung nach hat vierlagig die richttige Antwort schon gegeben :

Code:
if not Aktion then
   Aktion = true
else
   Aktion = false
end if

So habe ich vergleichbare Toggle-Funktionen in VB schon gelösst ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So ein "Button betätigt" - Ereignis wird doch nur einmalig ausgelöst, das ist doch praktischerweise schon eine Flanke (wenn man das richtige Ereignis nutze, bei Delphi z.Bsp. OnClick), also ist der Code von Oberschefe bzw. Larry doch ok.
 
Es handel sich hier aber nicht um einen Visuelen Button sondern Joystickbutton ist eine Variable die duch einen Taster an einem Joystick gesetzt wird
 
Das hilft mir ja nun nicht weiter.
Ich will ja jetzt das wenn ich das erste mal auf meinen Button a Joystick dücke die Variable True wird und wenn ich dann los lasse True bleibt bis ich das zweite mal drücke dann soll die Variable wieder False werden.

Des weiteren sollte die Variable auch nicht "flakern" wenn ich mal länger auf den Taster drücke.
 
... dann würde ich es so machen (vorausgesetzt dein Eingang flackert nicht - was nämlich sein kann ...)

Code:
if not Aktion and not Flanke_Aktion then
   Aktion = true
else
   Aktion = false
end if
Flanke_Aktion = Aktion

Aktion wäre in dem Fall dein Joystick-Button.
 
Zuletzt bearbeitet:
Zurück
Oben