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
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
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?
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
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
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
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
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
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
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