Relaiskartensteuerung
Geräte über das Internet ein- und ausschalten.

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 ] [ Eigenbau einer Relaiskarte ] [ Eingänge der parallelen Schnittstelle ] [ Erforderliche Software ] [ Steuersoftware ]

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.

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 Relaiskarte

Der Nachbau dieser Relaiskarte erfolgt auf eigene Gefahr und fordert ein gewisses Maß 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.

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.

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.

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, muß 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 vorerst, da der Janaserver sehr gut dokumentiert ist.

In den Grundeinstellungen unter IP-Adressen muß 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« muß 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 Datei relais.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 muß vor dem ersten Einsatz konfiguriert werden.

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.

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.

Konfiguration
Vor dem ersten Einsatz sind im Script nachfolgende Variablen anzupassen. Die Zeichen " und \ dürfen in Namen nicht verwendet werden.

$script_url Diese Variable enthält die URL des Perlscripts.
$noncgi_dir Für den Janaserver muß 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 außerhalb 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.

$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.

Das Script kann nun ü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, daß 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 muß 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

  • Beim Hochfahren von Windows werden die Kanäle willkürlich geschaltet. Dieser Umstand ist beim Anschluß von Geräten an die Relaiskarte zu berücksichtigen.
  • Treiber und Programme, die auf die Schnittstelle zugreifen, können unerwünschte Schaltvorgänge auslösen oder Schaltvorgänge verhindern.
  • Die Relais-Steuerung sollte nicht verwendet werden, wenn Geräte wie Drucker oder Scanner an der parallelen Schnittstelle angeschlossen sind.

Versionsinformation

Version 1.01
  • Interne Programmabläufe optimiert
  • Version 1.00

  • Funktion: Tastenmodus hinzugefügt
  • Funktion: Auslesen der Eingänge
  • Funktion: Ausblenden von nicht benötigten Anzeigen
  • Funktion: Autorefresh einstellbar
  • Funktion: Neues Script zum Herstellen einer Grundeinstellung
  • Fehler: Anzeigefehler behoben
  • Version 0.91

  • Fehler: Aktualisierung der Anzeige geändert
  • Version 0.90

  • Erste Beta-Version

  • Haben Sie noch Fragen oder Anregungen zum Thema dieser Seite? Wenden Sie sich an das WebCam-Forum.


    Diese Seite ist Teil eines Framesets. Wenn Sie links kein Inhaltsverzeichnis sehen, klicken Sie hier: WebCam-Navigator