Symbol www.digital-bahn.de Symbol
Shop Forum Datenschutzerklärung Suche Kontakt

SAnD-Ei - Servo Ansteuerungs-Dekoder: Konfiguration

Diese Seite beschreibt die Konfiguration des SAnD-Ei Dekoders über ein spezielles PC-Programm, den Hex Manipulator. Um diese Möglichkeiten zu nutzen muss das erzeugte HEX-File in den PIC übertragen ("gebrannt") werden.

Adressen einstellen / Mapping einstellen / Servo-Parameter einstellen / Kurvenform einstellen / Endpositionen einstellen / Download / Variations-Möglichkeiten

 
Ein Servo hat naturgemäß eine ganze Menge Einstell-Möglichkeiten. Für die verschiedenen Ansteuerungen möchte der professionelle Anwender (und wer Servos einsetzen will, den kann man wohl zu dieser Gruppe zählen..) z.B. die Kurvenform anpassen.
Das Einstellen einer Kurve über CVs oder ähnliches möchte ich mir lieber gar nicht erst vorstellen (müssen), dies ist einfach nicht praktikabel. Da bei meinen Projekten ja alles ein bisschen anders ist, habe ich an dieser Stelle auch eine ganz spezielle Möglichkeit: die Manipulation des HEX-Files, welches dann in den Dekoder-PIC gebrannt wird. Das geht natürlich nur, wenn man das HEX-File dann auch in den PIC übertragen werden (sprich "brennen") kann, aber diese Fähigkeit haben wohl inzwischen die meisten Anwender meiner Projekte.
 
Nun denn, hier geht es zum PC-Tool (mit dem man übrigens alle meine HEXen anpassen kann):
 
arrow Hex_Manipu - Manipulieren des HEX-Files
 
Zunächst muss das entsprechende HEX-File in den Manipulator geladen werden. Es erscheint jetzt dieser Bildschirm:
 
Sand 1 Hex Manipulator

zurück zum Anfang nach Oben

Adressen einstellen

Der Dekoder hat (bis zu) 4 Adressen. Die Adressen können hier eingestellt werden, aber auch später "am Gleis" über die normale Adress-Lern Routine geändert werden.
 
Sand 1 Hex Manipulator Adressen

 

zurück zum Anfang nach Oben

Mapping einstellen

Jetzt wird es schon ein bisschen komplizierter: das so genannte "Mapping" definiert, durch welche Adresse bei bestimmter Servo mit einer bestimmten Kurve gefahren wird.

 
Es wird zunächst der Adresse eine Aktion zugeordnet. Diese beschreibt, was mit diesem Servo zu tun ist, also ob eine Kurve einmalig oder zyklisch (START LOOP) zu starten ist. Laufende Loops können mit der ABBRUCH-Funktion sofort gestoppt werden, während ein BEENDEN die Kurve noch beendet und dann die LOOP nicht wieder startet.
 
Sand 1 Hex Manipulator Mapping

 
jetzt wird noch definiert, welche der 4 Kurven denn nun verwenden ist:
 
Sand 1 Hex Manipulator Mapping 2

zurück zum Anfang nach Oben

Servo-Parameter einstellen

Es gibt noch ein paar Parameter, die Servo-spezifisch sind:

 
Sand 4 Hex Manipulator Parameter 1

 
"Impuls-Zeit (MIN)" und "Impuls-Zeit (MAX)" stellen die End-Anschläge des Servos da. Hier können Werte eingetragen werden, wenn man diese schon kennt. Ansonsten würde man diese Parameter eher durch die Justage-Funktion (Endpositionen einstellen) ermitteln.
Es sollte an dieser Stelle als erstes die MIN Grenze eingestellt werden. Die MAX Grenze läuft hierbei parallel mit. Verstellt man also die MIN Grenze, so wird zunächst der komplette Bewegungsbereich verschoben. Erst wenn anschliessend die MAX Grenze verstellt wird, vergrößert bzw. verkleinert an den Stellweg (bzw. Drehwinkel).
 
"Spannung aus" führt dazu, dass nach Ablauf der Kurve die Versorgungs-Spannung des Servos abgeschaltet wird.
 
"Impulse aus" führt dazu, dass nach Ablauf der Kurve die Ansteuer-Impulse des Servos abgeschaltet werden.
 
"keine Unterbrechung" führt dazu, eine der Servo während einer Bewegung nicht durch einen neuen Befehl unterbrochen werden kann. Dies ist eigentlich meistens sinnvoll, da ansonsten ziemlich wilde Servo-Bewegungen entstehen können.
 
"keine Wiederholung" führt dazu, dieselbe Kurve nicht 2x hintereinander gefahren werden darf. Dies ist z.B. bei Weichen sinnig, denn wenn diese zuletzt von LINKS nach RECHTS gefahren wurde, dann muss sie ja erst wieder von RECHTS nach LINKS gefahren werden. Eine Wiederholung der Bewegung sähe ziemlich blöd aus.
 
Die ersten beiden Einstellungen haben folgenden Hintergrund: Wird ein Servo mit Impulsen versorgt, so versucht er, die Stellung zu halten. Dies kann dazu führen, dass der Servo ständig brummt, obwohl er eigentlich gar nichts zu tun hat. Also kann man die Ansteuer-Impulse abschalten. Dies wiederum mag nicht jeder Servo. Es gibt sog. "Fail-Save"-Servos, die gehen in einen sicheren Grund-Zustand, wenn die Ansteuerung weggenommen wird. Auch bei digitalen Servos kann das Abschalten der Impulse nicht helfen, weil diese sich die Soll-Stellung einfach merken und trotzdem nachregeln. Also hilft hier das Abschalten der Versorgungs-Spannung. Dies jedoch kann bei den Analogen Servos wiederum problematisch sein, weil diese beim Wieder-Einschalten der Spannung teilweise wilde Zuck-Bewegungen ausführen.
Fazit: Hier muss jeder je nach Anwendung und Servo die richtige Abschalt-Taktik rausfinden!

zurück zum Anfang nach Oben

Kurvenform einstellen

Beim Mapping haben wir ja schon davon gesprochen das man bestimmte "Kurven fahren". Nun wollen wir mal zeigen, wie man so eine Kurve nun definiert. Zunächst einmal gibt es bis zu 4 Kurven, die man definieren kann. Die Auswahl, welche dieser Kurven gerade angezeigt und bearbeitet wird, erfolgt hier:
 
Sand 4 Hex Manipulator Curve 1

 
Dann gibt es noch 2 allgemeine Angaben je Kurve, nämlich die Anzahl der Punkte sowie ein "Stretch-Faktor", mit dem man den Ablauf einer Kurve langsamer machen kann. Diese werden hier eingestellt und die daraus resultierenden Zeiten angezeigt:
 
Sand 4 Hex Manipulator Curve 2

 
So, nun aber endlich zur eigentlichen Kurve! Die Kurve wird angezeigt und kann via Maus (Klick und Ziehen) angepasst werden. Ich denke dass mit dieser Darstellung jeder klarkommen sollte (wenn nicht: unten und oben in der Grafik entsprechen den beiden End-Positionen des Servos. Die Kurve wird von links nach rechts abgefahren, d.h. die einzelnen Punkte werden dem Servo nacheinander als Soll-Position übergeben).
 
Sand 4 Hex Manipulator Curve 4

 
Was gibt es sonst noch? Es können Kurve über einige mathematische Funktionen vorgegeben werden:
 
Sand 4 Hex Manipulator Curve 5

 
.. es gibt horizontale und vertikale Spiegel-Möglichleiten:
 
Sand 4 Hex Manipulator Curve 6

 
Eine Kurve kann in eine andere kopiert werden:
 
Sand 4 Hex Manipulator Curve 7

 
Eine Kurve und ein komplettes Setup kann geladen und gespeichert werden. Bei einer Kurve handelt es sich hier nur um die einzelne Kurve, bei einem Setup werden alle 4 Kurven und auch die dazugehörigen Parameter wie der Stretch-Faktor, das Mapping usw. geladen:
 
Sand 4 Hex Manipulator Curve 8

 

zurück zum Anfang nach Oben

Justage-Modus: Endpositionen einstellen

Da die End-Positionen der Servos bei einigen Konstruktionen nach dem Einbau justiert werden muss, habe ich eine entsprechende Routine eingebaut. Hierfür muss am Programmier-Stecker eine Justage-Schaltung aus ein paar Tastern und Dioden angeschlossen werden, mit der die Justage durchgeführt wird:
 
arrow Sand Justage Platine
 
Die Routine wird durch Drücken des Programmier-Tasters während des Startens (also beim Anlegen der Versorgungsspannung für die Platine) aufgerufen.
 
Hier der Ablauf, um die Endpositionen zu justieren:
  1. während des Startens der Platine (=Anlegen der Versorgungs-Spannung) wird der Programmier-Taster oder der Taster SW3 auf der Justage-Platine gedrückt
  2. Jetzt wird der Servo an die End-Position Nr. 1 gefahren (dies ist die Position, die der Servo mit dem 1 ms-Impuls anfährt. Ob dies der rechte oder der Linke Anschlag ist, ist Servo-Abhängig). Die LED blinkt jetzt langsam
  3. Jetzt kann man mit den Tasten SW1 und SW2 auf der Justage-Platine die Position verstellen, während Servo entsprechend reagiert. Die Schrittweite beträgt hier 8 us.
  4. Durch Druck auf SW3 der Justage-Platine kommt man in die Einstellung der 2. End-Position (Vorgabe 2 ms). LED blinkt jetzt deutlich schneller
  5. wie Punkt 3
  6. nach der Justage des Servos (LED blinkt nicht mehr) befindet sich die Platine wieder im normalen Betriebs-Modus.
Zu beachten ist hierbei, dass ein Verstellen der End-Position 1 (Arbeitsschritt 2) auch die End-Position 2 entsprechend verschiebt. Also wird die 1 ms-Grenze um +200 us vergrößert, so wird hier auch die 2 ms-Grenze um +200 us vergrößert. Dadurch ist es möglich, dass man im Arbeitsschritt 2 den kompletten Arbeitsbereich des Servos verschieben kann, ohne dass man auch die End-Position 2 ebenfalls neu justieren muss.

zurück zum Anfang nach Oben

Download von Kurven

... hier erwarte ich DEINE Mitarbeit!
 
Wenn Du gelungene Kurven definiert hast, bitte mit Angabe zur Anwendung und des verwendeten Servos mailen!

zurück zum Anfang nach Oben

Variationsmöglichkeiten

Verwenden der Taster-Eingänge für die Servo-Bewegung

Die Sand-Ei Platine bietet den Anschluss von 2 Tastern. Um den Tastern die gewünschte Aktion zuzuordnen, muss auch dies Konfiguriert werden. Der Manipulator bietet daher diese Eingabe:
 
Sand 1 HEX Manipulator Taster

 
Hier kann nun ausgewählt werden, welche Aktion beim Öffnen und / oder Schließen der Taster ausgelöst werden. Das Öffnen bzw. Schließen des Tasters wirkt daher genau so, als ob der Dekoder die passende Adresse empfangen hätte.

Ausgang X7 nutzen

Der Ausgang X7 kann bei Durchschreiten eines Schwellwertes geschaltet werden. Der Schwellwert wird hier eingestellt und in der Kurve dann als Rote Linie dargestellt:
 
Sand 1 HEX Manipulator Schwellwert

 
Der Ausgang X7 ist dann eingeschaltet, wenn die Kurve den Schwellwertes nach oben durchschreitet und bei Unterschreitung entsprechend wieder abgeschaltet. Der Sinn dahinter: es kann ein Umschalt-Relais zur Herzstück-Polarisierung angesteuert werden. Aber Vorsicht: der Ausgang ist ein direkter Ausgang des PIC Prozessors und nicht verstärkt. Maximal 20 mA sind zulässig und die Pegel sind 0V (aus) bzw. 5V (ein). Bei Verwendung eines Relais empfehle ich daher einen Schalttransistor vorzusehen und die Freilaufdioden für die Spule nicht zu vergessen!

zurück zum Anfang nach Oben