mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schrittmotorsteuerung mit Mikrocontroller


Autor: Oliver (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich muss einen Schrittmotor steuern und suche einen geeignetes 
Mikrocontroller-Board.

Zu meiner Anwendung:

Auf dem Bild erkennt man die Anordnung aus dem Schrittmotor,
einer Kupplung, den Metallstift für die Lichtschranke, der 
Mikrometerschraube sowie einem Kraftaufnehmer. Der Schrittmotor bewegt 
den Kraftaufnehmer hinunter, bis ein kleiner Mikroschalter, der sich 
darunter befindet, geschaltet hat. Danach soll der Schrittmotor den 
Kraftaufnehmer wieder hochbewegen, dabei wird noch der Rückschaltpunkt 
ermittelt. Die ermittelten Werte, bestehend aus Schaltpunkt sowie 
Rückschaltpunkt, sollen mit Hilfe eines PCs ausgewertet werden. Ein 
Mikrocontrollerboard soll die Steuerung des Motor und das merken der 
gegangenen Schritte übernehmen. Dabei müssen nach jedem Schritt die 
Kontakte des jeweiligen Mikroschalters abgefragt werden. (Öffner 
geöffnet? und Schliesser geschlossen?). Der Motor soll anschliessend 
wieder in seine Homeposition fahren und sobald die Freigabe vom PC kommt 
mit der Messung des nächsten Schalters beginnen. Der PC erhählt seine 
Freigabe wiederum von einer eingesetzten SPS. Diese übernimmt das 
heranfahren des Kontaktierschlittens sowie das fixieren des Schalters 
mit einem Niederhalter.

Bisher lief die Steuerung und die Messauswertung auf einem DOS-PC. Nun 
soll die Anlage neuentwickelt werden, da ständig Probleme mit dem 
Schrittmotor auftraten (Fehlschritte). Die Signale für den Schritt und 
die Richtung wurden bisher im PC generiert. Nun soll die gesammte 
Steuerung auf einem Board ausgelagert werden um den PC zu entlasten.

Das Mikrocontorllerboard müsste genügend digitale Ein-/Ausgänge besitzen 
und ebenfalls mindestens einen analogen Eingang für den Kraftaufnehmer 
mitbringen.

Der Kraftaufnehmer soll z.B. den Referenzpunkt ermitteln, indem ein 
Schalter-Dummy in die Vorrichtung gelegt wird und der Motor 5 mal bis zu 
dem Punkt des Schalter-Dummys herrunterfährt und daraus den Mittelwert 
für den Referenzpunkt bildet.

Es soll ebenfalls die Möglichkeit gegeben sein einen Timer für eine 
Verzögerung zu programmieren. Die Verzögerung muss variabel sein. (für 
Beschleunigungs und Abbremsvorgänge)

Der Timerbaustein sollte möglichst hochauflösend sein.

Die Ansteuerung des Motor sollte in etwa so aussehen:

for (i=0;i<stepWidth;i++){
  step --> 1
  delay(0.00125); // z.B. 1.25ms warten
  step --> 0 // Hier macht der Motor einen Schritt
  delay(0.00125); // z.B. 1.25ms warten
  position++; // Schrittmerker

  // Hier die Abfrage der Kontakte
  // z.B. wenn Schalter geschaltet -->break;
}

Wichtig ist ebenfalls die Kommunikation und der Datenaustausch mit dem 
PC (Freigabesignale, Fehersignale, Position des Schaltpunktes, usw...)

Kennt sich jemand mit solchen Anwendungen aus? Und, hab ihr eine Ahnung 
welches Board man da am besten verwenden kann.

Gruss

Oliver

Autor: Hans-Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Oliver

ich habe für eine ähnliche Anwendung zu prüfen von Mikroschaltern 
aufgebaut. Dabei werden Volaufweg, Rücklaufweg,Nachlaufweg, Differenzweg 
und Leerlaufweg ebenfalls mit einer von einem Schrittmotor angetriebenen 
Mikrometerschraube vermessen. Das ganze ist mit einem 8051 realisiert.
Die Frage ist was für einen Schrittmotor Du einsetzt, Polzahl, 
Strangstrom, Schrittwinkel, max. Schrittzahl etc. Wie ich auf dem Bild 
erkenne hast Du eine Faltenbalgkupplung zwischen Schrittmotor und 
Mikrometerschraube,hast Du da keine Probleme da die Spindel der 
Mikrometerschraube sich doch axial mitändert?

Gruß Hans-Jügen

Autor: unsichtbarer WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Je nach Schrittmotorleistung und -bauart (uni- oder bipolar) ist ein 
bestimmter Treiber notwendig.
Dessen Ansteuerung kann eigentlich jeder x-beliebige Controller 
übernehmen.
Bei der Datenübertragung gehe ich von RS232 bzw. USB (virtuelle serielle 
Schnittstelle) aus.
Wenn man einen etwas "grösseren" Controller verwendet, könnte man sich 
die SPS vermutlich auch sparen...

@Hans-Jürgen:
>Wie ich auf dem Bild
>erkenne hast Du eine Faltenbalgkupplung zwischen Schrittmotor und
>Mikrometerschraube,hast Du da keine Probleme da die Spindel der
>Mikrometerschraube sich doch axial mitändert?

Bei der Mikrometerdschraube bewegt sich doch der Zapfen aus dem Gehäuse 
heraus, oder sehe ich das falsch?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans-Jürgen,

ich verwende einen bipolaren Schrittmotor. Der Schrittmotor wird im 
Vollschritt betrieben, d.h. 1 Schritt entspricht 0.0025 mm. Ich glaube, 
müsste aber nochmal genau nachschauen, das entspricht einem 
Schrittwinkel von 1.8°.
Meine Schrittmotorkarte "ESD-1200" im bisherigen System liefert 2A.

Aha, Faltenbalgkupplung - Danke für die Info, wusste ich noch nicht -

Probleme welcher Art hattest Du mit dieser Kupplung? Ich hab gerade 
jemanden aus der Produktion gefragt, der sagte mir diese Kupplung sei in 
einem anderem Aufbau schonmal gebrochen.

Hast Du in Deinem Programm auch nach jedem Schritt die Kontaktierung der 
Schalter überprüft?

Gruss

Oliver

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo unsichtbarer WM-Rahul,

ja das siehst Du genau richtig der Zapfen bewegt sich aus dem Gehäuse 
der Mikrometerschraube hinaus.

Auf die SPS können wir jedoch nicht verzichten, da die SPS auch andere 
Komponenten in der Anlage steuert auf die ich keinen Einfluss habe.

Gruss

Oliver

Autor: Hans-Jürgen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Oliver,

ich habe mal eine Foto begefügt (eigendlich sollten es 2 werden mit 
beiden Endlagen).Worauf ich hinaus wollte ist: Wenn die 
Mikrometerschraube betätigt wird wandert die Skale mit dem Noninus auf 
der mm Skala vor bzw.zurück den gleichen Weg macht auch die 
Betätigungsschraube. In deinem Falle heist das das die 
Faltenbalgkupplung gedehnt bzw. gestaucht wird un dafür ist sie nicht 
vorgesehen und wird brechen. Ich habe das Problem mit einer 
Vielzahnwelle gelöst.
Ich habe ebenfalls nach jedem Schritt den Schalterzustand abgefragt, der 
Datenaustausch mit dem PC über RS232 abgewickelt.

Gruß Hans-Jürgen

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans-Jürgen,

verstehe! Vielen Dank für den Tipp mit der Vielzahnwelle. Wie hast Du 
denn Deine Verzögerung realisiert. Timer-Baustein? 8253/8254? Wenn ja 
wie geschieht das mit dem Zugriff über den 8051?

Hast Du einen Zähler mit jedem Timer-Takt erhöhen lassen bis der 
vorgegebene Verzögerungswert mit dem Zählerwert übereinstimmt?
-->Schleife solange bis der Zählerwert erreicht ist, dann nächsten 
Schritt usw.?

Falls Du noch mehr Informationen hast, wäre ich sehr daran interessiert.
Ich erarbeite dieses Thema im Zuge meiner Diplomarbeit und ich befasse 
mich damit schon sehr ...zu lange.

Gruss

Oliver

Autor: Hans-Jürgen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Oliver,

ich habe die komplette Ansteuerung und Auswertung nur mit einem 8051 
gemacht. Für die Schrittmotoransteuerung habe ich einen TCA3727 
eingesetzt. An und für sich ist das ganze recht einfach zu realisieren.
Da ich dieses Prüfmittel für die Firma entwickelt habe kann ich es nicht 
so einfach hier im Forum veröffentlichen. Ich kann Dir aber gerne 
Auszugsweise einige Informationen zukommen lassen 
(Schaltplan/Progammcode).Um dieses Projekt aber zu ende zu führen 
benötigst Du einen C-Compiler (Keil) Die Hardware ist simpel und eine 
angepasste Leiterplatte ist bei Beta-Layout für ein paar Euro zu haben.
Du kannst mir ja Deine Email mitteilen dann schicke ich Dir ein paar 
Infos, das kann aber ein paar Tage (2..3) dauer weil ich diese Woche 
nicht mehr dazukomme. Ich habe noch ein Bild anghängt das die 
Mikometerschraube in der andern Endlage zeigt.

Gruß Hans-Jürgen

Autor: Oliver Herpel (oliher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans-Jürgen,

vielen Dank für Deine Unterstützung, ich würde mich natürlich sehr 
darüber freuen, wenn Du mir ein paar Informationen zukommen lassen 
könntest. In der Hochschule haben wir auch den 8051 programmiert. Dabei 
haben wir yVision von Keil verwendet. Handelt es sich dabei um denselben 
Compiler, weißt Du das zufällig?

Ich weiß zwar nicht ob ich meine E-Mail Adresse mitsenden darf, aber ich 
wüsste nicht was dagegensprechen sollte, also: oliver.herpel@gmx.de

Gruss und vielen Dank im Voraus

Oliver

Autor: Hans-Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Oliver,
das ist genau die richtige Entwicklungsumgebung. Ich stelle Dir was 
zusammen und schicke es Dir per Email zusammen mit meiner Tel. Nr. für 
evtl. Rückfragen.

Gruß Hans-Jürgen

Autor: H.D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie lange hält die Mikrometerschraube denn das durch?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.