Steuerung von Funktionen (Tipp)

Aus Modellbau-Wiki
Wechseln zu: Navigation, Suche

Neben der Steuerung der eigentlichen Modelleisenbahn (egal ob manuell, analog, digital, etc.) ergeben sich hin und wieder Anforderungen, andere Funktionen automatisch zu steuern. Die einfachste Form einer solchen Steuerung ist gefordert, wenn einzelnen Funktionen zu unterschiedlichen Zeitpunkten ein- und ausgeschaltet werden sollen, um einen insgesamt harmonischen Ablauf zu simulieren. Früher gab es dazu Zeitschaltuhren mit mehreren Schaltspuren/Nocken etc. Heute übernehmen Kleinsteuerungen diese und zusätzliche Aufgaben.

Inhaltsverzeichnis

Aufgabenstellung

Bild-CC0.jpg

Bei einem kleinen Kirmesplatz mit 2 Fahrgeräten sollen Beleuchtung, Blinkelektronik und die Fahrgeräte in einem bestimmten zeitlichen Ablauf (syncron zur Geräuschkulisse) ein und ausgeschaltet werden.

Hardware

Bild-CC1.jpg

Eine C-Control Unit 1 mit Application-Board und Relaisplatine. Diese Bauteile können über Conrad Electronic bezogen werden und enthalten alle erforderlichen Kabel, Zubehör und Software. Die Bauteile werden wie auf dem Bild zu sehen als komplette Einheit montiert. Die Tastatur und die LCD-Anzeige werden in dieser Anwendung nicht benötigt. An die 8 Relais können dann acht Funktionen angeschlossen werden.

Die beigefügte Software (CC-Basic) wird auf den PC geladen und der PC über die serielle Schnittstelle mit der C-Control Unit verbunden. Nach dem Anlegen der Spannung (12V) können nun auf dem PC erzeugte Steuerprogramme in die Control-Unit übertragen und dort gestartet werden.

Software

Rein technisch gesehen muss jetzt der Anwender programmieren, jedoch stellt sich dieser Vorgang hier ziemlich einfach dar.

Nach Aufruf des Programmes CC-Basic müssen:

  1. bestimmte Befehle in Textform eingegeben werden,
  2. dieser Text für die Control-Unit übersetzt werden (1 Mausklick) und
  3. der übersetzte Text in die Control-Unit übertragen werden (auch ein Mausklick).

Ein Beispiel im Klartext für obige Aufgabenstellung sieht so aus:

' --- Definitionen -------------------------------------------

define out byteport[1]

' Port 8 / Relais 8 : 
' Port 7 / Relais 7 : Marschmusik
' Port 6 / Relais 6 : Zeltbeleuchtung
' Port 5 / Relais 5 : Karussel 2
' Port 4 / Relais 4 : Karussel 1
' Port 3 / Relais 3 : Blinkelektronik Buden
' Port 2 / Relais 2 : Beleuchtung Buden
' Port 1 / Relais 1 : Hintergrund Geräusche

' --- Programm Operationen -----------------------------

PAUSE 250     		' Wartezeit 5 sec
OUT = &B00000001	' Geräusche ein
PAUSE 100     		' 2s
OUT = &B00000011 	' Budenbeleuchtung ein
PAUSE 100     		' 2s
OUT = &B00000111 	' Blinken ein
PAUSE 500     		' 10s
OUT = &B00001111 	' Karussel 1 ein
PAUSE 1250    		' 25s 
OUT = &B01100111 	' Karussel 1 aus / Zelt ein / Marsch ein
PAUSE 750     		' 15s
OUT = &B00000111 	' Zelt aus / Marsch aus
PAUSE 250     		' 5s
OUT = &B00010111 	' Karussel 2 ein
PAUSE 1500    		' 30s
OUT = &B00000111 	' Karussel 2 aus
PAUSE 100     		' Wartezeit 2 sec
OUT = &B00000001 	' Buden aus
PAUSE 250     		' 5s
OUT = &B00000000 	' Geräusch aus
BEEP 1000,50,0   	' Signal Programmende
DEACT OUT        	' Ports deaktivieren
END

Alle Texte hinter dem Aphostroph (´) sind keine Befehle, sondern nur Texte zur Erklärung. Sie sind für die eigentliche Programmausführung nicht erforderlich. Somit besteht nahezu das gesamte „Programm“ hauptsächlich aus nur zwei Befehlen:

  1. Out = &Bxxxxxxxx: Jedes x steht für eine Ziffer, die den Zustand jedes Relais bestimmt (0=Relais „aus“, 1=Relais ein); bei dem Befehl Out = &B00000010 sind alle Relais „aus“, nur Relais 2 ist „ein“; der Befehl Out = &B00000110 schaltet dann zusätzlich noch das Relais 3 ein.
  2. Pause xxx: Bei Pause 50 wird die Programm-Ausführung um 1 Sekunde unterbrochen; xxx ist variabel (bei Pause 750 wird 13 Sekunden gewartet, bevor mit der Ausführung des nächsten Befehles begonnen wird).

Mit dem Einsatz dieser beiden Befehle ist es möglich, jeden beliebigen zeitlichen Ablauf von 8 Funktionen zu steuern.

Bei Übernahme der anderen Befehle aus dem Beispiel ist der Rest einfach:

Bild-CC2.jpg
  1. In CC-Basic den Punkt “Entwicklung/Compilieren“ wählen, d.h. der eingegebene Text wird in eine Sprache übersetzt, die die Control-Unit versteht.
  2. In CC-Basic den Punkt „Entwicklung/In C-Control-Unit übertragen“ wählen. Achtung: Die C-Control-Unit muss bei diesem Schritt mit Spannung versorgt sein.

Nach beiden Schritten erscheint eine Meldung auf dem Bildschirm, die über den Erfolg des Schrittes Auskunft gibt oder etwaige Fehler angibt. Der Programmablauf kann danach durch Drücken der gelben Taste auf der Control Unit gestartet werden. Ist alles glatt gelaufen, werden nun die Relais in der dem vorgegeben (programmierten) Ablauf angesteuert. Der Verbindung zum PC kann jetzt getrennt werden. Durch Umsetzung einer Brücke auf der Control Unit wird Autostart aktiviert, d.h. bei jedem Anlegen der Versorgungsspannung wird das Programm gestartet und stoppt bei Unterbrechung der Versorgungs-Spannung. Eine Neuladung ist nicht erforderlich, da das geladene Programm in der Control-Unit auch ohne Spannungs-Versorgung erhalten bleibt.

Zum Schluss

Wie man sieht, sind keine „Programmierkenntnisse“ erforderlich, um diesen relativ leichten Ablauf zu realisieren.

Weitere mögliche Anwendungen sind zum Beispiel eine Pendelzugsteuerung, eine Car-System-Steuerung oder eine Ablaufsteuerung für die Funktionen eines Schiffsmodells.

Weblinks

Signatur

Dieser Tipp stammt von Speed123. Nachträgliche Änderungen und Ergänzungen sind in der Liste der Autoren (versionen) nachvollziebar. Eventuelle Erfahrungen im Nachbau und Fragen zum Tipp gibt es auf der zugehörigen Diskussionsseite.