Hallo zusammen! Ich bin auf der Suche nach einem industrietauglichen Computer, mit dem ich Folgendes umsetzen kann: Ich möchte eine mechanische Baugruppe, die ein Bauteil positioniert, durch einen Schrittmotor ersetzen. Für diesen Schrittmotor benötige ich einen kleinen PC, auf dem ich (bevorzugt via Python) die Logik und das Frontend programmieren kann. Es sollte also möglich sein, ein Touchpanel anzuschließen – oder idealerweise ist schon eins integriert. Im besten Fall würde ich den Treiber der Schrittmotoren direkt vom PC aus ansteuern, ohne eine zusätzliche SPS zwischenschalten zu müssen (aus Platz- und Kostengründen). Ich habe dazu mal einen Prototypen mit einem Raspberry Pi gebaut, aber der stößt aus mehreren Gründen an seine Grenzen. Zum einen benötigt der Treiber der Schrittmotoren idealerweise 20 V (mindestens aber 5 V), während die GPIOs des Raspberry Pi nur 3,3 V liefern. Zum anderen bin ich mir nicht sicher, ob die Ausgänge „schnell genug“ schalten, damit der Treiber ein korrektes Signal bekommt. Trotz längerer Recherche bin ich nicht fündig geworden, ob es in diese Richtung etwas gibt – d. h.: 1.) ein kleiner, industrietauglicher PC mit integriertem Touchpanel (oder alternativ extern anschließbar), 2.) der PC muss nicht viel leisten, es geht hauptsächlich um ein GUI, in dem man ein paar Werte eingibt und die Steuerung starten bzw. stoppen kann, 3.) idealerweise ca. 10–20 digitale 20V-Ausgänge, mit denen ich die Signale an die Schrittmotor-Treiber ausgeben kann (Rest für Schalter etc.), ohne dass ich eine SPS benötige, 4.) preislich im Rahmen – muss kein Raspberry Pi sein, aber < 500–600 € wäre so das Budget. Da ich mir vorstellen kann, dass ich nicht der Einzige bin, der eher eine „einfache“, kleine Anwendung hat und nicht gleich mit Kanonen auf Spatzen schießen will, dachte ich, ich frage mal hier, ob jemand Tipps hat – oder ob ich mir da vielleicht etwas vorstelle, das in der Praxis einfach nicht funktionieren kann. Vielen Dank im Voraus!
Ohne SPS funktioniert kein Schrittmotor in einem 3D-Drucker. Auch gibt es keine professionellen Schrittmotortreiber, die man per Schnittstelle anstzeuern könnte. CNC-Maschinen wurden auch noch nicht erfunden.
Jonathan P. schrieb: > Im besten Fall würde ich den Treiber der Schrittmotoren direkt vom PC > aus ansteuern, Ein PC ist nicht (nur unter Klimmzügen) timingstabil genug dafür. Daher gibt man Befehle zur Steuerung des einen Schrittmotor an eine externe Steuerung, die man sowieso braucht weil die Schrittmotoren ein kraftiges Interface brauchen. So was ist vollig ublich, wenn man CNC Maschinen und 3d-Drucker steuern will z.B. mit Mach3 oder Candle, und es gibt Platinen mit Treibern dafür, meist 3 oder 4 Achsen. Die Steuersprache ist meist G-Code, ein Steuerspracheninterpreter GRBL. Ja, Mach3 kann auch auf bestimmten PC das timing selber machen, aber z.B. nicht auf mobile Prozessoren mit variabler Taktrate.
Jonathan P. schrieb: > eher > eine „einfache“, kleine Anwendung Kommt halt auf die Dynamik an. Wenn die Positionierung nacheinander erfolgen darf, ist ein Arduino mit GRBL und eine Fernsteuerung per G-Code per Python-Skript eine einfach und schnell implementierbare Lösung. Wenn die Ansprüche steigen, steigt der Aufwand.
Jonathan P. schrieb: > Zum einen benötigt der Treiber der Schrittmotoren idealerweise 20 V > (mindestens aber 5 V), während die GPIOs des Raspberry Pi nur 3,3 V liefern. Du vermischt Betriebsspannung mit Signalpegeln zur Steuerung. Vielleicht hast du auch einen ungeeigneten Treiber gesehen. Die Schnittstelle der meisten Schrittmotortreiber ist auf 3.3V oder 5V-Pegel ausgelegt. Mit welcher Spannung und welchem Strom arbeiten deine Motoren oder bist du da noch frei in der Auswahl?
:
Bearbeitet durch User
Jonathan P. schrieb: > 1.) ein kleiner, industrietauglicher PC mit integriertem Touchpanel > (oder alternativ extern anschließbar), Die gibt's wie Sand am Meer und jeder davon ist für das Frontend geeignet. > 3.) idealerweise ca. 10–20 digitale 20V-Ausgänge, mit denen ich die > Signale an die Schrittmotor-Treiber ausgeben kann (Rest für Schalter > etc.), ohne dass ich eine SPS benötige Das allerdings kannste vergessen. Für die Ansteuerung der Hardware brauchst du eine SPS oder eine Hardware, die vergleichbares wie eine SPS leisten kann. Also nimmst du am einfachsten eine fertige SPS. Alles andere lohnt allenfalls, wenn du mindestens mittelgroße Stückzahlen deiner Lösung produzieren willst (Richtwert: so einige Hundert). Bei geringeren Stückzahlen ist der Entwicklungs- und Zertifizierungsaufwand viel zu groß. > oder ob ich mir da vielleicht etwas vorstelle, das in der Praxis > einfach nicht funktionieren kann. Funktionieren tut das alles. Das Problem sind halt die Kosten. Fertige SPS sind einfach relativ teuer und eine Eigentwicklung ist für geringe Stückzahlen noch teuerer.
Vielen Dank erstmal für das ganze Feedback! Ein paar Infos noch die ich vergessen habe: Das ist der Treiber des Stepper Motors https://www.amazon.com/HBS860H-HBS86H-Closed-Two-Phase-Stepper/dp/B0DRCY4VNN (Zumindest der, den ich mir jetzt zum Ausprobieren geholt habe) Michael B. schrieb: > Ein PC ist nicht (nur unter Klimmzügen) timingstabil genug dafür. Ich hatte eben in diversen Foren gesehen, dass Leute diesen Treiber direkt mit z.B. einem Raspi ansteuern. Intuitiv (aber das ist unter Umständen auch nicht viel wert) wundert es mich, dass ich nochmal einen "Computer" (SPS) zwischenschalten muss. Klar, andere Tasks des OS können dann in der Priorisierung mit den Befehlen an den Treiber in Konflikt kommen, aber ich hab gesehen, dass es eben spezielle Libraries gibt, die das Problem zumindest teilweise lösen. Walter T. schrieb: > Kommt halt auf die Dynamik an. Wenn die Positionierung nacheinander > erfolgen darf, ist ein Arduino mit GRBL und eine Fernsteuerung per > G-Code per Python-Skript eine einfach und schnell implementierbare > Lösung. Die Aufgabe des Steppers ist, eine bisher mechanische Vorschubeinheit zu ersetzen. Das wäre einfach: nachdem das Signal eines Sensors eingeht, ein Bauteil X mm zu verschieben. Ob S. schrieb: > Das allerdings kannste vergessen. Für die Ansteuerung der Hardware > brauchst du eine SPS oder eine Hardware, die vergleichbares wie eine SPS > leisten kann. Also nimmst du am einfachsten eine fertige SPS. > Alles andere lohnt allenfalls, wenn du mindestens mittelgroße > Stückzahlen deiner Lösung produzieren willst (Richtwert: so einige > Hundert). Bei geringeren Stückzahlen ist der Entwicklungs- und > Zertifizierungsaufwand viel zu groß. Ja, es sind eher so 20 Einheiten im Jahr. Das Ganze ist natürlich hauptsächlich limitiert davon, dass jetzt das Ersetzen der mechanischen Einheit sich nicht allzu stark in den Kosten niederschlagen soll. Daher bin ich auch auf der Suche gewesen, das irgendwie möglichst kostengünstig umzusetzen. Vielen Dank nochmal!
Jonathan P. schrieb: > möglichst kostengünstig umzusetzen. Jonathan P. schrieb: > Das ist der Treiber des Stepper Motors Ähmm. Closed loop erfordert Encoder. Dann könnte man gleich einen Servomotor nehmen, wenn man sowieso einen Encoder braucht. Jonathan P. schrieb: > dass es eben spezielle Libraries gibt, die das Problem zumindest > teilweise lösen. Wenn dir ein teilweise funktionierendes Gerät reicht... Im Prinzip sind deine Anforderungen nicht so hoch wie beispielsweise bei einer CNC. Die darf NIE Schritte verlieren, weil es sonst eine Scharte im Werkstück gibt, und die muss 3 Motoren streng zeitsynchron betreiben weil sonst die Form nicht stimmt. Daher müssen Schrittmotore dort so kräftig ausgelegt sein, dass sie auch im ungünstigsten Moment alles schaffen, und das timing muss real time sein in Mikrosekunden. Bei dir darf der Motor schwach ausgelegt werden, weil du Schrittverluste über den Encoder bemerken würdest, und du hast Zeit es erneut zu versuchen, z.B. langsamer oder ausserhalb einer Resonanz. Auch ist ein rPi etwas zahmer als ein PC, aber auch rPi werden für Steuerungsaufgaben mit einem speziellen Kernel installiert, ohne Prozesse die das timing stören. Aber alleine dein Treiber ist teurer als andere Leute für Motor, Treiber, Steuerung und Touchscreen zusammen ausgeben, Na ja, je nach Anforderungen.
Jonathan P. schrieb: > Ich möchte eine mechanische Baugruppe, die ein Bauteil positioniert, > durch einen Schrittmotor ersetzen. Mit einem PC kannst du keine Motoren ansteuern, da er solche zeitkritischen Signale nicht erzeugen kann. Also kannst du dir dir Suche nach einem PC mit entsprechend vielen Ausgängen direkt sparen. Schrittmotoren kann man fertig mit direkt dazu passender Steuerung kaufen, teilweise auch in den Motor integriert. Diese erhalten vom PC Kommandos, wie "drehe x Schritte nach rechts, beschleunige auf y, bremse z Schritte vor dem Ziel ab, melde wenn du dort angekommen bist". Die Kommunikation findet über einen seriellen Bus statt, den man über passende Adapter an jeden PC anhängen kann. Dein Budget solltest du erheblich aufstocken, oder den Auftrag absagen. Siehe https://www.dunkermotoren.de/ (um nur einen möglichen Lieferanten zu nennen)
:
Bearbeitet durch User
> Ein PC ist nicht (nur unter Klimmzügen) timingstabil genug dafür > ... > Mit einem PC kannst du keine Motoren ansteuern, da er solche zeitkritischen Signale nicht erzeugen kann. Früher war das alles kein Problem. Meine ersten Schrittmotor-Basteleien hatte ich unter MS-DOS + TurboPascal + LPT Ports problemlos angesteuert. Leider bringen moderne PCs weder das passende Betriebssystem, noch die passende Hardware noch mit. Wahrscheinlich wirst du um einen kleinen Controller, der über USB angeschlossen ist, nicht herum kommen
Roland P. schrieb: > Früher war das alles kein Problem. Meine ersten Schrittmotor-Basteleien > hatte ich unter MS-DOS + TurboPascal + LPT Ports problemlos angesteuert. Früher lief auch nur dieses eine Programm auf dem PC. Heute sind es mehrere tausend.
Jonathan P. schrieb: > Ich hatte eben in diversen Foren gesehen, dass Leute diesen Treiber > direkt mit z.B. einem Raspi ansteuern. Den willst Du ja nicht! Jonathan P. schrieb: > aber der stößt aus mehreren Gründen an seine Grenzen. Gruss Chregu
Entspricht das Bild hbs860h den Vorstellungen (Quelle : https://de.aliexpress.com/item/1005002093995741.html), dann sollte doch ein RP2040 / BluePill vollkommen reichen. Ein Raspberry PI hast Du ja, Klipper rauf, MCU flashen und ein Modul mit Python erstellen, fertig. [Edit] Optional mit CAN-BUS, falls USB nicht gewünscht. https://www.amazon.de/AZDelivery-Hochgeschwindigkeits-Physische-Schicht-kompatibel-Standard/dp/B0CBKM37HD/ref=sr_1_2 [/Edit]
:
Bearbeitet durch User
Jonathan P. schrieb: > Da ich mir vorstellen kann, dass ich nicht der Einzige bin, der eher > eine „einfache“, kleine Anwendung hat und nicht gleich mit Kanonen auf > Spatzen schießen will, dachte ich, ich frage mal hier, ob jemand Tipps > hat – oder ob ich mir da vielleicht etwas vorstelle, das in der Praxis > einfach nicht funktionieren kann. Ein Schrittmotor von ACT mit Encoder und der zugehörige Treiber HBS86 kosten bei Reichelt so um die 100 Euro, das Netzteil und der Referenztaster dazu nochmal irgendwas um 100 Euro. Die Eingänge vom HBS86 sind optoentkoppelt und dementsprechend keine Spannungs-, sondern Stromeingänge mit den typischen 10mA. Die kann man mit dem billigsten Arduino Nano treiben, man muß den aber selber prorammieren oder sowas wie grbl benutzen. Ansonsten gibts die Motorcontroller von Emis für 100 Euro, die bis 30kHz die Schrittmotoren mit ihren typischen maximal 1000 U/Min ausreizen können. Die Beschleunigungsrampen sind allerdings unterirdisch schlecht, eine neuere Version mit besseren Rampen ist aber noch nicht fehlerfrei. Zur Steuerung über USB oder USB/UART-Bridge nimmt man dann einen beliebigen PC für 300 Euro und Dein Preisrahmen ist eingehalten. Programmiersprache Python inclusive. Just my 2 cents Gruß Klaus (der soundsovielte) P.S. Habe mehrere dieser Kombinationen im Einsatz, bei denen die SPS wegrationalisiert wurde, weil der PC wegen Bildverarbeitung ohnehin notwendig war.
Jonathan P. schrieb: > Im besten Fall würde ich den Treiber der Schrittmotoren direkt vom PC > aus ansteuern Es gibt bei Ali Schrittmotoren mit RS485 oder CAN-Schnittstelle. Die kann man dann direkt an einen PC anschließen - Schnittstellenkarte vorausgesetzt. Oder wenn es richtig professionell werden soll dann nimmt man gleich EtherCAT: https://de.lichuanservomotor.com/2-phase-ethercat-nema23-nema34-stepper-driver-1.html PCIe-Karte: https://de.aliexpress.com/item/1005008586520449.html
Thomas F. schrieb: > Es gibt bei Ali Schrittmotoren mit RS485 oder CAN-Schnittstelle. Die > kann man dann direkt an einen PC anschließen - Schnittstellenkarte > vorausgesetzt. Dafür braucht man aber nicht die zig-drölfzig geforderten Portpins...
Wenn du beim Raspi bleiben willst, nimm doch einen RevPi. Den kannst du in Phyton programmieren und er braucht weniger Energie und Platz als ein normaler PC. Daran kannst du auch ein Display oder ein Touchpanel ansteuern. Dazu einen Schrittmotor-Controller mit Modbus- oder CAN-Schnittstelle [1], dann brauchst du kein Bitbang-I/O machen. Die Komponenten gibts sogar alle mit CE, falls das ein professioneller Aufbau werden soll. Alternativ nimmst du eine Schrittmotor-Steuerung mit industrietauglichen Optokoppler-Eingängen. Die kann man mit Spannungen von 3-24V ansteuern [2]. Mit freundlichen Grüßen Thorsten Ostermann [1] https://www.mechapro.de/lam-schrittmotorsteuerungen-mit-feldbus-kopplung [2] https://www.mechapro.de/schrittsteuerungen-von-lam-technologies (z.B. DS10-Serie)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.