Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Geschrieben

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?

:(

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...