Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
storno
Anmeldungsdatum: 13.05.2009 Beiträge: 16
|
Verfasst am: 13.05.2009, 19:05 Titel: Schrittmotor mit Rampe ansteuern |
|
|
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 |
|
Nach oben |
|
|
storno
Anmeldungsdatum: 13.05.2009 Beiträge: 16
|
Verfasst am: 17.05.2009, 01:12 Titel: |
|
|
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. |
|
Nach oben |
|
|
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 18.05.2009, 20:36 Titel: |
|
|
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 |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 18.05.2009, 21:59 Titel: |
|
|
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 |
|
|
storno
Anmeldungsdatum: 13.05.2009 Beiträge: 16
|
Verfasst am: 19.05.2009, 12:15 Titel: |
|
|
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 |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 19.05.2009, 13:46 Titel: |
|
|
@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 |
|
|
storno
Anmeldungsdatum: 13.05.2009 Beiträge: 16
|
Verfasst am: 19.05.2009, 14:32 Titel: |
|
|
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
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
Zum besseren Verständniss werde ich heute Abend mal ein Video machen und reinstellen. |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 19.05.2009, 15:57 Titel: |
|
|
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 |
|
|
storno
Anmeldungsdatum: 13.05.2009 Beiträge: 16
|
Verfasst am: 19.05.2009, 17:33 Titel: |
|
|
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 Ich hoffe das es bei euch net so ist.
Gruß storno |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 19.05.2009, 17:47 Titel: |
|
|
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 |
|
|
storno
Anmeldungsdatum: 13.05.2009 Beiträge: 16
|
Verfasst am: 19.05.2009, 17:53 Titel: |
|
|
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 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 |
|
Nach oben |
|
|
storno
Anmeldungsdatum: 13.05.2009 Beiträge: 16
|
Verfasst am: 19.05.2009, 19:15 Titel: |
|
|
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 |
|
|
storno
Anmeldungsdatum: 13.05.2009 Beiträge: 16
|
Verfasst am: 23.05.2009, 13:57 Titel: |
|
|
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 |
|
|
|