Hallo zusammen,
ich steuere einen Schrittmotor mit einem Mikrocontroller an.
Dieser Schrittmotor wird vom Mikrocontroller über einen PIN angesteuert.
PIN=1, dann dreht sich der Motor im rechtslauf, PIN=0 bedeutet der Motor
bewegt sich im linkslauf.
Mein Problem ist nun, das sich der Motor immer in maximaler
Geschwindigkeit nach links bzw nach rechts bewegt.
Wie lässt sich die Geschwindigkeit des Motors regeln?
Falls eine Sollstellung erreicht wird, so soll sich der Motor kurz
vorher etwas langsamer drehen und bei erreichen der gewünschten Stellung
stehen bleiben. Diese Verlangsamung der Geschwindigkeit soll vermeiden,
das der Motor über die gewünschte Stellung hinaus läuft.
Wie kann ich das am Besten realisieren?
Falls noch weitere bzw genauere Informationen notwendig sind, um dieses
Problem zu klären, so stehe ich gerne zur Verfügung.
Leider habe ich von regelungstechnischen Problemen nicht genug Ahnung um
dieses Problem selbst zu lösen.
Viele liebe Grüße Andi
Andi schrieb:> Dieser Schrittmotor wird vom Mikrocontroller über einen PIN angesteuert.> PIN=1, dann dreht sich der Motor im rechtslauf, PIN=0 bedeutet der Motor> bewegt sich im linkslauf.
Schaltplan wäre hilfreich, weil das glaube ich dir nicht.
Würde nämlich sämtliche Vorteile des Schrittmotors übergehen. :-)
Hi
>Dieser Schrittmotor wird vom Mikrocontroller über einen PIN angesteuert.>PIN=1, dann dreht sich der Motor im rechtslauf, PIN=0 bedeutet der Motor>bewegt sich im linkslauf.
Und wo kommt der Takt her? Welcher Treiber?
MfG Spess
Andi schrieb:> Dieser Schrittmotor wird vom Mikrocontroller über einen PIN angesteuert.> PIN=1, dann dreht sich der Motor im rechtslauf, PIN=0 bedeutet der Motor> bewegt sich im linkslauf.
Ganz bestimmt nicht. Ein Schrittmotor wird über einzelne Schritte
angesteuert, was im kontinuierlichen Betrieb dann einer
Rechteckwechselspannung entspricht. Du hast hier also auf jeden Fall
noch eine Schrittmotorsteuertung zwischen deinem µC und dem
Schrittmotor. Wenn die nur einen einfachen logischen Eingang für Links
oder rechts hat, dann kannst du mit dieser Steuerung keine
Geschwindigkeit regeln.
Solange du aber nicht genauer sagst was du hast kann dir keiner helfen.
Andi schrieb:> Leider habe ich von regelungstechnischen Problemen nicht genug Ahnung um> dieses Problem selbst zu lösen.
Für dich lösen wird es hier nur mit viel Glück jemand. Hier gibt es
hauptsächlich Hilfe zur Selbsthilfe.
Andi schrieb:> und bei erreichen der gewünschten Stellung stehen bleiben
woher weist du, welche tatsächliche Stellung der Motor hat? Sowohl die
angenommene aktuelle Stellung als auch die angenommene, angefahrene
gewünschte Stellung könnten ja durchaus durch Schlupf etc. gar nicht die
sein, welche sie sein sollen.
Beim Diskettenlaufwerk wurde das so gemacht, daß der Kopf zur
Spurpositionierung solange Richtung "Spur 0" verfahren wurde, bis ein
seperater Sensor (Lichtschranke) meldete "Ich bin jetzt auf Spur 0"
> Diese Verlangsamung der Geschwindigkeit soll vermeiden,> das der Motor über die gewünschte Stellung hinaus läuft.
Schlupf kann nicht nur beim bremsen, sondern auch beim Beschleunigen
auftreten. Ist beim Auto mit den durchdrehenden Reifen beim Start auch
nicht anders.
> Wie lässt sich die Geschwindigkeit des Motors regeln?
Wie beim Auto, wo man auf Gas oder Bremse tritt ;-)
Hier beim Schrittmotor durch abfahren einer "Rampe". D.h. du must z.B.
100 Schritte verfahren, und teilst dann den Verfahrensweg auf in
10 Schritte beschleunigen
80 Schritte normalfahrt
10 Schritte abbremsen
die jeweiligen Phasen (beschleunigen, normalfahrt, abbremsen)
unterscheiden sich "nur" dadurch, in welcher Geschwindigkeit die
einzelnen Phasen deines Schrittmotors jeweils wechselweise angesteuert
werden.
Hallo,
danke erstmal für die schnellen Antworten.
@radiostar: Genau das ist ja mein Problem, wie sage ich dem
Mikrocontroller das er langsamer tun soll?? :-)
@spess53: Den Takt gibt ein Zähler vor. Die Treiberstufe ist ein
Zukaufteil zum Motor und wurde speziell für diesen Schrittmotor
entwickelt.
Gruß Andi
Andi schrieb:> Dieser Schrittmotor wird vom Mikrocontroller über einen PIN angesteuert.> PIN=1, dann dreht sich der Motor im rechtslauf, PIN=0 bedeutet der Motor> bewegt sich im linkslauf.
Das heißt also, dass PIN erstmal nur die Richtung vorgibt (Direction).
Und welcher Pin des µC gibt den Takt vor (Clock) und welcher Pin gibt
den Motor frei bzw. sperrt ihn (Enable)? Das sind die drei wichtigsten
Ansteuerwerte eines Schrittmotors für einen µC aber es gibt noch einige
mehr (Strombegrenzung z.B.)
Es klingt für mich wie eine Aufgabenstellung und du hast noch keine Idee
für die Lösung.
Andi schrieb:> Dieser Schrittmotor wird vom Mikrocontroller über einen PIN angesteuert.> PIN=1, dann dreht sich der Motor im rechtslauf, PIN=0 bedeutet der Motor> bewegt sich im linkslauf.
und im Ruhezustand liegt immer was an? 0 oder 1? und dann dreht der
Motor also im Ruhezustand immer linksrum oder rechtsrum???????
da fehlt doch noch was an Informationen oder Steuerleitungen ....
Hi
>@spess53: Den Takt gibt ein Zähler vor. Die Treiberstufe ist ein>Zukaufteil zum Motor und wurde speziell für diesen Schrittmotor>entwickelt.
Viel schlauer bin ich jetzt auch nicht. Aber sinnvoll erscheint mir, den
Zähler wegzulassen und den Takt durch den µC zu erzeugen.
MfG Spess
Hallo,
@Michael: Es ist in der Tat eine Aufgabenstellung und diese soll ich
wenn möglich bis morgen Mittag erfüllt haben. Leider habe ich wie gesagt
nicht besonders viel Ahnung davon. :-(
@all: Ich drehe den Motor per Tasterbetätigung nach links oder nach
rechts.
Es geht mir wirklich nur um die Geschwindigkeit des Motors.
Wie kann ich diese regeln?
Ich habe mal meinen bisher erstellten Code für den Controller angehängt!
Viele liebe Grüße Andi
Dann mache dich zunächst einmal mit der grundsätzlichen Funktionsweise
eines Schrittmotors vertraut. Google hilft dir hierbei. Dir fehlen hier
nämlich scheinbar zuviele Grundsätze um sie hier zu erklären.
Andi schrieb:> Es geht mir wirklich nur um die Geschwindigkeit des Motors.> Wie kann ich diese regeln?> Den Takt gibt ein Zähler vor. Die Treiberstufe ist ein> Zukaufteil zum Motor und wurde speziell für diesen Schrittmotor> entwickelt.
Zeig doch mal.
Die Geschwindigkeitsregelung macht dieses Zukaufteil. Bei dem musst du
nachsehen, wie das geht ....
.... wenn das was du sagst, tatsächlich stimmt.
Allerdings ist das dann eine Fehlentwicklung, da man dadurch den
Schrittmotor zu einem normalen Motor degradiert hat und somit alle
Vorteile eines Schrittmotors verliert. Daher glaube ich eher, dass die
Leute, die das entwickelt haben, mehr Ahnung haben als du und du daher
da irgendetwas falsch verstanden hast. Also zeig mal alles was du von
diesem Zukaufteil weißt bzw. was du an Unterlagen hast.
Andi schrieb:> Hallo,>> @Michael: Es ist in der Tat eine Aufgabenstellung und diese soll ich> wenn möglich bis morgen Mittag erfüllt haben. Leider habe ich wie gesagt> nicht besonders viel Ahnung davon. :-(
Dann wirst Du wohl einen Nürnberger Trichter brauchen, um Dir
das nötige Wissen, das andere in Jahren erworben haben, innerhalb
eines Tages anzueignen.
> Es geht mir wirklich nur um die Geschwindigkeit des Motors.> Wie kann ich diese regeln?
Du meinst einstellen?
Üblicherweise gibt man die Geschwindigkeit durch einen Takt,
den man im Steuer-Prozessor erzeugt, vor. Wenn Du einen
externen Taktgeber hast, wird der wophl auch irgendwie,
z.B. durch eine Steuerspannung einstellbar sein.
Gruss
Harald
Hallo,
hier die Daten der Motorsteuerung:
Betriebsspannung: 12-24 V DC
Phasenstrom: max. 2,7 A
Schnittstelle: RS485 4-Draht oder CANopen
Betriebsmodus: RS485: Position, Drehzahl, Flagposition, Takt-Richtung,
Analog, Joystick
CANopen: Position, Drehzahl, Referenzfahrt, Interpolated-
Position (gemäß CAN-Standard DS402)
Schrittauflösung: 1/1, 1/2, 1/4, 1/5, 1/8, 1/10, 1/32, 1/64
Schrittfrequenz: 16 kHz im Vollschritt, im Mikroschritt entsprechende
Vielfache (z.B. bis zu 1MHz bei 1/64)
Eingänge: 6 Digitaleingänge (TTL), 1 Analogeingang +10/–10V
Ausgänge: 3 Open Collector, 24 V / 0,5 A max.
Stromabsenkung: einstellbar 0 - 150%
Schutzschaltung: Überspannung, Unterspannung und
Kühlkörpertemperatur > 80 °C
Temperaturbereich: 0 bis + 40 °C
Viele Grüße Andi
Andi schrieb:> //Timer initialisieren> TA0CCR0 = 160; // max. Count für Timer im upmode (6E 4,8 kHz)> //z zt max 160 => 3,3 kHz ohne Rampe> //TA0CCR0 = 0x0001; // max. Count für Timer im
upmode
>> TA0CTL = TASSEL_2 + TACLR + TAIE; // ACLK, clear TAR, enable interrupt
Das da musst du entsprechend im Betrieb manipulieren. Mehr sag ich
nicht.
aus einem datenblatt kopieren kann jeder vollidiot.
die wichtigen daten rauslesen, kann nicht jeder vollidiot. beispiel
siehe hier.
ist es so schwer, hier kurz mitzudenken?
GIB DEN SCHALTPLAN ODER BAUPLAN MIT NAMEN HER UND LAD DEINEN KOMPLETTEN
CODE RAUF!
Andi schrieb:> Eingänge: 6 Digitaleingänge (TTL
Genau da setzt dein µC wahrscheinlich an.
Du musst also:
- die verschaltung des µC mit dem Steuergerät verstehen
- die Verwendung der Pins verstehen
- das Programm verstehen
und dann einfach eine Rampe dazuprogrammieren.
Wenn du aber eine regelung brauchst, dann musst du den Ist-Wert des
Motors erfassen.
Ich wette drauf das das eine Steuerung von Nanotec ist.
http://de.nanotec.com/schrittmotorsteuerung_smci12.html
Und falls das der Fall sein sollte dann programmier dein Fahrprofil
direkt mit der mitgelieferten Software in deiner Endstufe (die kann das
nähmlich) und du gibst dann nur noch den Startbefehl.
Satzanwahl über binäre Eingänge der Endstufe.
Alles andere schaffst du bis morgen nicht.
Flo hats doch geschrieben: es sieht doch wirklich so aus, als ob der
Timer ta0 irgendeinen relevanten Takt erzeugt.
Ob man den Timer jetzt zur Laufzeit beliebig schneller oder langsamer
machen darf hängt sicher auch davon ab, ob noch Anderes darauf
zurückgreift, sieht aber in dem Code nicht so aus.
Das pin setzen und Motor läuft los wird wohl nur ein enable sein
unabhängig vom Takt?
Versuch doch mal den Timer nackt anders einzustellen.
P.S. Komisch ist nur die while(1) schleife. Das compiliert so? Will
sagen du müsstest wenigstens die zweite geöffnete KLammer mitposten find
ich.
Hallo,
@Clemens M:
Wie kann man denn während eines Durchlaufs einen Zähler schneller oder
langsamer werden lassen?
@Taktfinder:
Es handelt sich tatsächlich um eine Steuerung von Nanotec und die
passenede Software ist auch dabei.
Allerdings benötige ich für meinen Controller die Regelung der
Geschwindigkeit! :-(
Viele Grüße Andi
>Allerdings benötige ich für meinen Controller die Regelung der>Geschwindigkeit! :-(
In deinem ersten Post spricht du von Position anfahren.
Das kann deine Nanotec Endstufe ganz alleine, AUCH das mit dem
beschleunigen. Soweit ich weis zwar nur konstante Beschleunigung, aber
das wird für dich reichen.
Lies doch mal im Handbuch nach welche Betriebsarten unterstützut werden.
Andi schrieb:> die Regelung der Geschwindigkeit!
"Regelung" ist etwas anderes wie "Steuerung".
Wenn du regeln möchtest, brauchst du eine Rückmeldung über die
tatsächliche Geschwindigkeit (Ist-Geschwindigkeit). Damit passt du dann
eine Stellgröße entsprechend an (mehr Strom, mehr Takt, mehr sonstewas.
Was du meinst ist vermutlich die "Steuerung" der Sollgeschwindigkeit,
ohne Rückmeldung der tatsächlichen Größe.
[STeuerung=] Wie bei einem Wasserhahn, den du halt zu 1/4 oder 1/2
aufdrehst. Ob da viel oder wenig Wasser rauskommst weißt du nicht,
solange du nicht die Wassermenge (Durchfluss) nachmisst
Andi schrieb:> @Clemens M:> Wie kann man denn während eines Durchlaufs einen Zähler schneller oder> langsamer werden lassen?
Du könntest z.B. bei jedem Timer-Interrupt den Inhalt des Registers
"TA0CCR0" verändern. --> größerer Wert = langsamerer Takt und umgekehrt!
Aber um dir richtig helfen zu können wäre es sinvoll, wenn du endlich
mal deine gesamten Unterlaen inkl. Schaltplan posten würdest!
Taktfinder hat es doch geschrieben.
Die Steuerung kann das komplett alleine. Du musst sie nur noch richtig
programmieren und mit deinem µC die digitalen Eingänge entsprechend
ansteuern.
Irgendwas stimmt doch da nicht.
Du hast weder grundlegende Ahnung über Schrittmotoren, noch sind dir
Dinge wie "Rampenansteuerung" ein Begriff, du kennst auch nicht den
Unterschied zwischen Steuern und Regeln.
Trotzdem sollst du bis morgen die Ansteuerung dieses Schrittmotors
machen. Entweder du hast dich hier massiv übernommen, oder dein Chef hat
keine Ahnung was du kannst.
So wird das doch nix...
Elko4 schrieb:> Aber um dir richtig helfen zu können wäre es sinvoll, wenn du endlich> mal deine gesamten Unterlaen inkl. Schaltplan posten würdest!
Das nützt nix, dazu müsstest du die kompletten Unterlagen des Nanotec
Treibers sowie die gewählte Betriebsart wissen.
Udo Schmitt schrieb:> Elko4 schrieb:>> Aber um dir richtig helfen zu können wäre es sinvoll, wenn du endlich>> mal deine gesamten Unterlaen inkl. Schaltplan posten würdest!>> Das nützt nix, dazu müsstest du die kompletten Unterlagen des Nanotec> Treibers sowie die gewählte Betriebsart wissen.
Wenn man wenigstens mal wüsste welcher das ist, dann würde sich unter
Umständen jemand hier erbarmen und sich die Doku zumindest soweit
reinziehen um erst mal zu wissen, was der Treiber von alleine kann und
was er nicht kann und wie man das ganze grundsätzlich angehen muss. Denn
wenn es stimmt, dass der Treiber die Rampe ganz von alleine fahren kann,
bzw eine bestimmte Schrittanzahl ganz von alleine inkl Rampe abfahren
kann, dann muss man das alles ganz anders angehen, als Andi das macht.
Andi scheint allerdings die Uunterlagen nicht studiert zu haben. Ich
denke auch, dass er am Holzweg ist. Aber um das definitiv beurteilen zu
können, müsste man halt erst mal wissen, was das für eine Treiberplatine
ist und was die alles kann.
ich bin mir sehr sicher dass ich oben genau seine Steuerung erwischt
habe.
Wäre Andi in der Lage in die Doku zu schauen würde er folgendes Bild
finden.
Ist der source code denn jetzt aus der Firmware von diesem
Controllerboard? Denn das wird über ein Windows tool konfiguriert oder
wie ist der Screenshot zu verstehen.
Ich bin jetzt echt verwirrt.
Clemens M. schrieb:> Ist der source code denn jetzt aus der Firmware von diesem> Controllerboard? Denn das wird über ein Windows tool konfiguriert oder> wie ist der Screenshot zu verstehen.> Ich bin jetzt echt verwirrt.
Dann les den Thread. Der Source Code ist von dem TO
Der Schrittmotorcontroller ist ein richtig komfortables Teil, das -wenn
ich richtig gelesen habe- sogar in einer Java ähnlichen Sprache
richtiggehend programmiert werden kann.
Das Bild zeigt daß so Dinge wie Rampen zu den basics des Controllers
gehören.
Man muss sich halt mit dem Teil auseinandersetzen.
Ich habe das Handbuch mal -überflogen- obwohl es mich so sehr nun dann
doch nciht interessiert.
Anscheinend wird der Treiber dann doch im sog. Takt/Richtungsmodus
betrieben und somit müsste der TE doch selber für beschleunigen und
bremsen sorgen. (warum sollte seine Software sonst das Richtungssignal
und Takte erzeugen)
Wenn das so ist - würde ich dazu raten einfach mal mit dem Timer rum zu
spielen und eben eine Rampe zu erzeugen.
Hast du die Software vorgesetzt bekommen? Kannst du den Ersteller dieser
Fragen zu seiner Planung stellen?
Andi schrieb:> Es handelt sich tatsächlich um eine Steuerung von Nanotec und die> passenede Software ist auch dabei.
bist du analphabet?
WIE HEISST DAS TEIL???
Syntax schrieb:> aus einem datenblatt kopieren kann jeder vollidiot.> die wichtigen daten rauslesen, kann nicht jeder vollidiot. beispiel> siehe hier.>> ist es so schwer, hier kurz mitzudenken?>> GIB DEN SCHALTPLAN ODER BAUPLAN MIT NAMEN HER UND LAD DEINEN KOMPLETTEN> CODE RAUF!
Hier leben mal wieder einige ihren Helferkomplex aus. Und dann im
naechsten Thread darueber meckern, dass in den Firmen ueberall nur noch
Trottel sitzen, die nichts koennen und sich nur durchgeschummelt haben.
Hallo nochmal,
Bei meinem Schrittmotor handelt es sich ebenfalls um einen Motor der
Firma Nanotec. (ST4209L1704)
Die Treiberstufe ist wie bereíts erwähnt auch von Nanotec. (SMCI12)
Es handelt sich bei meinem Problem wie bereits mehrmals und auch in der
Überschrift erwähnt um eine Regelung, nicht um eine Steuerung.
@Taktfinder: Die Software habe ich bereits verwendet und alle
Einstellungen funktionieren auch soweit, auch mit der Rampensteuerung
klappt alles soweit. Aber ich darf wie bereits erwähnt nicht diese
Sorftware verwenden, sondern muss für meinen Mikrocontroller einen Code
erstellen.
Und da sind meine Schwierigkeiten, bei der Codeerstellung für die
Regelung der Geschwindigkeit.
Nicht bei der Einstellung über die Firmsoftware oder ob ich weiß was ne
Steuerung ist!! :-)
Es geht mir um die Erstellung eines Codes, mit dem ich diese
Geschwindigkeit regeln kann!!
Das mit der Sollstellung habe ich nicht ausführlich erklärt:
Der Motor soll nach sechs Umdrehungen stehen bleiben, zuvor aber etwas
langsamer werden.
Genau da liegt mein Problem. Wie kann ich das in einem Code realisieren,
das mein Motor langsamer werden soll!
Viele Grüße Andi
Hallo nochmal,
Bei meinem Schrittmotor handelt es sich ebenfalls um einen Motor der
Firma Nanotec. (ST4209L1704)
Die Treiberstufe ist wie bereíts erwähnt auch von Nanotec. (SMCI12)
Es handelt sich bei meinem Problem wie bereits mehrmals und auch in der
Überschrift erwähnt um eine Regelung, nicht um eine Steuerung.
@Taktfinder: Die Software habe ich bereits verwendet und alle
Einstellungen funktionieren auch soweit, auch mit der Rampensteuerung
klappt alles soweit. Aber ich darf wie bereits erwähnt nicht diese
Sorftware verwenden, sondern muss für meinen Mikrocontroller einen Code
erstellen.
Und da sind meine Schwierigkeiten, bei der Codeerstellung für die
Regelung der Geschwindigkeit.
Nicht bei der Einstellung über die Firmsoftware oder ob ich weiß was ne
Steuerung ist!! :-)
Es geht mir um die Erstellung eines Codes, mit dem ich diese
Geschwindigkeit regeln kann!!
Das mit der Sollstellung habe ich nicht ausführlich erklärt:
Der Motor soll nach sechs Umdrehungen stehen bleiben, zuvor aber etwas
langsamer werden.
Genau da liegt mein Problem. Wie kann ich das in einem Code realisieren,
das mein Motor langsamer werden soll!
Viele Grüße Andi
Andi schrieb:> @Taktfinder: Die Software habe ich bereits verwendet und alle> Einstellungen funktionieren auch soweit, auch mit der Rampensteuerung> klappt alles soweit. Aber ich darf wie bereits erwähnt nicht diese> Sorftware verwenden,
Ach?
Wo genau hast du das erwähnt?
> Genau da liegt mein Problem. Wie kann ich das in einem Code realisieren,> das mein Motor langsamer werden soll!
In dem du die Takte, die den Schrittmotor den Schritt machen lassen,
eben langsamer oder schneller generierst.
Vielleicht irre ich mich ja, aber ich denke du solltest dir erst mal
über ein paar Zusammenhänge klar werden, ehe du auf Timer und Interrupts
setzt.
Andi schrieb:> Genau da liegt mein Problem.
Nein, dein Problem liegt vor Allem darin, dass du im Unterricht nicht
aufgepasst hast und nun dumm aus der Waesche guckst. In zweiter Linie
darin, dass du nicht richtig liest, was man dir schreibt, oder das
Gelesene nicht kapierst. Und zu guter Letzt dann noch darin, dass du
offensichtlich nie gelernt hast, dir eine Loesung fuer deine Probleme zu
erarbeiten.
Der einzige, der dir helfen kann, bist du selbst. Und vieleicht ist dein
jetziges Versagen der Startschuss dazu - wenn dir nicht wieder einer der
ueblichen Verdaechtigen aus der Patsche hilft.
Chris schrieb:> Es handelt sich bei meinem Problem wie bereits mehrmals und auch in der> Überschrift erwähnt um eine Regelung, nicht um eine Steuerung.
Aha, und wo berkommst Du das geschwindigkeitsabhängige Signal her?
Hast Du einen Tachogenerator oder einen optischen Weggeber auf der
Achse Deines Scrittmotors befestigt?
>> @Taktfinder: Die Software habe ich bereits verwendet und alle> Einstellungen funktionieren auch soweit, auch mit der Rampensteuerung> klappt alles soweit.
Interessant, das man die wichtigsten Details erst so spät erfährt.
Ist das hier eine Art Ratespiel ala Jauch?
> Und da sind meine Schwierigkeiten, bei der Codeerstellung für die> Regelung der Geschwindigkeit.
Regeln kannst Du nur, wenn Du auch einen entsprechenden Geber hast.
> Es geht mir um die Erstellung eines Codes, mit dem ich diese> Geschwindigkeit regeln kann!!
Da musst Du einen Soll/Istwertvergleich machen.
> Das mit der Sollstellung habe ich nicht ausführlich erklärt:
Nicht nur das...
> Der Motor soll nach sechs Umdrehungen stehen bleiben, zuvor aber etwas> langsamer werden.
Bei sechs Umdrehungen lohnt es sich ja gar nicht erst, überhaupt
eine hohe Geschwindigkei zu erzeugen.
> Genau da liegt mein Problem. Wie kann ich das in einem Code realisieren,> das mein Motor langsamer werden soll!
Das hängt u.a. davon ab, ob Du den Taktgeber der Nanotec Steuerung
benutzen willst, oder ob Du den Takt selbst erzeugen willst. Falls
lezteres frage ich mich allerdings, warum Du die Steuerung über-
haupt dazwischengeschaltet hast.
Gruss
Harald
Manchmal hat man ja auch ein Brett vorm Kopf oder lechzt sonstwie nach
Hilfe.
Also entscheidend ist: ist das dein Code? Dann hast du ein Brett vorm
Kopf, machst früh Schluss, gehst in die Kneipe und morgen ist alles gut.
Wenn du den Code vorgesetzt bekommen hast wird es schwerer. Kannst du
jemand um Rat fragen tus, denn das ist dann die Hilfe zur Selbsthilfe
die ja mehr oder weniger charmant im Raum steht ;-)
Wann läuft der Motor schneller? Wenn er schnellere Takte bekommt. Die
werden vom Timer erzeugt. Wenn der von langsam immer schneller abläuft,
gibt das doch bei linearem Zuwachs eine Rampe. Ebenso rückwärts. Timer
weniger oft überlaufen lassen.
Du siehst jetzt zu, daß du bis zu einem Endwert die Takte schneller
generierst. Dann kommt der Rest von allein.
Wo du den Timer verstellst musst du dir überlegen.
Aber, und das wurde auch schon erwähnt, es muss halt irgendeine Sensorik
geben vond er du erfährst, WO dein Motor überhaupt ist. Woher soll er
sonst wissen wann er bremst.
Ich hoffe geholfen zu haben. Und auch daß das nichts mit einem Komplex
zu tun hat.
Ach ja: eine Umdrehung eines Schrittmotors hat ja ohne Schlupf eine
bestimmte Anzahl von Schritten.
ANDI ODER CHRIS ODER WIE AUCH IMMER DU HEIßEN MAGST:
KRIEG DEINEN ARSCH IN DIE LUFT, FANG ZU DENKEN AN UND
!!!POSTE DIE INFOS!!!
so hirnverbrannt kann doch kein mensch sein!
DU willst hier hilfe, also stell wenigstens infos bereit.
herrgott...
Syntax schrieb:>> GIB DEN SCHALTPLAN ODER BAUPLAN MIT NAMEN HER UND LAD DEINEN KOMPLETTEN>> CODE RAUF!Harald Wilhelms schrieb:> Aha, und wo berkommst Du das geschwindigkeitsabhängige Signal her?> Hast Du einen Tachogenerator oder einen optischen Weggeber auf der> Achse Deines Scrittmotors befestigt?> Interessant, das man die wichtigsten Details erst so spät erfährt.> Ist das hier eine Art Ratespiel ala Jauch?Karl Heinz Buchegger schrieb:> Ach?> Wo genau hast du das erwähnt?Clemens M. schrieb:> Ist der source code denn jetzt aus der Firmware von diesem> Controllerboard?> Ich bin jetzt echt verwirrt.Udo Schmitt schrieb:> Das nützt nix, dazu müsstest du die kompletten Unterlagen des Nanotec> Treibers sowie die gewählte Betriebsart wissen.Elko4 schrieb:> Aber um dir richtig helfen zu können wäre es sinvoll, wenn du endlich> mal deine gesamten Unterlaen inkl. Schaltplan posten würdest!
@Andi.
1. Programmiere erst mal überhaupt eine Rampe.
Sprich du hast
Schrittfrequenz full speed
Schrittfrequenz lowest speed
Anzahl Schritte
Jetzt schreibst du dir eine Softwar die in dieser Anzahl Schritte die
Schrittfrequenz von high speed zu lowest speed runterfährt.
Wenn das funktioniert baust du eine Einfachregelung:
Sobald istwert nur noch weniger oder gleich der gewählten Anzahl
Schritte für die Rampe weg ist fängst du mit der Rampe an.
Als nächstes musst du das auch eine Rampe fürs Beschleunigen bauen,
sowie beim Beschleunigen prüfen ob du nicht schon wieder bremsen musst
(Restanzahl Schritte)
Wenn du das jetzt nicht hinkriegst dann solltest du die Aufgabe an
jemand anderen übergeben.
Mein letzter Rat zur "Regelung" denn so langsam komme ich mir vor wie
bei versteckter Kamera. Ist das üblich? Dann muss ich in viel mehr
threads reinlesen.
Vielleicht ist ja tatsächlich da der brainbug und du siehst klarer.
Wenn du (woher auch immer) weißt, daß noch eine Umdrehung fällig ist und
das für mich einfach mal als Wert 1000 Schritte sind, dann zähl doch
einfach bei jedem Takten von da an deine verbleibenden Schritte runter.
Sind noch 800 übrig stellst du den Timer auf 80% max Frequenz ein, sind
noch 200 übrig auf 20%.... dann bremst er linear ab. Außer linear in der
Zeit..aber Prinzip ist ja klar
Eine Regelung ist das nicht wirklich, du darfst keine Schritte
verlieren, aber laut deiner Anforderung könntest du so straightforward
vorgehen.