Hi,

hoffe einige Fragen beantworten zu können:

Wie wird so eine Steuerung aufgebaut? -> da wäre es schön etwas mehr Input von dir zu bekommen!

Ich fange mal von Vorne an. Du hast eine Mechanik mit Linearaktuator und einer Trinamic Steuerung und willst eine Positioniersteuerung aufbauen. Du setzt dafür einen Schrittmotor sowie einen Encoder ein. Beide sind keine Absolutgeber, d.h. du musst beim Hochfahren/Neustart der Anlage/Einheit zunächst einmal eine Referenzfahrt durchführen (Einheit könnte ja im stromlosen Zustand von Hand bewegt worden sein). Hier eignet sich z.b. ein Induktiver Geber, Rollentaster oder ähnliches.
Ist der Nullpunkt der Maschine erreicht wird die Istposition in der Steuerung genullt oder auf einen definierten Wert gesetzt. Von da aus kannst du definierte Schritte fahren.

Zur Positionierung fährt du bsp. 100 Schritte rechtsdrehend (hängt von Mechanik sowie Übersetzung der Spindel ab). Allein für diese Positionierung (wenn deine statischen und dynamischen Kräfte + Sicherheitsfaktor < dem Motormoment sind) benötigst du überhaupt keinen Encoder. Falls die Kräfte grenzwertig sind, dann empfiehlt sich wie von dir genannt ein zusätzlicher Encoder zur Positonsüberwachung/Detektion von Schrittverlusten.

Bei der Detektion der Schrittverluste (Trinamicsteuerung bietet meines Wissens nach beides) gibt es zwei Möglichkeiten:

A) Das System erkennt eine zu große Abweichung von Soll- zu Istposition (Schleppfehler) und stopt mit einem Fehler den Antrieb
B) Das System erkennt während der Fahrt Abweichungen von Soll- und Istpositon und regelt spätestens beim Erreichen der falschen Zielposition nach

Vor- und Nachteile ergeben sich aus der Anwendung heraus. Wenn z.B. zwei Antriebe ineinander Laufen und synchronisiert sind (z.B. Kinematiken, elektronisches Getriebe), dann wäre es fatal einen Schleppfehler zu ignorieren und erst am Ende auszugleichen. Hier wäre ein sofortiger Stop sinnvoll. Wenn wie von die nur eine Achse vorhanden ist, die an Zeit x auf einer bestimmten Position ist, dann wäre ein Nachregeln an der Zielposition nur mit einer Verzögerung verbunden, die eventuell gar nicht störend ist.

Und damit wären wir bei einem wichtigen Thema, der Reaktionszeit der Steuerung. Hier wäre interessant was für eine Applikation hinter deiner Aushubeinheit steht und ob noch weitere Mechaniken einwirken.

Um prinzipiell einen Schleppfehler zu detektieren ist ein Regelkreis notwendig. D.h. in den Regler gehen die Sollpositon der Maschiene sowie die Istposition des Gebers und beide werden miteinander verglichen. Überschreitet die Abweichung einen festgelegten Wertebereich, führt die Steuerung die gewünschte Reaktion (Stop oder Nachregelung) durch. Dieser Vorgang sollte abhängig von der Applikation so schnell wie möglich passieren!

D.h haben wir nur eine einfache Hubeinheit und geht es nur um die richtige Zielposition, da spielt es vermutlich keine Rolle wenn die Detektion des Schleppfehlers erst nach z.B. 1 Sekunde erfolgt. Handelt es sich um eine schnelle Achse wo wegen Positionsfehlern Kollisionen möglich sind, dann bedeuten bei Geschwindigkeiten von 1m/s eine Reaktionszeit (Auswertung + Anhaltezeit) von 100 ms schon überschlagen 10cm Nachlaufweg.

Die Reaktionszeit ist also ein entscheidender Faktor. Passier die Schleppfehlerüberwachung direkt auf der Trinamic-Steuerung bekommst du Reaktionsgeschwindigkeiten von schätzungsweise < 5 ms. Wenn die Überwachung auf einem externen PC erfolgt, ist in deinem Überwachungskreis 2x die Kommunikationszeit enthalten. D.h. du schickst eine Telegramm an die Steuerung mit Anfrage der Istposition, diese Anfrage wird auf der Steuerung verarbeitet, und du erhälst ein Antworttelegramm mit aktueller Istpostition. Dieser Vorgang benötigt abhängig von der Schnittstelle Zeit. Super sind hier USB und CAN, eher schlechter sind RS232 und RS485.

Jetzt noch allgemein zu Trinamic Steuerungen. Hab ich selber auch schon eingesetzt und bieten eigentlich alle Möglichkeiten.

Betreiben kann man die Steuerung eigentlich in 3 Arten:

1.) Man schreibt ein Programm in der TMLC-Sprache und dieses wird auf die Steuerung geladen. Nach Anschalten der Steuerung läuft automatisch das Programm ab. In diesem Programm kann eigentlich alles gemacht werden. Ein-Aus-Gänge schalten und Abfragen, Positionierungen, Referenzfahrt bis Endschalter, Istwerte Nullen, Geschwindigkeiten ect. anpassen, Loops

2.) Man setzt alle Parameter der Steuerung über die Schnittstelle und ruft nacheinander vordefinierte Befehl auf, die dann von der Steuerung ausgeführt werden. Von den Befehlen her kann alles aufgerufen werden was auch unter 1.) gemacht werden kann

3.) Man schreibt mehrere vordefinierte Programme in die Steuerung und kann über eine Variable von Außen verschiedene Programmteile ausführen lassen

Kombinierter Betrieb von 1-3 ist ebenfalls möglich.

Hab alle Varianten schon gemacht, ist mehr oder weniger Geschmacksache. Die Programme auf der Steuerung müssen in TMCL-Sprache geschrieben werden, die Syntax ist aber recht überschaubar und mit ein wenig Übung sehr einfach. Wenn ich die Wahl hätte würde ich extern das Programm schreiben (dort kann dann die bevorzugte Programmiersprache verwendet werden, in meinem Fall C++) und die vordefinierten Befehle verwenden.

Noch gut zu wissen:
Bei den Steuerung wird ein Konfigurationsprogramm für einen PC mitgeliefert, kann man sich auch runterladen. Alle fest definierten Parameter (Geschwindigkeit, Beschleunignung, Schleppfehlerüberwachung, Schleppfehlerreaktion...) die immer konstant sind müssen nicht per selbst geschriebenen Programm gesetzt werden, sondern können über das mitgelieferte Konfigurationsprogramm eingestellt und dauerhaft im Eprom gespeichert werden. Damit bleiben die Werte auch bei Stromausfall erhalten!
Wenn man das alles vorher schon sauber macht, dann ist das selbst geschriebene Programm meist nur ein paar Zeilen lang. Hier kann man z.b. auch die Reaktion bei einem Schleppfehler sowie die zulässige Abweichung eingestellen.

Gruß Joe