Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Wie baue ich den Timer ein in mein Programm??? (VB)

Empfohlene Antworten

Also mein Problem ist:

Ich habe 3 Buttons im Form, und diese 3 Buttons steuern einen Motor. Der 1. in die Rechte Richtung, der 2. in die Linke richtung, der 3. ist für Stopp.

Problem ist nur, es gibt keinen Motor, der von 500 Umdrehungen/min nach rechts, ruckartig 500 Umdrehungen/Minute nach links machen kann, so brauche ich in den Buttons für die Rechte und Linke richtung eine "Timeout" von, sagen wir mal, 3 Sekunden. d.h. jedesmal wenn er die Richtung ändert soll er 3 Sekunden warten, dann die Richtung ändern, wie baue ich das ein???

Der Code:

Option Explicit

Dim Befehl, Te, T, Kette As String

Dim Multi As Integer

Private Sub Form_Load()

Multi = iopen("hpib,7,23")

Call itimeout(Multi, 10000)

Call itermchr(Multi, 10)

Te = Chr$(13) + Chr$(10)

End Sub

Private Sub Right_Click() <- Button für rechte Richtung

Rel1.Text = "Geschlossen"

Rel2.Text = "Offen"

Rel3.Text = "Offen"

Rel4.Text = "Geschlossen"

Richt.Text = "Right"

'Befehl für die Rechte Richtung

Kette = "1,1,2,0,3,0,4,1" <---------"Relais1,zu,Relais2,offen,Relais3,offen,Relais4,zu"

Befehl = "OB,7," + Kette + "T" + Te

Call iwrite(Mulit, ByVal Befehl, Len(Befehl), 0, 0&)

End Sub

Private Sub Left_Click()<- Button für Linke Richtung

Rel1.Text = "Offen"

Rel2.Text = "Geschlossen"

Rel3.Text = "Geschlossen"

Rel4.Text = "Offen"

Richt.Text = "Left"

'Befehl für die Linke Richtung

Kette = "1,0,2,1,3,1,4,0"

Befehl = "OB,7," + Kette + "T" + Te

Call iwrite(Mulit, ByVal Befehl, Len(Befehl), 0, 0&)

End Sub

Private Sub Stopp_Click()<- Button für Stopp

Rel1.Text = "Offen"

Rel2.Text = "Offen"

Rel3.Text = "Offen"

Rel4.Text = "Offen"

Richt.Text = "Stopp"

'Stopp-Befehl

Kette = "1,0,2,0,3,0,4,0"

Befehl = "OB,7," + Kette + "T" + Te

Call iwrite(Mulit, ByVal Befehl, Len(Befehl), 0, 0&)

End Sub

Private Sub End_Click()

Call iclear(Multi)

Call iclose(Multi)

Unload Me

End

End Sub

Vielleicht besser zu verstehen:

Ich klicke "rechts" - button, motor fängt an sich rechts zu drehen, dann klicke ich "links" - button,>>>>motor soll erstmal 2 - 3 Sek pausieren, dann erst nach links drehen<<<<< [gleiches gilt, wenn ich erst "links"-button drücke, und dann "rechts"-button], ich drücke auf "Stopp"-Button, motor soll erst nach 3 Sek. (oder sofort)zum Stillstand kommen. Ich hoffe, dass ich es genau genung beschrieben habe.

Ich wäre dankbar, wenn mir einer erklärt, und zusätlich vielleicht bissel Beispielcode befügt, MIT Kommentar, wenn's geht.

Vielen lieben Dank im Vorraus,

Void()

Du könntest einen Timer auf deine Form setzen. Den Intervall setzt du auf die Zeit, die der Motor warten soll. Zur Entwurfszeit ist der Timer ausgeschaltet. Im OnTimer Ereignis könntest du eine Routine aufrufen, die den Motor steuert. Der Routine könntest du dann paar Übergabeparameter mitgeben, die sagen, was sie jetzt machen soll. Z. B. Rechts, Links, Stopp, .... Wenn du auf einen der Buttons drückst, schaltest du den Timer ein. Der Timer wartet die Zeit, die du im Intervall eingestellt hast und führt die OnTimer Routine aus. Da wird deine Steuerungsroutine ausgeführt. Am Ende der OnTimer Routine sczhaltest du den Timer wieder aus.

Ich hoffe, ich hab's verständlich beschrieben, ansonsten melde dich nochmal.

Huh?? nee, ich bin noch ganz in den Anfängen! Was wie und wo??

Sorry, aber ich bin echt dumm! Packe es nicht!

Wie wär's mit einem Code beispiel?

:(

Pass auf,

du setzt auf deine Form einen Timer. Den Intervall setzt du auf 3000 (3 Sekunden). Enabled setzt du auf false. Dann klickst du doppelt auf den Timer und in die Prozedur, in der du dann bist, schreibst du folgendes rein:

Steuerung richtung

timer1.enabled = false

Als Nächstes deklarierst du eine globale Variable, z.B.

dim Richtung as char

die die Richtung darstellen soll und immer wenn du auf einen Button klickst, setzt du diese Variable enstsprechend.

Du hast dann eine Steuerungsprozedur, die etwa so aussehen könnte:

sub Steuerung(richtung as char)

select case richtung

case "r" 'nach rechts drehen

Befehle für Drehung nach rechts

case "l" 'nach links drehen

Befehle für Drehung nach links

case "s" 'stopp

Befehle um zu stoppen

'hier kann man auch weitere Befehle einbauen

end select

end sub

Wenn du auf einen Button klickst, könnte die Routine so aussehen:

'Beispiel für linksbutton

Hier kommen deine eigene Befehle hin, z.B. Beschriftungen setzen usw

Richtung = "l" 'richtung für links

timer.enabled = true 'timer einschalten

Genauso machst du das für die anderen Buttons, nur dass du für den RechtsButton die Richtung auf "r" setzt und für den StopButton auf "s".

Ich hoffe, dass es so geht und dass ich nichts vergessen habe.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.