hackcraft.de - technology / diy / games











 

DIY Elektro-Schmelzofen-Regler


<<< zurück | Home | weiter >>>

4. FreeMODBUS - Modbus (über RS232)

Modbus ist ein Industriestandard, der sehr verbreitet ist in der Welt der Speicher-Programmierbaren-Steuerungen (SPSen). Entscheidend bei Modbus ist, dass es ein recht applikations-unspezifisches Protokoll ist und sich weitgehend Transparent in die Applikation einfügt, ohne den Programmablauf zu diktieren. Modbus dient im wesentlichem der Kommunikation und Manipulation von Speicherzuständen. Dazu benötigt man ein Mapping zwischen Speicherarten+Adressen zu realen Speicheradressen. Dieses Mapping kann von Applikation zu Applikation unterschiedlich sein und wird nicht vom Protokoll vorgeschrieben.

FreeMODBUS bietet eine Open-Source Solution mit Portierungen für viele Mikrocontroller. In FreeMODBUS wird das Mapping durch benutzerdefinierte Callbacks implementiert. Das Benutzerprogramm erfährt so, welcher Speicherblock gelesen oder geschrieben werden soll und kann diese Aktion entsprechend ausführen, wenn es sich um eine (für diese Applikation) zulässige Operationen handelt. Der FreeMODBUS Modbus-Protocol-Layer selber führt keinerlei Schreib-/Lese-Operationen durch, sondern vermittelt entsprechende Anfragen und Antworten nur.

Im Temperatur-Controller ist der gesamte Controller-Zustand (alle Zustandsvariablen) gemapped, insbesondere auch die Konfigurationsparameter, die Sensordaten, die Geglätteten Sensordaten und die Debugvariablen. Das heißt, alle relevanten System-Variablen und -Parameter sind von außen über das Modbus-Protokoll einsehbar und manipulierbar. Für die Systementwicklung und -debugging stehen also alle Mittel zur Verfügung.

Natürlich ließe sich der Zugriff auch aus Sicherheitsgründen für eine Release-Version einschränken. Für den Verfälschungsschutz bei der Datenübertragung sorgt ein 16 bit Cyclical-Redundancy-Check, mit dem Polynom: 0xA001 (1010000000000001). FreeMODBUS verfügt standardmäßig über einen Tabellengetriebenen CRC, zur Speichereinsparung wurde dieser aber, für den Temperatur-Controler, gegen einen algorithmischen ausgetauscht. Insbesondere könnte das gesamte Modbus-Protokoll auch entfernt werden, ohne dass dies sich auf das restliche Programm auswirken würde. --- Modbus ist, als hätte man Akkupunkturnadeln im Speicher der Anwendung; man kann PEEKen und POKEn wie man will.

Modbus erlaubt ein sehr einfaches In-Circuit-Debugging.

Die Modbus Implementierung benötigt nicht unwesentlich viel Programmspeicher, wodurch die Controllerauswahl bei größeren Nutzlast-Programmen eingeschrängt wird.

Zur Debugging-Zeit kann ein Größerer Mikrocontroller notwendig sein - wahrend eine Release-Version ohne Modbus noch in einen kleineren passt.

<<< zurück | Home | weiter >>>

hackcraft.de - technology, homebrew, games

Google