Sie sind auf Seite 1von 5

Logo mit Android-Smartphone steuern

Netzwerkzugang
Ich gehe einfach mal davon aus, dass eure 0ba7 bereits per Netzwerk theoretisch mit eurem Smartphone zu erreichen ist, sprich sich das Smartphone im selben Netz befindet wie die Logo. Das kann entweder einfach ber die WLAN-Verbindung zu Hause erreicht werden oder, wenn das ganze von unterwegs steuerbar sein soll, ber ein VPN geschehen. Die Einrichtung eines VPN zwischen eurem Router und Smartphone ist von der Hardware abhngig, da gehe ich jetzt nicht weiter darauf ein. Sucht einfach im Netz nach Anleitungen dazu. Konfiguration der Logo In LOGO!Soft Comfort ffnet ihr euren Schaltplan und geht auf Extras Ethernet-Verbindungen. Dort legt ihr unten im Fenster mit einem Rechtsklick auf den Knoten Ethernet-Verbindungen Vebindung hinzufgen eine neue Verbindung an.

Danach bitte einen Doppelklick auf die soeben angelegte Verbindung um die Eigenschaften zu bearbeiten. Im folgenden Fenster whlt ihr bitte Server-Verbindung und nehmt die Einstellungen wie unten gezeigt vor:

Anschlieend alles mit OK besttigen und den genderten Schaltplan zur Logo bertragen.

Anpassung des Schaltplans


Mit der Android-App S7Droid lassen sich Eingnge, Ausgnge, Merker und Datenblcke (VM-Speicher) lesen und schreiben. Allerdings hat bei Eingngen ein Schreibzugriff keine Auswirkungen, da die Logo in jedem Programmzyklus die Werte mit denen aus den physischen Eingngen berschreibt. Dasselbe gilt auch fr Ausgnge mit einer Ausnahme: Ausgnge die nicht als Block im Schaltplan enthalten sind, lassen sich direkt schreiben und somit vom Smartphone steuern. Sobald sie aber wieder im Schaltplan vorkommen, werden diese bei jedem Programmzyklus entsprechend des Schaltplans berschrieben. Und das ist das Problem: in der Regel wird der Ausgang bereits in eurem Programm verplant sein, sonst httet ihr euch vermutlich keine Logo angeschafft, sondern eine schaltbare (Internet-)Steckdose. Fazit: Direkt schalten von Ausgngen ist nicht praktikabel. Was bleibt dann noch? Die einfachste Variante die Logo zu steuern ist von auen einen Merker zu schreiben. Diese wird in eurem Programm ganz normal abgefragt und schaltet z.B. einen Ausgang zustzlich zur normalen Programmlogik ein. Was mir jedoch nicht gefllt ist, dass Merker immer Mangelware sind und ich nicht fr jeden der 16 Ausgnge einen Merker verschwenden mchte, wir haben ja nur 27 Stck, abzgl. der 3 Spezialmerker fr Hintergrundlicht und Zeichensatz blieben dann nur noch 8 brig. Viel schner finde ich eine andere Lsung: Netzwerkeingnge mit VM-Adressen! Eure Logo hat einen Variablenspeicher (VM=Variable memory oder auch DB=Data block genannt) von sage und schreibe 851 Bytes zur Verfgung. Das hrt sich jetzt im Zeitalter von Terrabytes nicht sonderlich viel an aber da ein Schaltsignal fr einen Digitaleingang nur 1 Bit belegt ist das doch mehr als genug. In eurem Schaltplan fgt ihr dazu einen Netzwerkeingang hinzu, der parallel zur bestehenden Logik ber einen Oder-Block den Ausgang schaltet:

In den Eigenschaften des Netzwerkeingangs stellt ihr nun bei Wert einlesen von auf VM um, damit sich der Zustand des Netzwerkeingangs aus dem Variablenspeicher befllt. Nun kommt der Knackpunkt mit der Adresse. Ihr habt wie gesagt 851 Bytes zur Verfgung. Ich habe hier im Beispiel nicht die Adresse 0.0 genommen sondern absichtlich etwas oberhalb zugegriffen um auf die Nummerierung einzugehen, nmlich auf das 21. Byte und das 5. Bit (Der Index beginnt bei 0). Ihr knnt natrlich auch bei 0.0 anfangen.

Nun knnt ihr eure Schaltung auch schon testen nicht mit dem Smartphone, sondern in der Simulation. Dazu ffnet ihr dort die Datentabelle:

Nun legt dort eine neue Zeile an und gebt als Adresse VB20 an. Warum VB20? Das V steht fr Variablenspeicher (Es gibt auch noch I=Eingnge, Q=Ausgnge, M=Merker). Das B steht fr Byte, da wir ein Byte (die kleinste darstellbare Gre in der Datentabelle) beobachten wollen. Wir wollen nun Byte Nummer 20 (wie im Netzwerkeingang konfiguriert) haben. Wie gesagt ist das Byte die kleinste Einheit die gelesen/geschrieben werden kann. Der Aktualwert von 0 bedeutet nun, dass die Bits 0 bis 7 alle nicht gesetzt sind. Wir wollen nun das Bit mit dem Index 4 (wie im Netzwerkeingang konfiguriert, Zhlung beginnt bei 0 also das 5. Bit) setzen. Das entspricht im Dezimalsystem der 16 (1,2,4,8,16,32,64,128). Also tragen wir die 16 in die Spalte Neuer Wert ein und Tata! der Ausgang schaltet in der Simulation ein.

Zum ausschalten einfach wieder die 0 als Neuer Wert schreiben. Aber aufgepasst: ihr manipuliert hier immer das komplette Byte. Das bedeutet, dass evtl. bereits gesetzte andere Bits berschrieben werden, wenn ihr sie vorher nicht miteinander verrechnet. Das ist spter bei S7Droid komfortabler, da dort einzelne Bits direkt gendert werden knnen, bzw. die App die Bitoperationen im Hintergrund vor euch versteckt.

S7Droid konfigurieren
Nun da der Schaltplan erfolgreich getestet wurde, kommen wir zur Konfiguration der Android-App S7Droid. Ich selbst habe bisher nur die Lite-Version getestet, da ich erst mal nur wissen wollte ob es berhaupt geht. Auerdem habe ich selbst noch kein Android-Gert (iPhone-Fanboy) und daher mit dem Gert meiner Frau getestet. Die Vollversion sollte aber von der Einrichtung her identisch sein. In den Einstellungen der App whlt ihr unter S7-Gerte-Typ die Logo 0ba7 aus und gebt darunter die IP-Adresse der Logo ein. Die Einstellungen fr MPI-Adresse, Port, Rack und Slot bitte wie im folgenenden Screenshot gezeigt vornehmen:

Im Feld S7-Adresse ist nun die Speicheradresse der Logo anzugeben, die ihr lesen oder schreiben wollt. Dazu klickt ihr auf das blaue Fragezeichensymbol, das euch einen Assistenten zur Eingabe der Speicheradresse ffnet. Der Speicher Bereich gibt an ob Eingang, Ausgang, Merker oder VM-Speicher (hier Datenbaustein genannt) gelesen werden sollen. Wir nehmen hier Datenbaustein um auf die VM-Adressen zuzugreifen. Der Datentyp muss Bool sein, da wir nur ein Bit schreiben wollen. Datenbaustein-Nr. ist immer die 0 bei der Logo. Als letzter Punkt entsprechen Byte-Nr. und Bit-Nr. nun genau den VM-Einstellungswerten des Netzwerkeingangs, den ihr im Schaltplan verplant habt, also in unserem Beispiel Byte 20 und Bit 4. Das wars! Anschlieend knnt ihr mit Variable schreiben das Bit setzen oder lschen und damit die Logo steuern.