Ausgabe 23, März1998

Das Relais-Interface

leistungsstark, kaskadierbar, programmierbar


Trotz moderner Elektronik gibt es noch immer viele Gründe, Relais einzusetzen. Mit Relais lassen sich unterschiedliche Spannungen, Gleichstrom und Wechselstrom, kleinste Signale sowie größte Leistungen schalten. Das neue Relais-Interface ist ein eigenständiges Gerät mit zahlreichen nützlichen Eigenschaften wie Kaskadierbarkeit und Programmierbarkeit. Das Gerät ist in unterschiedlichen Ausführungen, z.B. als Platine und auch als Steuereinheit ohne Relais erhältlich.

Die Leistungsausgänge der bisherigen Interfaces der Fa. Modul-Bus bieten bereits ein breites Anwendungsspektrum. Es gab aber immer Grenzen bei Anwendungen, die mit höheren Leistungen oder Wechselspannungen arbeiten mußten. Die verwendeten hochwertigen Relais bieten mit einem maximalen Laststrom von 6 Ampère bei 250 V einen erweiterten Spielraum. Dazu kommt die Erweiterbarkeit: Bis zu 16 Interfaces können an einer seriellen Schnittstelle des PC betrieben werden. Mit acht Relais pro Karte erhält man also bis zu 128 Schaltausgänge. Damit lassen sich auch komplexe Aufgaben wie z.B. die Steuerung einer Modelleisenbahn-Anlage lösen.

Eine weitere Besonderheit ist die Programmierbarkeit der Karte. Der Anwender kann bis zu 30 Schaltmuster und zugehörige Zeiten einprogrammieren, die dann autonom, also ohne angeschlossenen PC ablaufen. Dabei sind Schaltzeiten im Bereich von Sekundenbruchteilen bis zu Wochen möglich. Alle Daten werden in einem internen EEPROM permanent gespeichert. Das Gerät eignet sich damit auch für universelle Langzeitsteuerungen.

Das Relais-Interface kommt in seinen Leistungsmerkmalen nahe an die Möglichkeiten kleinerer speicherprogrammierbarer Steuerungen (SPS) heran. Damit ist sie auch für den industriellen Einsatz interessant. In gleicher Weise können aber auch Schüler das Gerät für umfangreiche Projekte nutzen.

Einige Einsatzbeispiele

Die folgende Aufstellung soll einige typische Einsatzmöglichkeiten in der Schule skizzieren.

Die Interface-Kaskade

Mehrere Karten lassen sich an einer Schnittstelle betreiben. Dazu erhält jede Karte eine Busadresse (ID), die per Software zugewiesen werden kann und im EEPROM permanent gespeichert bleibt, aber auch jederzeit änderbar ist. Der PC sendet Kommandosequenzen, die neben Steuerbytes auch die ID-Adresse im Bereich 1 bis 16 enthalten.

Nur das jeweils adressierte Interface reagiert, die anderen ignorieren die Kommandos. Es ist auch möglich, alle Karten gemeinsam anzusprechen, dazu gibt es die General-ID 255.

Die Software

Für das Gerät gibt es ein vielseitiges Windows-Programm. Es erlaubt die Adressierung mehrerer Karten, die Neuzuweisung von Adressen und die Erstellung von Steuerprogrammen. Bitmuster lassen sich durch Anklicken festlegen und dann an eine bestimmte Kartenadresse abschicken.

Ein Beispiel:

Ein Blei-Akku mit 12 Ah soll durch drei Lade- und Entladezyklen wieder aufgefrischt werden. Relais 1 schaltet den Ladestrom von max. 3A ein. Relais 2 legt eine Glühlampe 12V/3A als Entladewiderstand an den Akku. Da der Akku mit einem geeigneten Ladegerät nicht überladen werden kann, ist die Ladezeit nicht kritisch. Es werden jeweils fünf Stunden gewählt. Beim Entladen muß jedoch eine Tiefentladung sicher vermieden werden. Deshalb wird zuerst nur zwei Stunden entladen, wobei dem Akku die halbe Ladung entnommen wird. Im zweiten und dritten Entladezyklus wird die Entladezeit gesteigert, da von einer Erholung des Akkus ausgegangen werden kann. Vor der eigentlichen Programmierung sollte man sich einen Zeitplan anfertigen:

Zustand Dauer Kommentar
00000001 5 h Laden 1
00000010 2 h Entladen: 6Ah
00000001 5 h Laden 2
00000010 3 h Entladen: 9Ah
00000001 5 h Laden 3
00000010 4 h Entladen: 12Ah
00000001 5 h Laden 4, fertig

Die Technik

Für einige Leser dürfte auch die technische Beschreibung des Geräts interessant sein: Die Karte ist Mikrocontroller-gesteuert und enthält einen RISC-Prozessor vom Typ AT90S1200 mit internem EEPROM. Der Prozessor steuert den bekannten Leistungstreiber ULN2803. Dieser wiederum schaltet die Spulenströme der Relais. Als Steuermodul ohne Relais werden die Leistungsausgänge direkt benutzt und schalten die Betriebsspannung im Bereich 8V bis 24V bei einer maximalen Last von 0,5A pro Ausgang bzw. einer Gesamtlast von 1A.

Die Stromversorgung erfolgt z.B. über ein ungeregeltes Steckernetzteil mit 12V/0,5A. Ein Netzteil reicht für bis zu 5 Relaiskarten. Als Verbindungsleitung kommen sechspolige Telefon-Verlängerungskabel zum Einsatz, über die sowohl die Betriebsspannung als auch die Steuersignale weitergereicht werden. Beim Betrieb als Steuermodul ohne Relais kann ein beliebiges Netzteil mit 8V bis 24 V eingesetzt werden.

Die maximale Gesamtlast für alle Karten ist aber in jedem Fall auf 1 A begrenzt.

Das Kommunikationsprotokoll des Geräts ist ausführlich im Bereich Technik beschrieben.

Synchronisation mehrerer Interfaces

Im Programmodus "Endlos" kann ein Interface als Master den zeitlichen Ablauf aller anderen Interfaces als Slaves steuern bzw. synchronisieren. Zu diesem Zweck ist in dem Verbindungskabel eine weitere Steuerleitung SYNC benutzt, die alle verketteten Interfaces miteinander verbindet. Das Interface mit der ID-Adresse 1 ist grundsätzlich der Master. Es hält die SYNC-Leitung während des Programmlaufs low und setzt sie nur für die Dauer seines ersten Programmschritts high. Alle Slaves verzögern am Ende ihres Programms den Neubeginn beim Programmschritt 1 bis ein high-Pegel an der SYNC-Leitung erscheint.

Der Master erzwingt also einen gleichzeitigen Start. Ist kein MasterÜ definiert, dann laufen alle Interfaces frei. Ein externer Schalter (Öffner) kann aber das Startsignal für Einzeldurchläufe liefern. Damit lassen sich z.B. auf Knopfduck oder durch eine Lichtschranke Programmdurchläufe abrufen.

Ein Beispielprogramm

Ein kleines Beispiel-Programm in Basic soll zeigen, daß die direkte Ansteuerung gar nicht schwer ist. Die Übertragung in Zeile 50 beinhaltet fünf Bytes: Esc, ID-Adresse, Ausgangekommando 64, Datenbyte D und ein Füllbyte 0. Alle anderen Kommandos lassen sich in gleicher Weise absenden.

10 REM Lauflicht am Relais-Interface, ID=1

20 OPEN "COM2:9600,n,8,2,CS,DS"AS #1

30 D=1

40 FOR N= 1 TO 8

50 PRINT#1,CHR$(27);CHR$(1);CHR$(64);CHR$(D);CHR$(0);

60 D=D*2

70 FOR T=1 TO 10000:NEXT T

80 NEXT N

Literaturhinweis: B. Kainka, Messen, Steuern, Regeln mit dem PC in Haus und Garten, Franzis-Verlag 2000

Siehe auch:
Hardware: http://www.b-kainka.de/msr/relais1.htm
Ansteuerung: http://www.b-kainka.de/msr/relais2.htm
VB-Beispiele: http://www.b-kainka.de/msr/relais3.htm


Ansteuerung unter Linux (April 2012)

Die folgenden Befehlsaufrufe für Linux hat uns Paul Hollunder gesandt. Hezlichen Dank!

Download: Relais.zip

--------------------------------
#!/bin/bash

# Serielle Schnittstelle konfigurieren
stty -F /dev/ttyS0 9600 cstopb cs8 -parity

# Kommunikation beginnen: 27 = Hexadezimal 1B
printf "\x1B" > /dev/ttyS0

# Adresse des Gereates: 1 = Hexadezimal 01
printf "\x01" > /dev/ttyS0

# Befehl Direktausgabe starten: 64 = Hexadezimal 40
printf "\x40" > /dev/ttyS0

# Direktausgabe-Daten:     Relais      12345678       
#printf "\x00" > /dev/ttyS0        # 00000000          0 = Hexadezimal 00
#printf "\x01" > /dev/ttyS0     # 10000000          1 = Hexadezimal 01
printf "\x02" > /dev/ttyS0        # 01000000          2 = Hexadezimal 02
#printf "\x04" > /dev/ttyS0        # 00100000          4 = Hexadezimal 04
#printf "\x08" > /dev/ttyS0        # 00010000          8 = Hexadezimal 08
#printf "\x10" > /dev/ttyS0        # 00001000         16 = Hexadezimal 10
#printf "\x20" > /dev/ttyS0        # 00000100         32 = Hexadezimal 20
#printf "\x40" > /dev/ttyS0        # 00000010         64 = Hexadezimal 40
#printf "\x80" > /dev/ttyS0        # 00000001        128 = Hexadezimal 80
#
# Möchte man mehrere Relais anzusteuern muss der Wert der einzelnen Schaltzustände addiert werden.
# Um Relais 1 und 8 an-, und 2-7 auszuschalten wäre der zu sendende Hex-Wert also (1+128 = 129): 81
#

# Kommunikation beenden: 0 = Hexadezimal 00
printf "\x00" > /dev/ttyS0


Zurück zum CompaS-Archiv
Zurück zur Startseite AK-Modul-Bus