Befehlsliste für die ConFLiCT Steuerung
Die Schnittstelle ist Seriell (RS232) mit 57600 Baud, ein Start- und Stoppbit, keine Parity oder Flussteuerung. Diese wird, da die Serielle Schnittstelle kaum noch vorhanden ist, mit dem MCP2200 Baustein von Microchip realisiert. Dieser sitzt auf der Steuerung und ist mit dem Mikrokontroller per RS232 verbunden. Die Steuerung selber wird über den MCP2200 per USB mit dem PC verbunden. Auf diesem wird dann der Treiber von Microchip installiert der wiederum eine Virtuelle Serielle Schnittstelle erzeugt. Das GUI verwendet einfach eine Serielle Schnittstelle und braucht sich um den MCP2200 also nicht zu kümmern.
Da die bisherige Struktur unzureichend flexibel war, gibt es jetzt ein neues Konzept:
Beim Start (bzw. bei jedem Verbindungsaufbau) des GUI's meldet sich die Steuerung mit einem "Hallo". Darauf hin werden alle Einstellungen der Steuerung an das GUI übertragen (Initailisierung). Im weiteren Betrieb werden keine Konfigurationsadten mehr von der Steuerung zum GUI gesendet. Das hätte auch wenig Sinn, da ja die Konfiguratiion während der Laufzeit sowieso nur vom GUI aus geändert werden kann.
Nach der Initialisierung sendet die Steuerung automatisch in einem Abstand von 1s alle Sensordaten (Temperaturen, Umdrehungszahlen, Durchfluss) und den Alarmstatus an das GUI. Dafür ist kein Trigger vom GUI mehr nötig.
Das GUI sendet neue Konfigurationsdaten bei Betätigung des Übernehmen-Buttons. Sowie Daten von AIDA (falls aktiviert) in einem Abstand von 1s.
Die AIDA Daten dürfen nur gesendet werden, wenn diese aktuell sind! Dies muss das GUI unbedingt sicherstellen.
Die einzelnen Befehle sind ASCII Codiert und nach folgendem Schema aufgebaut:
Befehlsname#Befehlslänge#Datenwort#Datenwort#...#Datenwort#Datenwort<CR><LF>
# ist das Trennsymbol zwischen jedem Datenwort.
Das Ende jeder Übertragung wird mit <CR><LF> terminiert.
Jeder Stringteil (Datenwörter, Befehlsname, Befehlslänge) darf maximal 5 ASCII Zeichen lang sein.
Insgesamt darf ein Befehl maximal 40 Datenwörter + Befehlsname + Befehlslänge beinhalten.
Die Befehlslänge ist eine Zahl (ASCII-Codiert), die angibt wie viele Stringteile der Befehl insgesamt beinhaltet. Dies dient zur Verifizierung der Übertragung.
Die Länge jedes Befehls ist somit variabel. Es kann einfach für in einer neueren Version ein Befehl ergänzt werden.
Nach wie vor gilt:
Temperaturangaben sind immer mal 2. Das heißt z.B., dass 70 35°C bedeutet und 25,5°C ist 51. Somit lassen sich Temperaturen mit einer Auflösung von 0,5°C in einem Byte speichern.
Die Steuerung ist für Temperaturen von 0°C bis 99°C ausgelegt, wobei die analogen NTC Sensoren minimal 8,5°C zurückgeben. Das entspricht Werten von 0 bis 198. Ist an einem Anschluss der Steuerung kein Sensor angeschlossen wird als Wert 220 zurück gegeben. Um eine Temperatur für einen Kanal nicht zu verwenden wird der Minimalwert auf 250 und der Maximalwert auf 255 eingestellt.