Relaiskartensteuerung


Stand Februar 2007

Ein interessantes Thema ist das Steuern von Geräten über das Internet. Auf den ersten Blick sieht das Ganze komplizierter aus als es in Wirklichkeit ist. Das Einsatzgebiet ist vielfältig. Es reicht vom einfachen Ein- und Ausschalten einer Lichtquelle bis zur Steuerung eines Roboterstatives.


Käufliche Relaiskarten

Der Hardware-Teil besteht aus einer Relaiskarte, die über die parallele Schnittstelle an einen Rechner angeschlossen ist. Je nachdem ob ein Low- oder High-Pegeln an den 8 Datenausgängen anliegt, werden die Kontakte der Relais geöffnet oder geschlossen.

Relaiskarten

Fertig zusammengestellte Relaiskarten-Bausätze für die parallele Schnittstelle erhalten Sie unter anderem bei Pollin Electronic und Conrad Electronic.

Pollin Electronic
Bausatz PC-Relaiskarte K8 (Bestellnummer 710722)
EUR 9,95

Conrad Electronic
8-Kanal-Relaiskarte - Bausatz (Bestellnummer 130217)
EUR 39,95


Eigenbau einer Relaiskarten

DER NACHBAU DIESER RELAISKARTE ERFOLGT AUF EIGENE GEFAHR UND FORDERT EIN GEWISSES MASS AN SACHVERSTÄNDNIS. JEGLICHE HAFTUNG FÜR DIREKTE UND INDIREKTE SCHÄDEN WIRD HIERMIT AUSDRÜCKLICH AUSGESCHLOSSEN.

In speziellen Fällen wird es sich vielleicht lohnen, die Relaiskarte selbst aufzubauen. Einen Bauplan für eine einfache und kostengünstige Relaiskarte liefert der Artikel Einfach-Relaiskarte selbstgebaut von Frank Steinberg.

Alternativ kann folgender Schaltplan verwendet werden. Dies geschieht jedoch auf eigene Gefahr. Ich habe die Schaltung zwar seit geraumer Zeit im Einsatz, kann aber trotzdem nicht für die Korrektheit garantieren. Im Gegensatz zur Einfach-Relaiskarte sind hier alle 8 Kanäle ausgebaut.

Schaltplan Relaiskarte

Zur Visualisierung der Schaltzustände kann zusätzlich eine Leuchtdiode mit 150 Ohm Vorwiderstand parallel zum Relais geschaltet werden. Die Spannungsversorgung erfolgt über ein stabilisiertes Netzteil mit 5 V und mindestens 750 mA. Vor dem Anschließen an den Rechner sollte die Schaltung nochmals genau kontrolliert werden.

Zum Testen der Funktion bietet sich das kostenlose Windows-Programm Z-ParSwitch an.

Parallele Schnittstelle

Die Abbildung zeigt die 25-pol. Sub-D-Buchse der parallelen Schnittstelle direkt am Rechner. Pin 1 ist rechts oben, Pin 13 links oben. Die zweite Reihe beginnt rechts mit Pin 14 und endet links mit Pin 25. Die Pins sind meist an der Buchse und am Stecker markiert.

Buchse der parallelen Schnittstelle

Für die Relaiskarte sind die 8 Datenausgänge von Pin 2 bis Pin 9 relevant. Die Masse wird am Pin 19 abgenommen. Die Datenausgänge dürfen auf keinen Fall direkt mit der Masse verbunden werden, da sonst die Schnittstelle zerstört wird.


Eingänge der parallelen Schnittstelle

Eine parallele Schnittstelle besitzt nicht nur Ausgänge, sondern bietet auch fünf digitale Eingänge an den Pins 10, 11, 12, 13 und 15. Die Eingänge können mit einem Schließkontakt direkt gegen Masse (Pin 18-25) kurzgeschlossen werden. Ein zusätzlicher Widerstand mit 1 kOhm bietet jedoch Sicherheit bei einer Verwechslung der Pins.

Eingänge der parallelen Schnittstelle

Je nach Stellung des Schließkontakts liegt ein Low- oder High-Pegel am Eingang, der per Software abgefragt werden kann. Die Einsatzmöglichkeiten sind auch hier recht vielfältig. So können beispielsweise Flüssigkeitstände kontrolliert, Schließkontakte überwacht oder der Status von Alarmanlagen abgefragt werden.


Erforderliche Software

Zusätzlich zum Perlscript, das die Relaiskarte ansteuert, ist noch weitere Software notwendig. Alle hier angeführten Programme laufen unter dem Betriebssystem Windows und sind kostenlos erhältlich.

ActiveState's ActivePerl

ActivePerl downloaden und installieren. Während der Installation wird abgefragt ob ActivePerl in den Pfad aufgenommen und die Erweiterung .pl mit ActivePerl verknüpft werden sollen. Beide Optionen markieren bzw. mit ja beantworten. Nach der Installation Windows neu starten.

Perl-Modul Win32::API

Das Modul Win32::API wird mit dem Programmer's Package Manager (PPM) direkt vom Activestate-Server installiert. Die Eingabeaufforderung öffnen und mit ppm den Package Manager startet. Nun install Win32-API eingeben und warten bis das Modul installiert ist. Danach quit eingeben.

Bei Verwendung eines Proxys oder Firewall, kann es zu Problemen mit PPM kommen. PPM, Proxies and Firewalls beschreibt die Lösung.

Inpout32.dll

Die Datei inpout32_source_and_bins.zip downloaden und entpacken. Im Verzeichnis inpout32_source_and_bins/binaries/Dll befindet sich die Datei inpout32.dll. Diese Datei ins Systemverzeichnis von Windows kopieren.

Webserver

Damit das Perlscript zum Ansteuern der Relaiskarte aus dem Internet aufrufbar ist, muss ein HTTP-Server installiert sein. Ich bevorzuge den Janaserver mit deutschsprachiger Oberfläche. Der Janaserver ist eine Multifunktionsserver. Für unsere Zwecke wird jedoch nur der HTTP-Server benötigt. Eine umfangreiche Installationsanleitung erspare ich mir, da der Janaserver sehr gut dokumentiert ist.

In den Grundeinstellungen unter IP-Adressen muss der HTTP-Server an die IP-Adresse 0.0.0.0 gebunden sein, damit er über das Internet erreichbar ist. Der Standardport für HTTP-Server ist 80 und sollte nicht ohne Grund geändert werden. Unter Servertypen werden die Einstellungen für den HTTP-Server vorgenommen. Bei Ausführbare Script-Dateien muss die Dateiendung .pl mit perl.exe verknüpft sein.

Wer über eine dynamische IP mit dem Internet verbunden ist, benötigt einen statischen Hostnamen. Näheres dazu ist auf der Seite Dynamic DNS zu finden.


Steuersoftware

DIE FEHLERFREIHEIT DIESER SOFTWARE KANN NICHT GARANTIERT WERDEN. JEGLICHE HAFTUNG FÜR DIREKTE UND INDIREKTE SCHÄDEN WIRD HIERMIT AUSDRÜCKLICH AUSGESCHLOSSEN. DIE VERWENDUNG ERFOLGT AUF EIGENE GEFAHR.

Die Datei relay.zip downloaden und ins CGI-Verzeichnis (cgi-bin) des vorher installierten Webservers entpacken. Das Perlscript relais.pl zum Ansteuern der Relaiskarte läuft nur auf Rechnern mit dem Betriebssystem Windows und muss vor dem ersten Einsatz konfiguriert werden.

Das Perlscript kann im Schalter- oder im Tastenmodus betrieben werden. Im Schaltermodus zeigen LEDs den Status der Relais an. Im Tastenmodus wird der Kontakt des Relais für eine bestimmte Anzahl von Sekunden anschlossen und danach wieder gelöst. Er ist speziell für die Verwendung mit Funkschaltern gedacht. Im Tastenmodus sind keine Status-LEDs sichtbar, da die Relais im Ruhezustand immer gelöst sind.

Im Statusfeld für die Eingänge können angeschlossene Schließkontakte überwacht werden. Die Aktualisierung der Seite sollte mit der dafür vorgesehenen Schaltfläche erfolgen.

Relaissteuerungssoftware

Konfiguration

Vor dem ersten Einsatz sind einige Einstellungen in der Datei relais.pl vorzunehmen. Dazu wird das Perlscript mit einem Texteditor geöffnet und laut nachfolgende Anleitung konfiguriert.

$script_url Diese Variable enthält die URL des Perlscripts.
$noncgi_dir Für den Janaserver muss hier nichts verändert werden. Bei manchen Webservern ist es nicht möglich Bilder und Stylesheets im CGI-Verzeichnis aufzurufen. Über diese Variable kann für die Bild- und CSS-Dateien ein Verzeichnis ausserhalb definiert werden (ohne Schrägstrich am Ende).
$port Diese Variable enthält die Adresse der parallelen Schnittstelle in hexadezimaler Schreibweise. Die Adresse ist im Gerätemanager unter Anschlüsse ersichtlich. Im Falle nachfolgender Abbildung wäre die Adresse 0x378 einzutragen.

Eigenschaften von Druckeranschluss

$mode Hier wird der Modus des Scripts eingestellt. Eine 0 schaltet in den Schaltermodus, eine 1 oder höher in den Tastenmodus. Beispiel: Eine 3 schaltet in den Tastenmodus und simuliert einen Tastendruck von 3 Sekunden.
$refresh Hier kann die automatische Aktualisierung der Seite eingestellt werden. Eine 0 schaltet die Aktualisierung aus, eine 1 oder höher gibt den Intervall der Aktualisierung in Sekunden an.
$page_name Hier kann ein eigener Name für die Seite vergeben werden.
$status_name Hier kann ein eigener Name für das Statusfeld der Relais vergeben werden.
$status_view Eine 0 blendet das Statusfeld der Relais aus, eine 1 zeigt es an.
@switch_name Hier können eigene Namen für die Schalter vergeben werden.
@switch_view Hier können nicht benötigte Schalter verborgen werden. Eine 0 blendet den jeweiligen Schalter aus, eine 1 zeigt ihn an.
$all_name Hier kann ein eigener Name für das Feld zum Schalten aller Relais vergeben werden.
$all_view Eine 0 blendet das Feld zum Schalten aller Relais aus, eine 1 zeigt es an.
$input_name Hier kann ein eigener Name für das Statusfeld der Eingänge vergeben werden.
$input_view Eine 0 blendet das Statusfeld der Eingänge aus, eine 1 zeigt es an.
@led_name Hier können eigene Namen für die LEDs vergeben werden.
@led_view Hier können nicht benötigte LEDs verborgen werden. Eine 0 blendet die jeweilige LED aus, eine 1 zeigt sie an.

Nach Abschluss der Konfiguration kann das Script über den Webserver gestartet werden. Die Ausgabe im Browser sollte ungefähr obiger Abbildung entsprechen.

Definierter Ausgangszustand

Will man nach dem Start von Windows einen definierten Ausgangszustand herstellen, kann im Autostart-Ordner ein Perlscript gestartet werden, dass die Relais wunschgemäß ein- oder ausschaltet. Im Verzeichnis Console von relais.zip befindet sich die Datei init.pl. Vor dem ersten Start sind der Port und der gewünschte Status der Kanäle einzustellen. Abschließend muss nur noch die Datei init.pl in den Autostart-Ordner von Windows kopiert werden. Ab nun wird nach jedem Start die Grundeinstellung hergestellt.

Wichtige Hinweise

Versionsinformation

Version 1.01

Version 1.00

Version 0.91

Version 0.90


Kommentare | Besucher seit Januar 1998: 8841586

Valid XHTML 1.0! © 1998-2014 by Harald Gabler