Das Relais-Interface, Ansteuerung




Kommunikationsprotokoll

Zur Ansteuerung aus eigenen Programmen muss das Protokoll der Relaiskarte bekannt sein. Es soll hier in kurzer Form beschrieben werden. Die Relaiskarte empfängt mit 9600 Baud, 8 Bit, No Parity, 2 Stopbits, es gibt keinen Rückkanal. Bis zu 16 Karten hängen an der TXD-Leitung des PC. Jede Steuernachricht vom PC besteht aus genau 5 Bytes:

 
27
"ESC", Anfang der Nachricht
ID-Adresse
1 bis 16 oder 255 als Generaladresse
Kommando 64 ... 72, siehe unten
Parameter 1 z.B. Bitmuster oder "leerer" Parameter 0
Parameter 2 z.B. "leerer" Parameter 0

Die folgende Liste zeigt alle gültigen Kommandos:

Kommandos:

Befehl Kommandobyte Parameter 1 Parameter 2
Direktausgabe 64 Bitmuster 0
EEPROM programmieren 66 EE-Adresse Byte
Programmstart 68 0 0
Programmstop 70 0 0
ID-Adresse zuweisen 72 ID-Adresse 0
Programmstart Einfach-Durchlauf 74 0 0

Prinzipiell gibt es zwei Betriebsarten:

  1. Das Interface reagiert auf direkte Ausgabebefehle über das Kommando 64.
  2. Das Interface gibt automatisch die intern im EEPROM gespeicherten Kommandos aus. Die Daten müssen zuvor mit dem Kommando 70 übertragen werden, und das Programm muss mit dem Kommando 68 oder 74 gestartet werden.

Das System verfügt über 64 Byte EEPROM zur Aufnahme von Einstellungen und Programmen.

Adresse  
0 Device-Adresse 1...16, wird durch Kommando 72 zugewiesen
1 Startmodus: 1 = Programmstart aktiv, 0 = Direktmodus aktiv, 2= Programmstart: Einmal
2 Higbyte der Zeitbasis, 256 * Wert * 1/16 Sekunden
3 Lowbyte der Zeitbasis, Wert * 1/16 Sekunden
5 Programm-Bitmuster 1
6 Wartezeit 1 als Vielfaches der eingestellten Zeitbasis
7 Programm-Bitmuster 2
8 Wartezeit 2 oder 0 als Endemarke, 0 wartet eine Zeiteinheit und führt zum Anfang
9 Bitmuster 3 usw.

Insgesamt können bis zu 30 Bitmuster eingegeben werden. Sie werden nach dem Startbefehl zyklisch ausgegeben und beginnen mit jedem Neustart der Relaiskarte auch ohne PC automatisch. Das Gerät nimmt aber auch während eines laufenden Programms Direktkommandos entgegen. Mit jeder neuen automatischen Ausgabe werden die letzten Ausgangszustände überschrieben.

Jede automatische Ausgabe bleibt für 1...255 Zeiteinheiten erhalten. Die Zeiteinheit ist in weiten Grenzen als Vielfache von 1/16 Sekunde einstellbar. Dazu muss ein 16-Bit-Zeitfaktor als Highbyte und Lowbyte in die Speicherstellen 1 und 2 geschrieben werden. Die folgende Liste zeigt einige typische Beispiele:

0 1 1/16 Sekunde
0 8 ½ Sekunde
0 16 1 Sekunde
3 192 1 Minute
225 0 1 Stunde

Wählt man als Zeitbasis eine Stunde, dann kann das Programm bis zu 30 * 255 Stunden, also ca. 10 Monate dauern. Als schnellste Ausgabenfolge ist ein Takt von 16 Ausgaben pro Sekunde möglich.

Das Startkommando 68 schreibt "1" in die Speicherzelle 1 und startet den Endloslauf. Nach dem Wiedereinschalten geht das Gerät in den Programm-Endlos-Modus.

Das Startkommando 74 schreibt "2" in die Speicherzelle 1 und startet den Einmal-Durchlauf des Programms. Mit jedem Neustart wird erneut ein einzelner Lauf ausgelöst.

Im Programmodus "Endlos" kann ein Interface als Master den zeitlichen Ablauf aller anderen Interfaces als Slaves steuern bzw. synchronisieren. 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) zwischen SYNC und Masse kann aber das Startsignal für Einzeldurchläufe liefern.


Typische Anwendungen & Anschlussbelegung der Schnittstelle

Die folgende Abbildung zeigt den Anschluss der Datenleitung. Beide Western-Buchsen sind gleich beschaltet und austauschbar. Interfaces werden über Verlängerungskabel eins zu eins verbunden. Das Datenkabel zum PC verwendet nur Masse (Pin 5) und TXD (Pin 3) an einer DB-9-Buchse. Am Pin 1 der Western-Buchse steht die Betriebsspannung zur Verfügung, die über eine Diode verpolungssicher an der Netzteil-Buchse liegt. Mehrere Interfaces können daher wahlweise über ein oder mehrere Netzteile versorgt werden. Die Synchronleitung an Pin 3 ist im Ruhezustand gesetzt und wird vom Master-Interface für die Dauer eines Synchronimpulses auf Nullpegel gezogen. Die Synchronleitung ist hochohmig und darf alternativ auch über einen externen Schaltkontakt (Öffner) gegen Masse gezogen werden. Damit lässt sich eine Schaltsequenz durch kurzes Öffnen des Kontakts extern auslösen.

Pin 1 Betriebsspannung +12 V
Pin 2 Masse
Pin 3 Synchronleitung SYNC
Pin 4 Masse
Pin 5 Datenleitung TXD vom PC
Pin 6 Masse


Mehrere Relais-Interfaces 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, die 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.

 

 

Alle Interfaces werden durch Verlängerungskabel parallel geschaltet. Daten auf der Sendeleitung TXD werden vom PC an alle Geräte gesendet. Außerdem wird über das Kabel die Betriebsspannung weitergeleitet. Es genügt daher, ein Gerät mit einem Steckernetzteil zu verbinden, und so gleich mehrere Relaiskarten zu versorgen. Zusätzlich gibt es ein Synchronisationsleitung, die alle angeschlossenen Geräte verbindet. Sie dient dazu, eine zeitliche Koordinierung zwischen den Geräten zu erreichen.

 Im Programmodus „Endlos“ kann ein Interface als Master den zeitlichen Ablauf aller anderen Interfaces als Slaves steuern bzw. synchronisieren. Zu diesem Zweck dient die Steuerleitung SYNC. Das Interface mit der ID-Adresse 1 ist grundsätzlich der Master. Es schaltet die SYNC-Leitung während des Programmlaufs herunter und setzt sie nur für die Dauer seines ersten Programmschritts hoch. Alle Slaves verzögern am Ende ihres Programms den Neubeginn beim Programmschritt 1, bis das Startsignal an der SYNC-Leitung erscheint. Der Master erzwingt also einen gleichzeitigen Start. Ist kein Master definiert, dann laufen alle Interfaces frei. Abb. 6.4 zeigt die Anschlussbelegung der beiden parallel geschalteten Anschlussbuchsen. Als Verlängerungskabel dienen handelsübliche 6-polige Telefonkabel.

Ein externer Schalter (Öffner) kann ebenfalls das Startsignal für Einzeldurchläufe liefern. Damit lassen sich z.B. auf Knopfdruck oder durch eine Lichtschranke Programmdurchläufe abrufen. Hier bietet sich also die Möglichkeit, einen programmierten Ablauf durch ein externes Ereignis zu steuern. Mit dieser Steuerung hat man erst die Möglichkeit, Vorgänge sinnvoll zu automatisieren, wobei das Relais-Inteface nur einmal am PC programmiert werden muss, dann aber jahrelang seine Aufgabe allein erfüllen kann.

Man kann sich vorstellen, dass ein Kontakt an einer Gartenpforte angebracht ist. Bei einer Gartenparty wird dann jedem neuen Besucher durch eine Reihe von nacheinander aufleuchtenden Lämpchen der richtige Weg gewiesen. In anderen Fällen könnte ein Besucher gerade unerwünscht sein. Dann löst er eben beim Öffnen der Pforte den Rasensprenger aus, der zufällig gerade auf den Weg gerichtet ist.