Aus RN-Wissen.de
Wechseln zu: Navigation, Suche


Vorwort

Hinweis: Dieser Artikel ist erst im Entstehen. Das Programm ist noch nicht fertiggestellt.

In diesem Artikel sollen die erforderlichen Grundlagen für die Programmierung einer C-Control Pro von CONRAD auf Basis der Roboterzellen: Syntax beschrieben werden. Hardwareseitig wird das C-Control Pro Einsteigerset MEGA 32 (CONRAD 198206) verwendet.

Die Entwicklung der erforderlichen Software erfolgt über die mitgelieferte Entwicklungsumgebung. Da ich Temperatur-Sensoren anschließen möchte, wird die neue (derzeit noch Beta-Version) 1-Wire Schnittstelle eingesetzt.

Weshalb wird die C-Control Pro eingesetzt? Für den Aufbau einer Temperatursteuerung mit Temperaturmessungen, Anzeige und Schaltausgängen hatte ich mir das Einsteigerset bereits zugelegt, bevor ich auf das Roboternetz gestoßen bin. Jetzt möchte ich zum Einen die Temperatursteuerung verwirklichen, zum Anderen einen ersten Prototyp für die Programmierung der Roboterzellen entwerfen. Ob der MEGA 32 den erhöhten Ansprüchen gerecht werden kann, wird sich zeigen müssen.

Grundstruktur

Die C-Control Pro kann I²C nur als Master ausführen. Die Logik der Roboterzellen erfordert jedoch einen Master- und Slave-Betrieb. Somit wird nur ein eingeschränkter Funktionsumfang realisiert. Das kommt mir jedoch gelegen, da ich so erste Erfahrungen mit der Implementierung der Programmiersprache gewinnen kann, ohne das schwierige Problem der Synchronisation der gemeinsamen Speicherstellen bereits jetzt angehen zu müssen.

Als Konsequenz ergibt sich jedoch, dass auch die Ein-Ausgabeeinheit auf der C-Control Pro realisiert werden muss.

Threads

Die C-Control Pro kann mit mehreren Threads arbeiten. Hier werden verwendet:

  • Thread 1 für die Abfrage der Sensoren und das Hinterlegen der Daten in vordefinierte Speicherstellen. Zusätzlich werden Speicherstellen als Grundlage zur Ansteuerung von Pins verwendet: Hierüber können Effektoren gesteuert werden. Die im Einsteigerset beigefügte Tastatur und Anzeige sollen verwendet werden können. Dieser Thread kann entsprechend erweitert und verändert werden, um ggf. eigene Sensoren und Effektoren einzubinden.
  • Thread 2 zur Abarbeitung der Zusammenhänge, d.h. der Regeln, mit denen der Anwender seine Logik für das Zusammenwirken der Speicherstellen hinterlegt.
  • Thread 3 als Ein-/Ausgabeeinheit zur Festlegung neuer Speicherstellen und der Zusammenhänge.

Syntax

Es ist die vollständige Syntax auf Basis von Zelldefinition ::= [Wertebereich | Speicherstelle | Zusammenhang ] … implementiert, bis auf die gemeinsamen Speicherstellen. Somit entfällt Speicherstelle ::= („Gemeinsam“ EName „:“ Slave „,“ EName).

Steuerbefehle

Es werden lediglich die Befehle umbenennen ::= „bezeichne“ EName „als“ EName und auflisten  ::= „Elemente“ | „Zusammenhänge“ benötigt. Ein Umschalten zwischen der Ein-/Ausgabeeinheit zur Festlegung der Speicherstellen und Zusammenhänge und der Eingabe bzw. Ausgabe von Daten als Ergebnis des Programmes wird ermöglicht.

Verweise

Die Artikel Roboterzellen und Roboterzellen: Syntax werden als bekannt vorausgesetzt.

Quellen

Autor

--ZellRobi 16:45, 16. Aug 2008 (CEST)