Aus der C-Control Familie verwende ich vorwiegend die
M-Unit. Somit ist in der Regel zusätzliche Hardware erforderlich. Im Prinzip
sind die Anforderungen ähnlich. Es entstand ein Grundgerüst, das einige
Anwendungen abdecken kann. Diese Baugruppe stelle ich hier vor.
!!! Achtung Lebensgefahr !!!
Dieses Gerät arbeitet mit 230V Netzspannung. Diese Schaltung dürfen nur
Leute mit entsprechender Ausbildung aufbauen.
Einige technische Daten:
- 8x digital Ausgang, es werden elektronische Lastrelais angesteuert (230V
1,5A)
- 8x digital Eingang TTL Pegel - 8x analog Eingang (8Bit Auflösung)
- 2x PWM Ausgang (8Bit Auflösung)
- LCD Standard Display (2x16Zeichen)
- 4x Taster für Eingaben
- 1x Piezoschwinger für Tonausgabe
- V.24 Interface für PC Verbindung
- Anschluss für DCF Modul über Klinkenbuchse
- eingebautes Netzteil 230V~/5V=
Das Ganze ist in einem Standard Gehäuse für Eurokarten
untergebracht. Das Gehäuse ist aus Kunststoff. Einige Durchbrüche und
Lüftungslöcher sind relativ leicht herzustellen. Im oberen Deckel ist
ein Durchbruch mit roter Folie abgedeckt. So kann man die LED, welche
den Zustand der Lastrelais anzeigen, bei geschlossenem Gehäuse sehen.
Die vier Taster sind so unter dem LCD Display angeordnet,
das die untere Zeile als Beschriftung (Menüführung) dienen kann. Rechts
neben dem Display befindet sich ein Schiebeschalter, der mit dem Autostart
der M-Unit verbunden ist. Der Jumper auf der M-Unit muss entfernt werden.
Die Beschriftung der Frontplatte erfolgt mit selbstklebender Folie die
mit einem Tintenstrahl Drucker bedruckt und mit Fixierspray haltbar gemacht
wurde.
Hinten befindet sich unten der Netzschalter und das Netzkabel.
Oben ist ein Durchbruch für die Zuleitungen der Lastrelais mit einem Kantenschutz
versehen. Rechts daneben befindet sich eine Stereo Klinkenbuchse für den
Anschluss eines DCF Moduls.
Der Übersichtsplan zeigt die Zuordnung der Ports. Der
Byteport1 (P1-P8) überträgt die Daten. P9 und P10 steuern das LCD Display,
P15 steuert den TTL Eingang und P16 den TTL Ausgang. Für LP wird ein Piezoschwinger
ohne eingebaute Elektronik verwendet. Die Baugruppen sind auf vier einseitigen
Leiterplatten (LP1-LP4) verteilt. Die Abmessungen der Leiterplatten ergeben
sich aus den Gehäuseabmessungen und der Anordnung innerhalb des Gehäuses.
Die Schaltung wirkt nur auf den ersten Blick aufwendig weil einige Steckverbinder
vorgesehen sind.
Auf der Main LP befinden sich die M-Unit, das V.24 Interface,
sowie Steckverbinder zur Display- und Switch LP. Für die Stromversorgung
des DCF Moduls habe ich ein RC Glied vorgesehen. Die Analogeingänge, sowie
die Anschlüsse DA1, DA2, FREQ2, IRQ sind auf Steckerleisten zugänglich.
Die DCF Anschlüsse werden durch kurze Drähte mit der Klinkenbuchse verbunden.
IC2 ist eine SMD Ausführung des MAX232 und befindet sich
deshalb auf der Leiterseite. Das Bild zeigt das geöffnete Gehäuse von
unten. Die Gehäusedeckel können jeweils oben und unten ohne Werkzeug entfernt
werden.
Auf der Switch LP befinden sich zwei IC als Zwischenspeicher.
IC1 speichert die Eingangssignale am Steckanschluss SV-DE. Die Eingänge
sind mit dem Widerstandsnetzwerk RN1 auf HIGH gelegt. IC2 steuert die
elektronischen Lastrelais, über jeweils eine LED zur Statusanzeige, an.
IC2 kann 6mA Laststrom pro Ausgang vertragen. Danach sind die Vorwiderstände
dimensioniert. Bei der Auswahl der Lastrelais ist darauf zu achten welchen
Strom diese zum sicheren Ansprechen brauchen. Der gewählte Typ ist mit
5 - 25mA angegeben. Die LP ist über den Steckverbinder SV-S direkt mit
der Main LP verbunden.
Das geöffnete Gehäuse von oben. Die LP ist über einen
starren Steckverbinder mit der darunter liegenden Main LP verbunden. Die
elektronischen Lastrelais können bei 42 bis 230V Wechselspannung 1,5A
schalten. Es ist ein Typ mit Nullspannungsschalter. Das ist wichtig, damit
auf der Netzseite keine Störungen entstehen. An X9 wird die Eingangsspannung
angeschlossen, X1 bis X8 sind die geschalteten Ausgänge.
Achtung!!!
Für die ordnungsgemäße Ausführung und Absicherung der 230V~ Anschlüsse
ist der Anwender selbst verantwortlich.
Die Platine ist einfach austauschbar, so das man je nach
Anwendung verschiedene Bauteile einsetzen kann.
Die Display LP ist hochkant hinter der Frontplatte angebracht.
Das Gehäuse hat dafür Nuten. Das Basismaterial darf aber nicht dicker
als 1mm sein. Auf der LP befinden sich ein Standard LCD Display, ein Einstellregler
für die Kontrasteinstellung, 4 Taster und ein Schiebeschalter. Der Anschluss
RW vom Display ist fest auf GND gelegt. Dadurch ist das Display nur beschreibbar
was sich aber bisher nicht als Nachteil erwiesen hat. Die LP ist mit den
Steckverbindern SV-D1 und SV-D2 direkt mit der Main LP verbunden.
Ebenfalls hochkant hinter der Rückfrontplatte ist die
Netzteil LP angeordnet. IC1 ist mit einem Aluminium Kühlkörper versehen.
Der Netzschalter wird direkt in die hintere Frontplatte eingesetzt. Die
Verdrahtung erfolgt mit farbiger Litze. Die Sicherung wird mit einer Abdeckkappe
gegen zufällige Berührung geschützt.
Alle Schaltpläne und die Leiterplatten sind mit der Freeware
Version von EAGLE erstellt worden. Es ist aber grundsätzlich möglich
die Schaltung auf Standard Lochraster Platinen aufzubauen.
Vorausgesetzt wird ein fehlerfreier Aufbau der Hardware
und eine Standard M-Unit. Zum Testen des Gerätes habe ich ein C-Basic
Programm geschrieben das folgende Funktionen bereitstellt:
- Initialisierung des Displays und Anzeige eines Textes
- Ausgabe von Bitmustern an die Lastrelais
- Status der acht Digitaleingänge in einer Variablen abspeichern
- Status der acht Analogeingänge lesen
- Status des DCF Registers der C-Control in einer Variablen abspeichern
- Abfrage der vier Taster und Verzweigung wenn eine Taste gedrückt wurde
- Wahlweise Anzeige Uhrzeit oder Datum
- reagieren auf Kommandos vom PC
- Senden von Daten an einen PC auf Anforderung
Der Quelltext
CBasicTest1.bas kann hier geladen werden. Die Anzeige ist in jedem
Texteditor möglich. Übersichtlicher ist aber der C-Basic Editor wenn die
Tab-weite auf drei eingestellt ist. Der Quelltext ist kommentiert. Für
Profis vielleicht etwas zu viel aber glücklicherweise finden sich immer
mal wieder Neulinge für das C-Control System.
Zusammen mit der Hardware kann man das Programm als Grundgerüst
für ein Lichteffekt Gerät verwenden. Das Programm wird wie gewohnt in
die C-Control über den COM Anschluss geladen. Dazu muss der Schiebeschalter
an der Frontseite in Stellung LOAD geschaltet sein. Nach dem Laden wird
der Schalter in Stellung RUN geschaltet.
Der Pizoschwinger gibt ein Signal aus. Dann wird das Display initialisiert
und ein Text angezeigt. Der Vorgang dauert einen Augenblick. Diese Pause
ist nur beim Start für die Initialisierung des Displays notwendig (trifft
auf das verwendete Display zu und muss ausprobiert werden). Wird der Text
angezeigt, gibt der Pizoschwinger ein Signal aus und die LED beginnen
das erste Bitmuster anzuzeigen. Es müssen nacheinander alle LED aufleuchten
entsprechend dem ersten Block in der Tabelle Muster.
Das Programm befindet sich jetzt in einer Endlosschleife.
Es gibt ständig die Bitmuster aus, fragt die Tastatur ab und prüft ob
ein Kommando vom PC am COM Anschluss anliegt. Ein Druck auf Taste Time
zeigt die Uhrzeit, ein Druck auf Taste Date zeigt das Datum an. Taste
P+ wählt den nächsten Bitmusterblock aus der Tabelle Muster. Taste T+
verringert die Geschwindigkeit der Bitmuster Ausgabe.
Ist ein DCF Empfänger
angeschlossen, dann werden, nach etwa drei Minuten, Uhrzeit und Datum
richtig angezeigt. Der Empfang des DCF Signals wird durch ein Sonderzeichen
hinter der Zeit oder Datum Anzeige bestätigt. Solange kein gültiges DCF
Signal empfangen wird, erscheint an dieser Stelle ein Fragezeichen im
Display. Das passiert auch, wenn die Uhr schon synchronisiert wurde. Für
die Genauigkeit der Uhr reicht eine Synchronisation ein- bis zweimal in
24 Stunden aus. Die Anzeige von Zeit oder Datum im Display erfordert Rechenzeit.
Das erkennt man an der sich ändernden Geschwindigkeit der Ausgabe der
Bitmuster. Um die höchstmögliche Geschwindigkeit zu erreichen wird beim
Druck von Taste T+ oder P+ der Anzeigemodus verlassen und ein Festtext
wie beim Programmstart angezeigt.
Für die Kommunikation mit dem PC ist ein einfaches Protokoll
vorgesehen. Es werden die C-Basic Befehle PUT und GET auf der C-Control
Seite benutzt. Folgende Kommandos sind implementiert:
Wert
Kommando
ASCII
49
key1
1
50
key2
2
51
key3
3
52
key4
4
53
PWM1
5
danach Wert für DA1 (0-255)
54
PWM2
6
danach Wert für DA2 (0-255)
98
C-Control empfangsbereit
b
115
PC erwartet Daten von C-Control
s
danach beliebiges Zeichen
Mit einem Terminalprogramm (z.B. Hyperterm 9600,8,1,n
ANSI Emulation) kann man die Kommandos ausprobieren. Das C-Basic Programm
beantwortet ein empfangenes Kommando mit der Sendung des Wertes 98. Dieser
Zahlenwert entspricht dem Zeichen b des ASCII Zeichensatz. Drückt man
also z.B. die RETURN Taste am Terminal erscheint ein b am Bildschirm.
Die Tasten 1,2,3,4 am Terminal wirken so, als wenn die Tasten am Gerät
gedrückt werden.
Zum Test der DA Wandler schließt man eine Leuchtdiode so an die DA Ausgänge
an, wie das Bild zeigt.
Drückt man am Terminal die Taste 5 oder 6, dann erwartet
das C-Basic Programm einen Wert (0-255) den es in das Register für die
DA Wandler schreiben kann. Die Taste 0 (Wert=48) am Terminalprogramm wird
dann eine andere Helligkeit der LED ergeben als z.B. die Taste z (Wert=122).
Drückt man die Taste s am Terminal, dann antwortet
das C-Basic Programm mit einem b und wartet auf ein weiteres Zeichen.
Damit wird C-Control zum Senden von Daten vorbereitet. Es sind genau 17Byte
mit folgender Bedeutung:
Byte Nr.
Inhalt
1
Wochentag
2
Tag
3
Monat
4
Jahr
5
Stunde
6
Minute
7
Sekunde
8
DCF Status
9
Digitaler Eingang
10
Wert AD Wandler 1
11
Wert AD Wandler 2
12
Wert AD Wandler 3
13
Wert AD Wandler 4
14
Wert AD Wandler 5
15
Wert AD Wandler 6
16
Wert AD Wandler 7
17
Wert AD Wandler 8
Diese 17 Byte werden nach Druck einer beliebigen Taste
am Terminal von C-Control hintereinander zum PC gesendet. Das kann man
so machen, da der Puffer am PC groß genug ist. Am Terminalprogramm können
diese Zeichen aber unvorhergesehene Reaktionen auslösen. Bei Hyperterm
kann das, je nach Version, bis zum Absturz führen. Das liegt daran, das
Hyperterm nur einen Teil der empfangenen Daten richtig interpretieren
kann. Die Zeichen können aber jeden Wert zwischen 0 und 255 annehmen.
Für eine Anzeige im Terminalprogramm ist diese Vorgehensweise also nicht
sinnvoll.
Deshalb habe ich ein kleines Windows Programm in der
Sprache C# geschrieben. Als Programmierumgebung nutze ich SharpDevelop
Beta Version 0.99b. Es ist eine freie Entwicklungsumgebung unter anderem
für C#. SharpDevelop ist OPEN SOURCE und unterliegt der GNU General Public
License. Für die Verbindung C# Programm und Windows API nutze ich die
RSCOM.DLL von Burkhard Kainka. Der
Autor hat diese DLL auf seiner Hompage für private Nutzung freigegeben.
Beim Programmstart von InterfaceV20.exe sollte das Programm
CBasicTest1.bas in das Testboard geladen, das Testboard eingeschaltet
und mit der COM 1 oder COM 2 verbunden sein. Die Programm Oberfläche ist
weitgehend selbsterklärend. Das Programm sucht das Testboard auf der COM1
oder COM2. Die Schnittstelle wird eingestellt und die Kommunikation mit
dem Testboard gestartet. Wenn man am Testboard einen Digital Eingang auf
LOW (GND) schaltet, wird das entsprechende Kästchen gesetzt. Die Anzeige
der Analog Wandler schwankt, wenn diese nicht beschaltet sind. Das ist
normal und auf den großen Eingangswiderstand zurückzuführen. Das Leseintervall
der Daten vom Testboard ist auf 500ms voreingestellt und kann je nach
Leistungsfähigkeit des PC verändert werden. Wenn aus irgend einem Grund
die Verbindung zum Testboard verloren geht, wird eine Fehlermeldung ausgegeben.
Man kann dann, nach Beseitigung der Ursache, versuchen mit Click auf den
Restart Button die Verbindung wieder herzustellen.
Das C#
Programm kann man hier laden. Es benötigt das MS .NET Framework und
läuft damit ab W98. Zum Installieren bitte die README.TXT Datei lesen.
Dem ZIP Archiv liegt, entsprechend der GNU General Public License, der
kommentierte Quelltext bei. Man kann den Quelltext mit jedem Texteditor
lesen. Die richtige Formatierung entsteht aber erst mit SharpDevelop.
Für die Installation dieser Entwicklungsumgebung ist aber MS .NET SDK
unter WXP erforderlich. MS .NET Framework und MS .NET SDK kann man auf
der Microsoft Webseite frei laden. Dazu sollte wenigstens ein DSL Anschluss
benutzt werden, denn es sind große Dateien. Man bekommt diese Dateien
aber auch auf CD-ROM in Büchern oder Zeitschriften zum Thema .NET.
Diese Beispiel Applikation zeigt eine einfache Möglichkeit,
wie man C-Control mit einem PC steuern kann.