Hauptseite
Willkommen beim Wiki des Mechatroniklabors an der Hochschule Hamm-Lippstadt.
Anmelden geht hier: Anmeldung
Allgemeines
Komponenten
Gecko Drive
Die optoentkoppelten Eingänge bei Geckodrives sollten nicht gegen Masse, sondern gegen +5V geschaltet werden.
Der Regler im Gecko arbeitet analog und nicht über einen Microcontroller. Die interne Schaltung besteht aus ein paar digitalen Standard-IC's (Zähler, Addierer, Flip-Flops, Schmitt-Trigger-Nand-Gatter), OPV's, DA-Wandlern und einigen passiven Bauteile.
Über DIP-Schalter kann man den maximalen Motorstrom einstellen, der bis 7A betragen kann.
Quelle: http://linuxwiki.de/EMC/ServoGecko
Schrittmotoren
Ein Schrittmotor ist ein Synchronmotor. Der Rotor kann durch ein gesteuertes, schrittweise rotierendes elektromagnetisches Feld der Statorspulen um einen minimalen Winkel (Schritt) gedreht werden. Es kann man in mehreren Schritten jeder Drehwinkel, wenn er ein Vielfaches des minimalen Drehwinkels ist, realisiert werden.
Mit einem Schrittmotor kann ohne aufwendige Wegstreckenerkennung genaue Positionen anfahren. Da Schrittmotoren exakt dem außen angelegten Feld folgen können, ist ein Betrieb ohne Sensoren zur Positionsrückmeldung möglich. Da alle Schritte im Links- und Rechtslauf gezählt werden, erkennt die Elektronik immer die exakte Position der Achse. Wie groß ein Schritt ist, hängt vom jeweiligen Motor ab, aber zumeist beträgt ein Schrittwinkel 1.8°, sodass mit 200 Schritten eine Umdrehung realisiert werden kann.
Man unterscheidet grundsätzlich zwei verschiedene Schrittmotormodelle. Der unipolare Schrittmotor hat zwei Spulen mit einem jeweiligen Mittelabgriff. Für ihn ist eine Spannung ausreichend. Der bipolare Schrittmotor hat mit vier Spulen und polt die Spannungen kontinuierlich um.
Wird ein Schrittmotor durch ein externes Lastmoment oder durch die anzutreibende Masse beim starken Beschleunigen überlastet, kann der Rotor dem Drehfeld nicht mehr folgen. Es werden Schritte übersprungen und eine korrekte Information über die aktuelle Position des Rotors ist nicht verfügbar. Bei einem solchen Schrittverlust springt der Motor in die vorherige oder nächste Position gleicher Phase. Auftretende Schrittverluste summieren sich und führen dann zu einer ungenauen Positionierung. Für höhere Geschwindigkeiten ist ein sanftes Anfahren und Verzögern zu empfehlen, um einen Schrittverlust zu vermeiden.
Die Kenngrößen eines Schrittmotors:
• Schrittwinkel, das heißt der Winkel für einen Vollschritt. Ein Vollschritt tritt bei der Umschaltung des Stromes von einer Wicklung auf die nächste auf.
• Phasenanzahl
• Schrittanzahl n pro Umdrehung
• maximaler Strangstrom I
• ohmscher Spulenwiderstand R
• Spuleninduktivität L
• Drehmoment im Stand (Haltemoment) für einen gegebenen Strom und Drehmomentverlauf mit steigender Drehzahl
• Wicklungsanschlussgestaltung (ohne Mittelanzapfung, mit Mittelanzapfung, mit gemeinsamer Mittelanzapfung)
Quellen: http://de.wikipedia.org/wiki/Schrittmotor http://www.wolfgang-back.com/PDF/Schrittmotor.pdf http://www.rn-wissen.de/index.php/Schrittmotoren
Arduino Mega 2560
Der Arduino Mega 2560 ist ein Mikrocontroller Board, basierend auf dem ATmega2560 (datasheet). Er verfügt über 54 digitale Input/Output Pins (von denen 14 als PWM Output nutzbar), 16 analoge Inputs, 4 UARTs (Hardware Serial Ports), einen 16 MHz Quarz Oszillator, eine USB Verbindung, eine Strombuchse, einen ICSP Header und einen Reset-Button. Er besitzt alles Notwendige um den Mikrocontroller zu betreiben. Um loszulegen müssen Sie den Arduino Mega 2560 lediglich per USB Kabel mit einem Computer verbinden oder an ein AC-to-DC Netzteil oder eine Batterie anschließen. Der Mega ist mit den meisten für den Arduino Duemilanove und Diecimila entworfenen Shields kompatibel. Der Mega 2560 ist ein Update des Arduino Mega und ersetzt diesen.
Der Mega 2560 unterscheidet sich von allen vorherigen Arduino Boards darin, dass er keinen extra FTDI USB-to-Serial Treiber Chip nutzt, sondern einen als USB-To-Serial Converter programmierten ATmega16U2 (in den Versionen bis R2 Atmega8U2).
Quelle: Arduino, http://arduino.cc/de/Main/ArduinoBoardMega2560, Zugriff am 26.11.2013
Kennzahlen Arduino Mega 2560:
- Operating Voltage: 5 V
- Input Voltage (recommended): 7-12 V
- Input Voltage (limits): 6-20 V
- Digital I/O Pins: 54 (of which 15 provide PWM output)
- Analog Input Pins: 16
- DC Current per I/O Pin: 40 mA
- DC Current for 3.3V Pin: 50 mA
- Flash Memory: 256 KB of which 8 KB used by bootloader
- SRAM: 8 KB
- EEPROM: 4 KB
- Clock Speed: 16 MHz
Quelle: Arduino, http://arduino.cc/de/Main/ArduinoBoardMega2560, Zugriff am 26.11.2013
Anleitungen
LabView: Einleitung
Das Programm LabView des Herstellers National Instruments ermöglicht die Programmierung von Simulationsmodellen und/oder Eingabe/Ausgabe- Programmen mittels einer graphischen Oberfläche. Dabei ist die Handhabung ähnlich den Produkten Matlab Simulink oder LEGO Mindstorms BricX.
Installation der Hardware
Um mit der Programmierung zu starten, muss zunächst ein leeres Projekt erstellt werden. Dieses enthält später alle Informationen, Schnittstellen und graphischen Oberflächen, die man für ein Programm benötigt.
Möchte man das Projekt mit einem Eingabe/Ausgabegerät verwenden, muss dieses zunächst hinzugefügt werden. Die folgenden Schritte wird beschrieben, wie ein I/O Controller cRIO 9024 in ein Projekt eingebunden werden kann.
Im Project-Explorer befindet sich ein leeres Projekt, dem nun die Hardware hinzugefügt wird:
• Rechtsklick auf das Projekt => Neu => Ziele und Geräte
• Im Ordner Real-Time CompactRIO befindet sich die über das Netzwerk verbundene HSHL-CRIO-CPU02 und wird über einen Doppelklick zum bestehenden Projekt hinzugefügt.
• Anschließend erscheint im Project-Explorer die Hardware Chassis (CRIO-9114). Das im Slot 1 befindliche Modul zeigt alle DIO´s welche über ein Rechtsklick auf Mod1 konfiguriert werden können, d.h. die jeweiligen DIO´s können als Input oder Output definiert werden.
• Um potenzielle Fehler zu vermeiden, ist es sinnvoll den verwendeten Input bzw. Output direkt umzubenennen.
Erstellt man jetzt ein neues VI, erscheint dies zunächst nur in Mein Computer. Für eine einwandfreie Übertragung auf die Hardware muss das VI über drag and drop in die Hardware gezogen werden. Genaueres dazu ist in Problembehebung zu finden.
Screenshots
Die Hardware wurde nun mit dem Programm "bekannt gemacht" und kann verwendet werden.
Grundlegendes: VI und Blockdiagramm
In ein erstelltes leeres Projekt kann nun ein "Visual Interface", kurz VI genannt, eingefügt werden. Dazu muss auf das weiße-Blatt-Symbol oben links geklickt werden:
Screenshot
Es erscheint daraufhin ein leeres VI. Dieses stellt ein graphic user interface für die Interaktion mit dem späteren Programm dar. Das eigentliche Programm wird in einem "Blockdiagramm" genannten Fenster erzeugt und editiert. Das Blockdiagramm wird folgendermaßen geöffnet:
Screenshot
VI und Blockdiagramm stehen in direkter Beziehung. Es können Eingaben im VI gemacht werden, die das Blockdiagramm beeinflussen und es können Ausgaben des Blockdiagramms auf dem VI dargestellt werden:
Screenshot
Erste Schritte: Programmieren im Blockdiagramm
In das leere Blockdiagramm können nun Schleifen, Variablen und Funktionsbausteine per drag&drop aus dem "Funktionsmenü" eingefügt und miteinander verknüpft werden. Die Verbindungen zwischen Bausteinen werden grafisch durch Linien gebildet, die mit der Computermaus gezogen werden:
Screenshot
Die Funktionspalette enthält eine Vielzahl an Elementen, die unterschiedlichste Möglichkeiten von Berechnungen, Umformungen, Vergleichen etc. bieten. Besonders beachtet werden muss, dass nicht jeder Baustein mit jedem verknüpft werden kann, da teilweise die verwendeten Datentypen nicht kompatibel sind. Am sinnvollsten ist es, wenn man einen neuen Baustein einsetzen möchte, diesen zunächst anzuklicken und unter "Hilfe" die Beschreibung zu studieren. Dort sind alle Eingangs-und Ausgangsgrößen, die Funktion und die benötigten Datentypen des Bausteins beschrieben:
Screenshot
Als Start kann zunächst eine endlose (while-) Schleife eingefügt werden. Als Abbruchbedingung kann beispielsweise ein Bedienelement auf dem VI dienen, welches man folgendermaßen einfügt:
Screenshot
In die äußere Schleife können nun die benötigten Bausteine hineingezogen werden und laufen dann solange wie die äußere Schleife.
Eine Eingabemöglichkeit im VI, die dann auf das Programm Einfluss nimmt, lässt sich folgendermaßen umsetzen: Man fügt zunächst einen "Eingabebaustein" im Blockdiagramm ein. Dieser erscheint dann gleichzeit auch im VI und kann dort beliebig platziert werden.
Beispielprogramm
Es soll nun ein Beispielprogramm erstellt werden, welches einen im VI vom Benutzer eingegebenen Wert für eine Berechnung nutzt und diesen dann wieder an das VI ausgibt.
Zunächst wird die Endlos-while-Schleife eingefügt:
Screenshot
In die Schleife wird dann ein Eingabebaustein eingefügt und im VI entsprechend platziert:
Screenshot
Der Eingabewert kann dann im Blockdiagramm für beliebige Berechnungen/Steuerungen verwendet werden. In diesem Fall wird der Wert mit der Konstanten Zahl 1000 Multipliziert. Dafür wird ein mathematischer Funktionsbaustein (Multiplikation) aus der Palette "Mathematik" eingefügt:
Screenshot
Beide Bausteine werden dann durch eine Linie miteinander verbunden. Die Farbe der Linie gibt an, um was für einen Datentyp es sich handelt. In diesem Fall ist es ein Datentyp "double", der stets die Farbe orange hat.
Dieser Wert soll dann auf einem Anzeigefeld im VI dargestellt werden. Dafür fügt man ein Anzeigelement aus der Funktionspalette ein und verbindet es mit dem Ausgang des Multiplikator-Bausteins.
Screenshot
Ansteuerung eines Schrittmotors mit LabView
Grundsätzlich gibt es mehrere Möglichkeiten über LabView einen Schrittmotor anzusteuern. Voraussetzung dazu ist eine Art Pulsweitenmodulation (PWM) zu erhalten. Eine Option ist einen von LabView bereits fertigen "Signalgenerator" zu wählen. Dieser ist einfach und übersichtlich aufgebaut. Jedoch führte es schnell zu Problemen sobald man einen Zähler oder ein Abbruchkriterium hinzufügen möchte. In dem folgenden Programm wird dies über eine "flache Sequenz" realisiert.
Befindet man sich im Blockdiagramm, so können über die von LabView gestellte Funktionspalette die gewünschten Bausteine mittels Drag and Drop in die Arbeitsfläche gezogen werden. Unter "Programmierung" => "Strukturen" befindet sich der Baustein "Flache Sequenz". Nachdem diese auf die Arbeitsfläche gefügt wird, besteht dieses Bauteil nur aus einer Sequenz. Da wir für die Ansteuerung des Schrittmotors jedoch zwei unterschiedliche Zustände (1/0) benötigen, kann man über ein Rechtsklick der Sequenz "einen Rahmen danach einfügen" wählen. Um die Zustände der jeweiligen Sequenz zu definieren, wird über "Programmierung" => "Boolesch" eine "True"- bzw. "False-Konstante" eingefügt. Die Länge der einzelnen Zustände werden über Wartezeiten ("Warten auf ein Vielfaches von…") bestimmt ("Programmiereung" => "Timing"). Um den Output des Signals festzulegen, muss über den Projekt-Explorer der gewünschte DIO in das Blockdiagramm gefügt werden. Wichtig: Der gleiche DIO muss in jeder der Beiden Sequenzen vorhanden sein. Anschließen muss die True- bzw. False-Konstante mit dem jeweiligen DIO verbunden werden (Hier DIO0). Somit ändert sich der Zustand nach der definierten Wartezeit von z.B. 20ms von 1 (5V) auf 0(0V). Dieser Ablauf würde einem Step entsprechen. Um dies zu duplizieren, wird das Programm in eine While-Schleife gefügt ("Programmierung" => "Strukturen" => "While-Schleife"). Damit werden die Sequenzen so oft wiederholt, bis über ein Abbruchkriterium die Schleife gestoppt wird. Anfangs ist es sinnvoll dies über einen Schalter o.ä. zu realisieren (Rechtsklick auf das Abbruchkriterium der Schleife=> "Erstellen" => "Bedienelement").
Verfahren einer vorgegebenen Wegstrecke
Einfügen eines Zählers:
Um mit dem Schrittmotor eine definierte Strecke zu verfahren, müssen vorab die tatsächlichen Zustandsänderungen gezählt werden. Auch hierbei gibt es mehrere Möglichkeiten. Eine einfache wie funktionelle Lösung wird im Folgenden beschrieben:
• Vorab muss eine Konstante erstellt werden, welche für den Startwert des Zählers steht (Programmierung => Numerisch => Num. Konstante) Diese muss für diesen Fall vor der ersten Sequenz positioniert werden.
• Sobald das Programm in die erste Sequenz springt soll der Zähler um 1 gesteigert werden. Dazu dient der Baustein Programmierung => Numerisch => Inkrementieren.
• Der Feedback-Node dient hierbei als Speicher und Rückkopplungselement.
• Um sich den aktuellen Zählerwert ausgeben zu lassen muss ein numerisches Anzeigeelement eingefügt werden, welches den Zählerstand nach dem Inkrementieren abgreift.
• Das eingefügte Anzeigeelementes erscheint ebenso automatisch im Front-Panel und kann dort jederzeit abgelesen werden.
Abbruchkriterium der While-Schleife:
Jedoch werden in diesem Fall nur die Anzahl der Steps angezeigt. Für die Ausgabe in Millimeter ist vorab eine kleine Rechenoption nötig. Aus dem Datenblatt des Schrittmotors lässt sich entnehmen, dass ein Schritt 0,033mm entspricht. Daher muss die Anzahl der Schritte mit 0,033 multipliziert werden. Ein weiteres Anzeigeelement ermöglicht die Ausgabe der aktuell verfahrenen Strecke in Millimeter.
SPS: Linksammlung zur Siemens SIMATIC S7-300. SIMATIC S7
Wissenschaftlich Arbeiten mit LaTeX
Projekte
3-D-Bearbeitungsmaschine (Projekt des Schwerpunkts GPE im Studiengang MTR)
Kleine mechatronische Aufbauten (Projekte des Praktikums Elektrotechnik im Studiengang MTR)
Autonom fahrendes Fahrzeug für den Carolo Cup (Projekt des Schwerpunkts SDE im Studiengang MTR)
Starthilfen
Hilfe erhalten Sie hoffentlich in einem der unteren Links.