Zum Inhalt springen

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


Void()

Empfohlene Beiträge

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()

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...