Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Schrittmotor mit Rampe ansteuern

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
storno



Anmeldungsdatum: 13.05.2009
Beiträge: 16

BeitragVerfasst am: 13.05.2009, 19:05    Titel: Schrittmotor mit Rampe ansteuern Antworten mit Zitat

Hallo an alle,

seit kurzer Zeit beschäftige ich mich mit QB. Ich habe bereits eine einfache Benutzeroberfläche und die Ein und Ausgänge des Paralellports erfolgreich mit Relais und Schaltern getestet. Zum Schluss soll daraus eine kleine Ablaufsteuerung entstehen die mittels Schaltern und Relais eine Maschine steuern soll.

Was jetzt noch fehlt ist die Ansteuerung des Schrittmotors. Das Problem ist, dass ich ohne Rampe den Motor nicht besonders schnell laufen lassen kann. Das habe ich bereits getestet.

Ich habe zwar schon die Threads hier durchgestöbert und einige ineressante Ansätze gefunden aber ich komme leider nicht weiter da ich mich noch nicht so gut mit QB auskenne. Daher würde ich euch gerne die Könner hier um Rat bitten wie man eine Rampe programmiert.

Achja die Schrittmotorsteuerung erfolgt über den Parallelport mittels TTL an eine Steuerkarte.

Freue mich auf eure Anworten

Grüße storno happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
storno



Anmeldungsdatum: 13.05.2009
Beiträge: 16

BeitragVerfasst am: 17.05.2009, 01:12    Titel: Antworten mit Zitat

Leider bin ich noch nicht weiter gekommen bis zur Startfreqzenz komme ich aber versuche ich in irgendeiner art die freqzenz langsam zu erhöhen bleibt der Motor sofort stehen. traurig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 18.05.2009, 20:36    Titel: Antworten mit Zitat

Schrittmotoren brauchen immer eine spezielle Treiberschaltung zum Ansteuern. Haste denn die schon mal ausgetüftelt? Immerhin dienen Schrittmotoren nicht zur Geschwindigkeitsregulierung, sondern zur Positionsregulierung.
_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 18.05.2009, 21:59    Titel: Antworten mit Zitat

Schrittmotoren kannst du auf unterschiedliche art ansteuern.

eine gängige ist wohl die 4schritt regelung, mit der er sich drehen kann. 1 2 3 4

Um ihn schneller drehen zu lassen kann man jeweils einen schritt über treten ... 1 34 4 23 3 12 2 ... dabei kannst du dann die frequenz massiv erhöhen

um ihn feiner fahren zu lassen kannst du ihn mit halbschritten laufen lassen .. 1 12 2 23 3 34 4 41 1 ...

Um ihn noch schneller laufen zu lassen musst ihn ihn fast schon "überströmen". Mehr strom geben, als er eigentlich verkraftet. Dafür musst du jedoch die tastfrequenz massiv erhöhen. Anfahren kannst ihn dann mit nem normalem 4 schritt. alle anderen varianten sind sehr aufwendig zu realisieren, wenn er mehr strom bekommt, als er verträgt.

die nächste "ausbaustufe" wäre eigentlich der "Spindelmotor". Das lässt sich mit einem schrittmotor zwap prinzipiell machen, er ist jedoch energetisch dafür schlecht geeigent, und verbraucht hier viel "dampf" .. Dazu musst du ihn erstmal "anfrahen". Idelaerweise mit einer einfache 4 und doppelschritt variante. hast du die maximalfrequenz erreicht, musst du die beschaltung (hardwareseitig, elektronisch) ändern, einen anschluss als sensorleitung nutzen udn einen anderen als pulsleitung. Dabei misst du über die neu gebildete induktive sensorleitung die position des motors und gibst bei entsprechend passender position einen SEHR kräftigen strompuls auf die pulsleitung. Dadurch "schiebst" du ihn quasi an. Dieses Prinzip der ansteuerung wird z.B. in Festplatten verwendet. Es ist sehr genau, und sehr "rasant".


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
storno



Anmeldungsdatum: 13.05.2009
Beiträge: 16

BeitragVerfasst am: 19.05.2009, 12:15    Titel: Antworten mit Zitat

Hallo ThePuppetMaster, danke für deine sehr ausführliche Antwort.

Natürlich habe ich bereits eine Steuerkarte. Es ist die 3D-Step von Mechapro (Ostermann) sagt dem ein oder anderem vlt was. Sie treibt biopolare (4-adrige) Schrittmotoren an. Ich muss nur mit 2 Signalen arbeiten. z.B. OUT 888, 2 Linkslauf / OUT 888, 3 rechtslauf -> nur als Beispiel.

Den Motor drehen zu lassen bis zur Startfrequenz ist kein Thema das habe ich schon geschafft. Das Problem ist halt geht man über diese Frequenz bleibt der Motor stehen, da man Ihn nicht sofort mit voller Drehzahl belasten kann.

Da ich aber weis das sich der eingesetzte Motor (1,8 NM 2 A) deutlich schneller bewegen lässt möchte ich ja eine Rampe programieren. Das habe ich mit PCNC (Frässoftware) getestet. Dort kann man die Rampen, und auf wieviele Schritte Sie angewedet wird, einstellen.

So eine Rampe möchte ich gerne hinbekommen (obere Abb.):
(Also sprich Linear)


[img][/img]

@Elektronix
Vlt. hast du mich etwas Falsch verstanden. Ich hoffe das du jetzt verstehst für was ich die Rampe benötige.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 19.05.2009, 13:46    Titel: Antworten mit Zitat

@Storno .. das mit deiner beschriebenen Rampe sieht eher danach aus, das das die Steuerkarte (treiber) unterstützen muss. Die Rampe macht im endeffekt nix anderes als für jeden schritt, im anfangsbetrieb einen höheren strom zu liefern (I-Boost). Wenn das die karte nicht kann, dann kannst du die Rampe nicht nutzen.

Das ist ähnlich dem Spindelmotorprinzip, nur das hier nicht die reguläre schrittfolge ersetzt wird durch einen puls, sondern am anfang schon hohe strompulse kommen, udn später wieder normale. also quasi die nigierung vom spindelmotor nur ohne sensorbetrieb.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
storno



Anmeldungsdatum: 13.05.2009
Beiträge: 16

BeitragVerfasst am: 19.05.2009, 14:32    Titel: Antworten mit Zitat

Hi ThePuppetMaster,

ich habe doch schon geschrieben das ich weis das die Karte Rampen fahren kann und das hat auch nichts mit der Karte zu tun grinsen
Also im Bereich der CNC Technik bin ich schon recht fit nur halt im programmieren nicht xD

Die Frässoftware PCNC beinhaltet einen Motortest bei dem man Rampen individuell einstellen und dem Motor anpassen kann. Auch habe ich bereits eine Fräse gebaut und die läuft ja auch, mit Rampen. Ich kann ja nicht 10 min warten bis eine Achse verfahren ist nur weil die Frässoftware keine Rampen erzeugen kann.

Mit höheren Strömen hat das ganze aber nichts zu tun. Lass dich nicht von der 2. Grafik irriteren mir gehts nur um die Rampe die man oben sehen kann.

Ich glaube das wir irgedwie aneinander vorbeireden lachen

Zum besseren Verständniss werde ich heute Abend mal ein Video machen und reinstellen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 19.05.2009, 15:57    Titel: Antworten mit Zitat

Laut dem hersteller der karte (http://mechapro.de/step3d.html) musst du den Bosst von hand zuschalten und deinen regulären 4takt benutzen.

Sprich, du fährst ganz normal von a nach b, und beim anlaufen schaltest du die "reset" leitung am parallelport (889 (ka welches bit das war)) auf high, und aktivierst somit diesen modus. Dann kannst du die taktrate auch massiv erhöhen.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
storno



Anmeldungsdatum: 13.05.2009
Beiträge: 16

BeitragVerfasst am: 19.05.2009, 17:33    Titel: Antworten mit Zitat

ThePuppetMaster hat Folgendes geschrieben:
Laut dem hersteller der karte (http://mechapro.de/step3d.html) musst du den Bosst von hand zuschalten und deinen regulären 4takt benutzen.

Sprich, du fährst ganz normal von a nach b, und beim anlaufen schaltest du die "reset" leitung am parallelport (889 (ka welches bit das war)) auf high, und aktivierst somit diesen modus. Dann kannst du die taktrate auch massiv erhöhen.


MfG
TPM


Der Boost ist für die Drehmomentanhebung bei der Rampe verantwortlich, für mehr braucht man den nicht.

Also hier mal Videos vom Motor:

Hier mit PCNC getestet und mit Rampe man hört deutlich wie schnell er dreht:
http://www.youtube.com/watch?v=p0CWXJE43Cc
Hier mit QBASIC mit der höchst möglichen Geschwindigkeit:
http://www.youtube.com/watch?v=yJK-j0lv2ac&feature=channel_page
Und hier noch wenn er stehenbleibt. Zu hohe Frequenz:
http://www.youtube.com/watch?v=9klcSgPoivU&feature=channel_page

Bei mir ruckeln die Videos leider traurig Ich hoffe das es bei euch net so ist.

Gruß storno
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 19.05.2009, 17:47    Titel: Antworten mit Zitat

du musst den boost nutzen, weil du sonst das drehmoment für die hhere frequenz nicht hin bekommst .. versuch es ma mit boost ud höherer frequenz .. das is nicht nur für langsames drehmoment bzw. haltemoment, zuständig.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
storno



Anmeldungsdatum: 13.05.2009
Beiträge: 16

BeitragVerfasst am: 19.05.2009, 17:53    Titel: Antworten mit Zitat

Dann werde ich aber trotzdem zwangsläufig an die Startfrequenz rankommen an dem der Motor stehen bleibt. Für was haben den sonst alle Fräsprogramme eine Rampensteuerung mit drin? Zudem haben nicht alle Schrittmotor-Endstufen eine BOOST funktion. Wie du auf dem Video vlt. sehen konntest habe ich mittlerweile eine 1-Achs 7,8A Steuerung dranhängen die hat z.b. keine Boostfunktion. Dafür kann Sie Microschritte lächeln bis zu 50.000 Schritte pro Umdrehung.

Die 3D Step kann Maximal Halbschritte sprich 400 Schritte pro Umdrehungen. Diese 400 Schritte möchte ich auch beibehalten.

EDIT: Das hier ist intressant. Bischen runterscollen bis Schrittmotor, da ist das mit den Rampen so wie ich es meine nochmal gut erklährt.
http://www.ipd.uka.de/~buchmann/microcontroller/rtlinux_stepper.htm

Hier eine Funktionssammlung für Softwareentwickler:
http://www.lewetz.de/download/hbx4step.pdf
auch sehr interssant lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
storno



Anmeldungsdatum: 13.05.2009
Beiträge: 16

BeitragVerfasst am: 19.05.2009, 19:15    Titel: Antworten mit Zitat

Also hier mein Code zum ansteuern meines Schrittmtors:
(Bitte nicht lachen bin doch Anfänger xD )

Code:
DECLARE SUB Zeit (MilliSec%, Schleifen&)
OUT 888, 0
msec& = 18

Start:
OUT 888, 3
CALL Zeit(30, msec&)
OUT 888, 0
GOTO Start

END

SUB Zeit (MilliSec%, Schleifen&)

FOR n% = 0 TO MilliSec%
  FOR i& = 0 TO Schleifen&
  NEXT i&
NEXT n%

END SUB


Prinzipiel funktioniert es so aber mit den Pausen zwischen den Schritten bin ich net zufrieden da hab ich gepfuscht ( mit FOR Next Schleifen soll man ja keine Pausen erzeugen, da man Sie ja nicht auf andere PCs übertragen kann und mit Timer habe ich noch keine Erfahrung). Zudem fehlt halt jetzt noch die Start / Stopp Rampe.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
storno



Anmeldungsdatum: 13.05.2009
Beiträge: 16

BeitragVerfasst am: 23.05.2009, 13:57    Titel: Antworten mit Zitat

Hallo Leute,

bin zwar mit meiner Rampe noch nicht weitergekommen doch habe ich jetzt ein anderes kleines Problem mit dem Code hier:

Code:
Manuell:
DO
a$ = INKEY$
RichtungManuell% = 0
Tastaturcode% = INP(&H60)
IF Tastaturcode% = 75 THEN RichtungManuell% = 1 'Linkslauf Linke CoursurTaste
IF Tastaturcode% = 77 THEN RichtungManuell% = 3 'Rechtslauf Rechte CoursurTaste
IF Tastaturcode% = 1 THEN EXIT SUB
IF a$ = "s" THEN RETURN
CALL Zeit(30, SPEEDvorschub) 'Pause
OUT 888, 0
CALL Zeit(30, SPEEDvorschub) 'Pause
OUT 888, RichtungManuell%
LOOP


Den gleichen Code verwende ich in einem automatischen Vorgang ohne Tastatureingabe da funktioniert alles bestens. Hier mit der Tastaturabfrage ruckelt mein Motor wenn er ein Paar Schritte gemacht hat, es ruckelt nicht schlimm aber es stört mich. Liegt es irgendwie am Tastaturpuffer ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz