OneStep/StepControl: eine Drehscheibensteuerung für BiDiB und DCC

    Diese Seite beschreibt Anschluß und Konfiguration der Scheibe

Inhaltsverzeichnis

    ... text fehlt noch ...

Externe Schalter

    Externe Schalter schalten immer gegen Masse und werden mit einem 3-poligen Kabel mit 2.54mm Raster angeschlossen. Die Schalter können mechanisch, optisch (Lichtschranke) oder magnetisch (Hallsensor) sein.

    Die Steuerung benötigt folgende externe Schalteingänge:
  • NOTHALT / ESTOP: (empfohlen)
    Dieser Schalteingang verursacht ein Anhalten des Motors unabhängig vom Steuerungszustand, egal ob ein Abgang oder Endlagenschalter erreicht wird. Nach Betätigen von Nothalt und Anhalten der Bühne gilt die Steuerung als 'unsynchronisiert' und muß mittels einer Justagefahrt wieder einsynchronisiert werden.
  • HOME_0: (erforderlich)
    Die Steuerung muß die Lage der Bühne in Bezug auf die Motorschritte kennen. Dazu muß ein genauer Sensor an der Bühne/Grube angebracht werden, dessen Auslösen bestimmt die Nullposition der Bühne. Bei der Justagefahrt (= Homing) wird dieser Schalter kontrolliert von 'oben' (aus Richtung höherer Positionswerte) angefahren. Die Bühne wird dabei langsam rückwärts gedreht, bis der Homeschalter anspricht. Die (verlangsamte) Geschwindigkeit wird über die Einstellung homing_ratio gewählt. Wenn bei Beginn der Justagefahrt der HOME_0-Schalter bereits ausgelöst hat, dann wird zuerst die Home-Position verlassen (vorwaerts) und dann erst die Suchfahrt (rückwärts) gestartet.

Erstmaliges Einrichten und Konfiguration der StepControl / OneStep

    In folgenden sind die Schritte beschrieben, welche der Reihe nach zur Inbetriebnahme der StepControl erforderlich sind. Erforderlich ist hierfür ein serielles Kabel mit TTL-Stiftleiste (FTDI-Kabel), welches an der Debug-Schnittstelle angeschlossen ist. (Dad gilt bis auf weiteres - bis die Integration in Wizard / Monitor erfolgt ist).
    Es ist sinnvoll, die hier beschriebene Reihenfolge einzuhalten!

Test externer Schalter

    Vor einer Motorinbetriebnahme sind die externe Schalteingänge zu testen. Hierzu werden diese manuell ausgelöst und die Anzeige/Ausgabe kontrolliert.
  • NOTHALT / ESTOP
  • HOME_0

Festlegung Typ

    Als wichtigste Einstellung muß zuerst der Typ der Scheibe festgelegt werden. Erst nach der Einstellung des Typs sind die weiteren Einstellungen vorzunehmen.
  • LINEAR:
    Die Steuerung geht von einem endlich begrenzten Fahrweg aus und bewegt sich nur innerhalb dieses Fahrwegs. Alle Gleisanschlüsse sind nur in einer Polarität erreichbar. Die StepControl hat keine "Wendelinie" sondern erlaubt es, die Polarität eines Gleisanschlusses wahlfrei festzugelegen.
  • ROUND:
    Die Steuerung geht von einem sich zyklisch wiederholendem Fahrweg aus (sie kann also 'durchdrehen') und bewegt sich auch über die 'Endanschläge' hinaus. Alle Gleisanschlüsse sind in zwei Polaritäten erreichbar (mit Häuschen dem Anschluß zugewandt bzw. abgewandt).
  • DebugIF-Befehl: DT 0|1 (0=linear, 1=round)

Einstellungen Antrieb:

    Der nächste Schritt ist die Einstellungen des Motors: Anfahren, Bremsen, Drehgeschwindigkeit, Anzahl echter Schritte, Anzahl virtueller Schritte, Getriebespiel, Motorstrom, all das muß konfiguriert sein, bevor Gleispositionen angefahren werden können.
    Mit dem Debugbefehl D kann man sich eine Zusammenfassung der Einstellungen anzeigen lassen.
  • Anzahl Schritte:
    Diese Einstellung definiert, wie weit die Steuerung ausgehend von der Home-Position fahren kann. Bei Drehscheiben (Typ ROUND) gibt diese Einstellung den Wert für eine komplette Umdrehung an. Bei linearen Antrieben (Schiebebühne, Segmentscheibe) gibt die Anzahl Schritte den Bereich von linken bis rechten Anschlag an.
    Typischerweise haben Schrittmotoren oft 200 Schritte/U, die auf der StepControl verwendete Steuerelektronik hat eine einstellbare Mikroschrittauflösung. In der Voreinstelluung wird hier 64 verwendet. so dass in diesem Fall 12800 einzutragen wäre. (=Voreinstellung) (Hinweis: bei der V1-Platinenversion ist die Mikroschrittauflösung typ. 32 (einstellbar über Lötbrücken), ergäbe dann 6400). Das interne Rechenwerk in der StepControl arbeitet mit einer max. Anzahl von 2^31 Schritten.
    DebugIF-Befehl: DM
  • Motorstrom:
    Die StepControl kennt 3 verschiedende Stromwerte:
    • Ruhestrom: Das ist der Strom, welcher in Ruhe durch den Schrittmotor fließt, damit dieser die Position halten kann. Der Ruhestrom kann niedriger als der Fahrstrom sein, damit der Motor im Stillstand wenig Leistung abgibt. Man sollte ihn aber nicht zu klein wählen, damit eine genaue Position gehalten werden kann.
    • Fahrstrom: Während der Bewegung wird dieser Strom durch den Motor geleitet.
    • Beschleunigungsstrom: Während eines Anfahr- oder Bremsvorgangs kann ein höherer Strom durch den Motor verwendet werden, üblicherweise ist es aber sinnvoll, hier die gleiche Einstellung wie für Fahrstrom zu verwenden.
    Der Strom durch den Motor wird mittels Sense-Widerständen gemessen, der Wert dieses Widerstandes ist der Steuerung bekannt zu machen.

    Es wird wie folgt vorgegangen:
    • Nominalstrom durch Motor ermitteln (aus Datenblatt, z.B. 1.2A). Sollte der max. zulässige Motorstrom größer als der max. Nennstrom der StepControl (2A bei DRV8825) sein, wird auf den Wert der StepControl limitiert. Üblicherweise kommt aber mit deutlich niedrigeren Strömen aus, den Maximalstrom des Motors wird man i.d.R. nicht ausreizen.
    • (Dieser Punkt nur bei TI8825 Driver: Passende Sensewiderstände wählen, diese sollen so gewählt sein, dass sich beim gewünschten Strom ein Spannungsabfall von 600mV ergibt. Also z.B. bei einen Strom von 1.A verwendet man 0,5 Ohm. Wegen der leichteren Beschaffbarkeit und der notwendigen Wärmeabfuhr sind bis zu drei parallele Widerstände in Bauform 1206 bestückbar. Im Beispiel wählen wir also zwei parallelgeschaltete 1 Ohm Widerstände.)
    • Eingabe der Werte in die CVs der StepControl.
      Widerstand: CV: r_sense; Einheit 10 mOhm. (d.h. für das Beispiel hier 50 eintragen)
      Ruhestrom: CV current_stopped; Einheit 10mA (Beispiel 10 entspricht dann 100mA)
      Fahrstrom: CV current_moving; Einheit 10mA (Beispiel 50 entspricht dann 500mA)
      Beschleunigungsstrom: CV current_accel; Einheit 10mA (Beispiel 50 entspricht dann 500mA)
  • Drehgeschwindigkeit
    Weitere Motoreinstellungen betreffen die Drehgeschwindigkeit sowie die Beschleunigungs- und Bremsrampen.
  • Nun kann mit dem Debug-Interface und dem Befehl DG <ziel> eine Position angefahren werden.

Endanschläge, 'Home'schalter, Referenzpositionen:

    Die nächste Einstellung gilt der Referenzposition. Ohne bekannte Referenzposition kann keine Anfahrt eines Gleises erfolgen. Die Steuerung muß 'wissen, wo die Bühne aktuell steht'. Hierzu wird eine sogenannter HOME-Lauf durchgeführt. Dabei wird die Bühne langsam 'rückwärts' gedreht, bis der Referenzschalter anspricht. Diese Position bezeichnen wir als Home-Position und sie bekommt den Einstellwert 0.
    Befehl DH

Abgänge

    Nachdem die Bühne soweit eingestellt ist und zufriedenstellend dreht, wird als letzter Schritt noch die Position der Abgänge eingestellt. Der Eintrag erfolgt entweder durch direkte Angabe der Position oder durch Anfahren der Position und Abspeichern. Die Firmware sortiert automatisch die eingetragenen Abgänge in aufsteigender Reihenfolge. Es sind bis zu 48 Abgänge möglich.
    Generell gilt: Abgänge werden von oben betrachtet im Uhrzeigersinn steigend angeordnet. D.h. heißt eine positive Drehungen geht im Uhrzeigersinn, eine negative Drehung dreht gegen den Uhrzeigersinn.
    Definition Abgang
    Position
    0...max:diese Position ist aktiviert,sie kann angefahren werden.
    0xFFFF: diese Position ist nicht aktiviert
    Kehrschleife
    0: die Kehrschleife wird bei dieser Position nicht eingeschaltet.
    1: die Kehrschleife wird eingeschaltet, das Bühnengleis ist umgepolt
    Zur Kontrolle der richtigen Polung und zur leichteren Einstellung wird die Verwendung des DCC-Polaritätstesters empfohlen.

    Diese so definierten Abgänge sind dann in dieser Reihenfolge als 'Schaltbegriff' in der Hostsoftware aufrufbar. Bei den Abgängen unterscheiden sich LINEAR und ROUND:
  • LINEAR: jeder Abgang hat eine Haltposition.
  • ROUND: jeder Abgang definiert zwei mögliche Halt-Positionen: einmal den Abgang 'vorne', d.h. Häuschen steht bei Abgang. Zugleich wird aber ein weiterer Abgang bei der um 180° gedrehten Position eingetragen, d.h. Häuschen steht gegenüber dem Abgang. Die Gesamtzahl der Abgänge ist also gerade und aus ihr ergibt sich automatisch die Wendeposition: Angenommen, es gibt 12 Abgänge, dann ist Abgang 1 und 7 gegenüberliegend.
  • Debug-IF:
    DA: Fügt einen Abgang hinzu.

    DR: Löscht einen Abgang.

    DL: Zeigt eine Abgang an. Ohne Parameter: zeigt alle Abgänge an.

    Bei der Anzeige der Abgänge wir für den Fall einer Drehscheibe auch mit ausgegeben, ob dieser Abgang die Konsistenzprüfung betanden hat. Dazu werden folgende Prüfungen durchgeführt:
    Die Summe aller Abgänge muß gerade sein. Wenn das nicht erfüllt ist, dann wird check:odd mit ausgegeben.
    Zu einem Abgang muß es genau gegenüber (numerisch also exakt die Hälfte der möglichen Bühnenpositionen) einen Abgang geben. Die Positionssumme dieser beiden Abgänge ergibt 360°, also Table.Top.

Iterationen am Fahrtende

    Je nach Antriebssystem, Spiel und Reibung kann es erforderlich sein, am Zielpunkt ein klein wenig zu iterieren.

Spezielle BiDiB-Befehle

    Die StepControl verwendet neben den üblichen BiDiB-Befehlssatz auch spezielle MSG_VENDOR-Befehle für die Konfiguration. Diese Befehle sind nur für die erstmalige Einrichtung der Drehscheibe zu verwenden, nicht für den normalen Betrieb.
  • STEPPOS
    • MSG_VENDOR_SET "STEPPOS", "1234" erteilt den Auftrag, an die Stelle 1234 zu fahren. Das wirkt direkt auf die Motorsteuerung und wird nicht auf andere Bedienelemente oder die Kehrschleifensteuerung kommuniziert. Es erfolgt auch keine Rückmeldung, wenn die Bewegung fertig ist. Diese Nachricht dient zum Positionieren des Motors während der Konfiguration.
    • MSG_VENDOR_GET "STEPPOS" liefert MSG_VENDOR "STEPPOS", "9876" - da steht der Motor aktuell. Das gilt auch während der Bewegung. Auch diese Nachricht ist nur für die Konfiguration zu verwenden, für eine Animation während des laufendes Betriebes ist der Winkelzusatzparameter des Accessory-Befehls zu verwenden.
  • POLA
    • MSG_VENDOR_SET "POLA", "1" schaltet das Kehrschleifenrelais ein (bzw. 0 schaltet aus). Damit kann man während der Knofiguration die Polarität testhalber umschalten und dann das so in den Aspect übernehmen.
    • MSG_VENDOR_GET "POLA" liefert die aktuelle Stellung zurück.
  • Eine MSG_VENDOR_* Nachricht mit falschem Keyword wird mit einer MSG_SYS_ERROR (Parameter) beantwortet.