Login
Newsletter
Werbung

Fr, 14. Januar 2011, 09:00

Heimautomatisierung für Hardwarebastler

Form und Funktion

Dafür kommt nun der Flow Editor zum Einsatz, welcher sich hinter dem zweiten Karteikartenreiter im Hauptfenster verbirgt. Während der HMI Editor rein für die Erstellung des visuellen Layouts zuständig ist, wird hier festgelegt, was im Hintergrund geschehen soll und wie die einzelnen Elemente voneinander abhängig sind. Das passiert mittels einer Art Blockschaltbild.

Erste logische Verknüpfungen im Flow-Editor

Hans Müller

Erste logische Verknüpfungen im Flow-Editor

Ein Rechtsklick in diesem Editor öffnet wiederum ein umfangreiches Kontextmenü, bei dem vorerst der erste Eintrag Steuerungselement anlegen wichtig ist. Dieser öffnet seinerseits ein Fenster, in dem die zuvor angelegten GUI-Elemente mit ihren eindeutigen Namen aufgelistet sind. Ein Doppelklick auf RL1Hoch fügt nun dem Blockschaltbild ein erstes Element hinzu.

Dieses Symbol kann man mit der linken Maustaste verschieben. Es besitzt diverse Ein- und Ausgänge. Die Eingänge eines solchen Elementes sind dabei immer an der Oberseite angeordnet und zeigen in das Element hinein, die Ausgänge sind an der Unterseite angeordnet und zeigen heraus.

An dieser Stelle vielleicht ein wenig Theorie. Es gibt ein paar einfache Regeln für ein solches Blockschaltbild:

  • Es existieren vier Datentypen DIGI (digital, LOW/HIGH), NUM (numerisch, jeder mögliche Zahlenwert), CHAR (Texte) und BIN (Binärdaten) die im Elementsymbol farblich unterschieden werden.
  • Verbindungen zwischen Aus- und Eingängen können immer nur bei gleichen Datentypen hergestellt werden.
  • Verbindungen sind keine elektrischen Leitungen, die ständig irgendein Signal übertragen bzw. irgendeinen Pegel haben, sondern logische Verknüpfungen, welche ereignisorientiert ein Datenpaket übertragen.

Mit diesen Regeln und dem Wissen um die Funktion der Ein- und Ausgänge von Elementen lässt sich nun schon alles Mögliche recht einfach realisieren.

Mit einigen weiteren Klicks können auch die anderen beiden Elemente aus der Steuerungselemente-Liste (deren Inhalt ja den GUI-Elementen im HMI-Editor entspricht) in den Flow-Editor eingefügt werden. Hier fällt nun eines auf: Alle Elemente besitzen ganz links einen Digitaleingang D0 (Symbolfarbe weiß), der direkt auf den Ausgang D0 durchgeschleift wird. Dieser Eingang bestimmt den Status des GUI-Elements, Änderungen des Eingangssignals bewirken direkt eine Änderung des Layouts entsprechend den Voreinstellungen für LOW und HIGH in den Objekteigenschaften. Die Buttons besitzen noch einige Ein- und Ausgänge mehr; an dieser Stelle ist aber vorerst nur der Ausgang D1 interessant: Hier wird der Status des jeweiligen Buttons übertragen, wenn er vom Nutzer betätigt wird. Damit steht fest, wie das erste Blockschaltbild aussehen muss: Die beiden Ausgänge D1 der Buttons RL1Hoch und RL1Runter müssen über ein logisches ODER verknüpft und das Ergebnis mit dem Eingang D0 des RL1Display verbunden werden. Die benötigte ODER-Funktion Digitales (NICHT) ODER findet sich im Flow-Editor unter Element hinzufügen und dann in der Kategorie Logikoperationen.

Zum Verbinden der Elemente ist die linke Maustaste jeweils direkt in dem kleinen Dreieck des Ausganges festzuhalten, anschließend zieht man die Maus auf das kleine Dreieck des gewünschten Zieleinganges und lässt sie los. Die Verbindung zwischen den Elementen wird automatisch eingezeichnet. Fertig ist das erste Blockschaltbild, welches jetzt im Debugger getestet werden soll.

Das Statusfenster des Debuggers

Hans Müller

Das Statusfenster des Debuggers

Dazu sollte das aktuelle Projekt an dieser Stelle gespeichert werden, damit nicht noch irgend etwas Wichtiges verloren geht. Im Beispiel wird der Name test.apcp gewählt. Anschließend kann der Debugger (welcher ebenso wie der Editor im Runtime-Paket nicht mit enthalten ist) durch einen Klick auf das Käfersymbol in der Werkzeugleiste gestartet werden.

Nun öffnet sich ein rahmenloses Fenster, in dem die Schaltflächen und die Statusanzeige zu sehen sind. Dieses Fenster entspricht der Darstellung auf dem Zielsystem. Abweichend zum Player öffnet der Debugger rechts daneben aber noch ein zusätzliches Statusfenster, welches diverse Meldungen anzeigt und im Fall von Problemen während der Laufzeit auch darüber informieren würde. Die weiteren Debuggerfunktionen wie Singlestepping, Variablenüberwachung sowie Programmflussunterbrechung bei bestimmten Ereignissen werden an dieser Stelle nicht weiter benötigt.

Im Gegensatz zum OpenPlayer, welcher OpenAPC-Projekte in der Runtime »wiedergibt«, startet ein Projekt im Debugger nicht sofort und automatisch; dies geschieht erst durch einen Klick auf das Käfersymbol in der Werkzeugleiste des Debuggers. Mit demselben Button kann ein Programmfluss auch wieder unterbrochen werden. Wenn das Beispielprojekt nun gestartet wird, »erwachen« die Buttons und zeigen schon erstes Leben: Werden die Buttons wechselseitig betätigt, so wird der jeweils andere Button deaktiviert (was durch den gegenseitigen Ausschluss RL1 realisiert wird, der für beide Buttons gesetzt wurde). Solange einer der beiden Buttons betätigt ist, ist die Anzeige rot (da der Eingang D0 dieses Elements durch den Button ja auf HIGH gesetzt wurde). Nur wenn beide Buttons deaktiviert sind, zeigt auch die Anzeige wieder grün (entsprechend eines LOW-Signals von beiden Buttons am Eingang D0).

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung