Hallo,
wir haben ein spezialisiertes Mikroskop in welchem 3 linear stages (jeweils für X,Y und Z Achse) verbaut sind, jedoch kein Controller enthalten war.
Jede einzelne stage wird über einen 0,9° Schrittmotor mit 1000-line encoder angetrieben.
Um die einzelnen Schrittmotoren präzise steuern zu können, wird ein Trinamic TMCM-351 Modul eingesetzt.
Damit lassen sich zwar die einzelnen stages bereits bewegen, jedoch ist mangels Referenz noch keine absolute Positionierung möglich.
Anstelle von Endschaltern ist in dem Mikroskop nun auf jeder Achse eine Gabellichtschranke mit einem Encoderstreifen verbaut, der in etwa wie folgt aussieht:
* Wie lassen sich diese Gabellichtschranken am besten mit dem TMCM-351 Modul nutzen ?
Als Lösungsansatz wurde aktuell eine kleine Mikrocontroller-Schaltung (ATMega) aufgebaut, die den Zustand der jeweiligen
Gabellichtschranke (offen, geschlossen) ausliest und entsprechend die stop switch inputs (z.B. REF_0_R und REF_0_L) auf dem TMCM-351 Modul ansteuert.
Der Schaltung wird dabei direkt über das TMCM-351 Modul versorgt (mittels "+5V supply output for active switches").
Das Hauptproblem bei diesem Ansatz ist jedoch, daß unsrer Meinung nach ohne Zusatzinformation, lediglich mit der Information "Gabellichtschranke offen/geschlossen",
keine Aussage getroffen werden kann, ob das Ende einer Achse erreicht wurde.
* Gibt es in Bezug auf diese Problemstellung Lösungsvorschläge ?
Unsre derzeitigen Ansätze gehen in folgende Richtungen:
1)
Die Mikrocontroller-Schaltung wird an den SPI Bus des TMCM-351 Moduls angebunden.
Auf diese Weise könnten im Rahmen eines TMCL Programms Informationen über die aktuelle Laufrichtung, -geschwindigkeit oder relative Position an die Schaltung
geschickt werden, sodass diese entweder durch einfaches Zählen oder durch relative Positionbestimmung der "Gabellichtschranken Zustände" Rückschlüsse
auf die absolute Position ziehen kann.
Der große Nachteil dieses Ansatzes scheint allerdings zu sein, daß nun mehr keine einfachen TMCL Kommandos (etwa MVP, ROR, ROL, etc.) in der direct mode abgesetzt werden können,
da bei jeder Bewegung auch immer die notwendigen Informationen ausgelesen (etwa mit GAP) und über SPI (mit SAC) verschickt werden müssen.
Anstatt eines einfachen Kommandos, müsste also jedesmal ein komplettes TMCL Programm durchlaufen werden.
Dies erscheint insbesondere problematisch, da die Ansteuerung des TMCM-351 Moduls in den bestehenden Quellcode einer Mikroskopie-Software (µManager) eingearbeitet werden soll.
Anstatt einfache Kommandos von der Software aus abzusetzen, müssten jedesmal in der direkt mode zuvor erstellte und hochgeladene TMCL Programme/Funktionen aufgerufen werden.
Dadurch entsteht aus unsrer Sicht nicht nur ein wesentlich höherer Aufwand, sondern die Funktionalität des Moduls würde auch eingeschränkt auf die selbst erstellten TMCL Programme/Funktionen.
2)
Die Mikrocontroller-Schaltung bekommt (zusätzlich zum TMCM-351 Modul) das Quadratur-Signal der Encoder.
Pro Umdrehung wären dies 2*2*1000=4000 Flanken. Wir haben zwar die aktuell maximale Drehzahl (U/min) der Schrittmotoren mit den derzeitigen Parametern nicht bestimmt, da aber bereits bei 60 U/min (somit 1 U/sek) die Frequenz des Quadratur-Signals bei 4 kHz liegen würde, würde dies für einen kleineren Mikrocontroller schnell zu viel werden.
Man müsste also etwas in die Trickkiste greifen und etwa einen Prescaler (auf Kosten der Präzision) vorschalten.
Folglich hätte die Mikrocontroller-Schaltung unabhängig vom TMCM-351 Modul ständig die Richtungsinformation, die relative Position und die Geschwindigkeit.
Entsprechend dem obigen Ansatz 1) wäre es damit möglich die absolute Position zu bestimmen und die Referenzkontakte (z.B. REF_0_R und REF_0_L) auf dem TMCM-351 Modul anzusteuern.
* Gibt es andere, evt. einfachere Ansätze/Lösungsvorschläge ?
Wir würden uns jedenfalls über hilfreiche Vorschläge oder Anregungen freuen.
Grüße,
Tom
