Protokoll für den Datenaustausch über die serielle Schnittstelle (RS-232) des ASCII-Moduls mit Fremd-Systemen
Kommunikationsparameter:
Art: asynchron seriell RS-232
Verbindungen: RXD, TXD, GND
Baudrate: 1200 bis 38400 Bit/s einstellbar
Datenformat: 8 Datenbit, 1 Stopbit keine Parität
Verzögerungen zwischen den einzelnen Nachrichtenblöcken in 5ms-Schritten einstellbar
Datenübertragungsformat:
1 Byte | 1 Byte | n Byte | 1 Byte |
Startzeichen | Identifikator | Kommando/Daten | Stopzeichen |
Signalisiert den Start einer Datenübertragung (Startzeichen = $) | Durch diese Zeichen wird festgelegt, um welche Befehlskategorie es sich handelt (Details siehe unten) | n Byte ASCII-Zeichen, welche die genauen Befehle definieren | Durch diese Zeichen wird die Übertragung eines Befehls abgeschlossen (Stopzeichen = %) |
Digitalsignale:
Übertragungsstring
$ | D | X | X | X | S | r | r | r | % |
$ | D | X | X | X | R | r | r | r | % |
$ | D | X | X | X | P | r | r | r | % |
D = Übergabe eines Digitalsignals
X = Kanalnummer
S = Der Kanal (Befehl) wird auf logisch 1 gesetzt und als eingeschaltet betrachtet, bis ein Rücksetzbefehl geschickt wird.
R = Rücksetzen eines Kanals (Befehls)
P = Kanal (Befehl) mit Impulsfunktion (Das Empfangsgerät soll diesen Befehl als Impuls auf diesen Kanal interpretieren.)
r = Reserve (wird mit ASCII-Zeichen 0 belegt
Beispiel: Taste drücken und dann loslassen (Kanalnummer 20).
Damit kann ein kurzer oder langer Tastendruck unterschieden werden, bzw. können auch Dauerfunktionen z.B. für das Auf-/Abdimmen realisiert werden.
Befehl: Taste drücken | $D020S000% |
Befehl: Taste loslassen | $D020R000% |
Beispiel: Stimmungstaste 1 Raum X (Kanalnummer 25 nur als Impuls)
Befehl: Taste betätigen | $D025P000% |
Synchronisation des Fremd-Systems:
Übertragungsstring (Datenrichtung Fremd-System -> ISYGLT)
S = Synchronisation (Abfrage des aktuellen Zustands eines Kanals (Befehls) (Rückmeldung)) X = Kanalnummer (1 bis 999) r = Reserve (wird mit ASCII-Zeichen 0 belegt)
Beispiel: Synchronisation der Stimmungstaste 1 Raum X (Tastennummer 26)
Abfrage des Status der Rückmeldung | $S0260000% |
Antwort des ISYGLT-Systems | $D026S000% |
oder | $D026R000% |
Synchronisation aller Rückmeldungen:
Mit diesem Befehl ist eine komplette Synchronisation des Systems möglich (beispielsweise nach einem Ausfall des Fremd- System-Prozessors).
Sobald dieser Befehl vom ISYGLT-System erkannt wird, werden sämtliche Zustände der Rückmeldungen ans Fremd-System gesendet (dieser Vorgang kann einige Sekunden dauern).
Beispiel: Synchronisation der ganzen Anlage:
Synchronisationsabruf vom Fremd-System | $S0000000% |
Rückmeldungen des ISYGLT-Systems | $D001S000% $D002R000% $D003S000% usw. |
Wertübergabe (8-Bit):
Übertragungsstring (Datenrichtung Fremd-System -> ISYGLT und ISYGLT -> Fremd-System)
A = Wertübergabe
XXX = Kanalnummer 1 bis 999
W = Startzeichen für Wertübergabe
YYY = Wert, der übertragen werden soll 0 bis 255
Beispiel: Übergabe des Wertes 135 (Kanalnummer 30)
Befehl: Analogwert 135 (dezimal 8-Bit) mit dem Kanal 30 senden | $A030W135% |