Archiv verlassen und diese Seite im Standarddesign anzeigen : RN Motor ST232 vom PC mit VisualBasic steuern
Hi,
1. Problem:
Sendet man, während ein Motor bereits läuft, einen neuen Positionsbefehl, so wird der alte Positionsbefehl nicht zu Ende gefahren,
d.h. die noch laufende Positionierung wird mehr oder weniger zufällig abgebrochen und der neue Pos.-Befehl wird unmittelbar
durchgeführt.
Eine absolute Positionsbestimmung ist so per Software nicht möglich.
Frage : Wie kann ich ermitteln, Wann der Stepper seine Position erreicht hat?
Wenn ich per Schleife mit "rmp0" die gefahrene Schrittzahl abrufe, fängt der Motor an zu stottern.
Ich verwende dazu "sendBefehl" aus dem VB-Demoprogramm.
2.Problem:
Handbuch RN-Motor Version 1.0+1.2 vom 6.7.2005
In der Übersicht RS232-Schrittmotorbefehle (Tabellen) ist für Einzelschritt drehen der Befehlscode "x" angegeben.
Im VB-Quellcode wird jedoch "m" dafür verwendet, welcher in der Übersicht nicht beschrieben wird.
Wo ist der Unterschied, bzw. welcher Befehlscode soll bevorzugt verwendet werden?
Gruß kuma
Hi,
1. Problem:
Sendet man, während ein Motor bereits läuft, einen neuen Positionsbefehl, so wird der alte Positionsbefehl nicht zu Ende gefahren,
d.h. die noch laufende Positionierung wird mehr oder weniger zufällig abgebrochen und der neue Pos.-Befehl wird unmittelbar
durchgeführt.
Eine absolute Positionsbestimmung ist so per Software nicht möglich.
Frage : Wie kann ich ermitteln, Wann der Stepper seine Position erreicht hat?
Normalerweise weiss man ja nach wieviel Schritten ein Motor seoine Position erreicht. Dann gibt man RN-Motor einfach den Befehl das er sich soundsoviele Schritte drehen soll, danach bleibt er automatisch stehen. Das ist der Befehl "z"
Wenn ich per Schleife mit "rmp0" die gefahrene Schrittzahl abrufe, fängt der Motor an zu stottern.
Das ist auch nicht der Sinn der Sache. Der Befehl hat anderen Nutzen, damit kann man von Zeit zu Zeit die Fahrtstrecke abfragen.
2.Problem:
Handbuch RN-Motor Version 1.0+1.2 vom 6.7.2005
In der Übersicht RS232-Schrittmotorbefehle (Tabellen) ist für Einzelschritt drehen der Befehlscode "x" angegeben.
Im VB-Quellcode wird jedoch "m" dafür verwendet, welcher in der Übersicht nicht beschrieben wird.
Wo ist der Unterschied, bzw. welcher Befehlscode soll bevorzugt verwendet werden?
x steht dafür das der Motor nur einen einzigen Schritt bewegt werden soll. Diesen Befehl braucht man äußerst selten. Was du mit "m" meinst weiss ich nicht, den Befehl gibt garnicht wenn ich mich richtig entsinne. Wenn was unklar ist, dann am besten kleinen Quellcodeauszug posten.
Gruß Frank
Hallo Frank,
zu Problem 1:
Klar, ich weiß wieviel Schritte der Stepper machen soll, ich muss aber wissen wann er damit fertig ist, damit ich unmittelbar danach (und nicht während!) den Befehl für die nächste Positionierung geben kann.
Wie sind die zurückgegebenen Daten (Schrittzahl) bei "rmp0" genau formatiert? Mir scheint, es werden außer der Schrittzahl sporadisch noch andere nicht druckbare Zeichen zurückgegeben.
zu Problem 2:
Hier die Originalkopie aus dem Handbuch:
Private Sub buttLSchritt_Click()
SendBefehl "#rmm" & Chr(0), "OK"
End Sub
Private Sub buttrSchritt_Click()
SendBefehl "#rmm" & Chr(1), "OK"
End Sub
Gruß kuma
Hallo Frank,
zu Problem 1:
Klar, ich weiß wieviel Schritte der Stepper machen soll, ich muss aber wissen wann er damit fertig ist, damit ich unmittelbar danach (und nicht während!) den Befehl für die nächste Positionierung geben kann.
Wie sind die zurückgegebenen Daten (Schrittzahl) bei "rmp0" genau formatiert? Mir scheint, es werden außer der Schrittzahl sporadisch noch andere nicht druckbare Zeichen zurückgegeben.
Hier muss man sich ein wenig mit einer Rechnung helfen. Man weiss ja wieviel Zeit der Motor für eine volle Umdrehung braucht, man kanns auch einfach testen. Daraus läßt sich natürlich die Zeit für jede beliebige Schrittzahl berechnen. Ein Schrittmotor hat ja im Gegenteil zum Getriebemotor eine verlässliche Geschwindigkeit. Man gibt sicherheitshalbe einen kleinen Zuschlag und schon klappt es ohne Abfrage. Man kann danach sicherhalthalber auch nochmal die Schrittzahl abfragen.
Sinnvollerweis epackt man das alles in eine VB Funktion und kann so bequem den Schrittmotor steuern.
Die Schrittzahlabfrage ist derzeit eigentlich mehr für den Abruf bei Stillstand gedacht. Bei der derzeitigen Firmware kann es zu Übertragungsfehlern kommen wenn die Schrittzahl während des Drehens abgerufen wird.
zu Problem 2:
Hier die Originalkopie aus dem Handbuch:
Private Sub buttLSchritt_Click()
SendBefehl "#rmm" & Chr(0), "OK"
End Sub
Private Sub buttrSchritt_Click()
SendBefehl "#rmm" & Chr(1), "OK"
End Sub
Du hast natürlich recht, ein Tippfehler in der Doku. Natürlich stimmt das VB Demoprogramm, also "m" ist richtig. Werde die Doku heute noch korrigieren.
Gruß Frank
Hallo Frank,
erstmal danke für die schnellen Antworten!!
Ich darf nochmal nachfragen:
Wie sind die zurückgegebenen Daten (Schrittzahl) bei "rmp0" genau formatiert? Konstante oder variable Länge? Links-oder rechtsbündig?
Mir scheint, es werden außer der Schrittzahl sporadisch noch andere nicht druckbare Zeichen zurückgegeben.
Ich bekomme die Daten für die weitere Verwertung einfach nicht eingelesen.
Gruß kuma
Soweit ich es in Erinnerung habe wird nur die Schrittzahl in Ascii und ein Zeilenvorschub ausgegeben,. Wie gesagt während drer Drehung kann es dazu kommen das RS232 Übertragung gestört wird, am besten nach Stop abfragen. Du kannst es mit dem PC Demo ja einfach testen.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.