Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Stefan, > > bei einer Puls-/Richtung-Ansteuerung (oder englisch Step/Direction) eines Schrittmotorantriebs ist > normalerweise keine Rückleitung auf den Geber nötig, da der Motorregler (wenn richtig konfiguriert) > die gegebenen Impulse zuverlässig in Schritte umsetzt. > > Du solltest die Impulse (den Takt) besser mit Nadelimpulsen von einem CC2-Port erzeugen (eben mit > <code>ports.pulse()</code>. Ausserdem solltest du, auch bei kurzen Leitungswegen, ein > geschirmtes Kabel verwenden. Bei längeren Kabelstrecken habe ich mit symmetrischer Übertragung > (sowohl Puls als auch Richtung als RS-485 oder RS-422 übertragen) gute Erfahrung gemacht, > weil Störimpulse von aussen eliminiert werden. > > Folgendes Programmschema sollte funktionieren: > > <code> > // Port 1 -> Richtung > // Port 2 -> Pulse > > ports.set(1,1); // Richtungsbit setzen (Rechtslauf) > for x=1...500 > { ports.pulse(2);} // 500 Schritte nach rechts > sleep 500; > ports.set(1,0); // Richtungsbit löschen (Linkslauf) > for x=1...500 > { ports.pulse(2);} // 500 Schritte nach links > </code> > > Wenn du Störimpulse auf deine Leitung ausschliessen kannst und dein Motorregler richtig > konfiguriert ist (Die korrekten Reglerparameter wie Verstärkung und Regelzeit sind sehr > wichtig, damit der Motor "auf den Punkt kommt"!), sollte der Motor nach einem Vor- und > einem Rücklauf wieder bei "0" ankommen. > > Grüße, Felix > > > > > > > Hallo Felix, > > > > > > also meine Steuerung sieht folgendermassen aus: > > > > > > - die PWM-Ausgänge erzeugen den Takt. > > > - dieser Takt wird auf die Steuerkarte der Motoren gegeben > > > - parallel wird der Takt auf die Interrupt-sensiblen Porteingänge der CC2 angeschlossen. > > > - zwei Portausgänge steuern das links und rechts > > > - dann wird per SW ein Schrittziel vorgegeben. > > > > > > Zum Beispiel: Schrittziel 500. Der Motor startet, von null aus nach links bis 500, von da > > > an dreht der Motor nach rechts bis -500 (minus 500), dann wieder in die andere Richtung, usw. > > > > > > Leider ist aber die eine Richtung etwas mehr bevorzugt als die andere...... > > > > > > Zur Kontrolle lasse ich mir den Zählerstand auf einer externen LCD anzeigen. > > > Da sehe ich nichts auffälliges. > > > > > > Bin jetzt ratlos. > > > > > > Gruss...Stefan > > > > Hallo Stefan, > > Du verwendest einen industriellen Hardware-Treiber und Schrittmotor von Berger&Lahr. Du speist ein > > Taktsignal von Deinem PWM Port ein. Die Richtung der Drehbewegung bestimmst Du über zwei Richtungs- > > signale an den Hardware-Treiber. Am Count_Port zählst Du die emittierten Impulse. Nach dem Erreichen der > > Soll_Imp_Zahl drehst Du die Richtung um. Ich vermute immer noch Schrittverluste. > > > > Denn: stochastische Störimpulse auf der Taktleitung würden auf jede Richtuing wirken! > > Denn: Du verwendest keine PWM Steuerung,sondern STEPS und DIRECTION! > > > > Teste folgendes ohne den NullSensor (wenn möglich): > > 1:drehe den Motor immer in Richtung "rechts" mit einer Anzahl von Steps die eine Drehung von 360 grad ergeben. > > beobachte, ob immer wieder eine volle Umdrehung erfolgt,oder Winkelversatz auftritt. > > 2: wie 1) jedoch mit anderer Richtung! > > > > Wenn beide Test´s immer einen Umlauf des Motors von 360° ergeben, arbeitet das System Berger&Lahr > > einwandfrei. > > > > mfg > > Matthias Koch > > > > > > > > > > > > > > > > > > > > >