native Android App als Modbus/TCP GUI

Begonnen von Homesps, 04. Oktober 2012, 22:40:58

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Homesps

Hallo,

momentan arbeite ich an einer App für Android, die per Modbus/TCP mit der Wago kommuniziert. Für unser Haus habe ich Android-Tablets als Bedienschnittstelle eingeplant. Die Dinger gibts mittlerweile für wenig Geld und nebenbei kann man noch viel mehr damit machen.

Da dies mein erster Versuch mit Android-Programmierung ist, ist die Lernkurve sehr steil. Vor allem die Konzepte von Android sind neu und ungewohnt.

Ein Prototyp existiert bereits. Er besteht aus einer App und einem Widget, die beide die Aussentemperatur aus dem PFC-OUT-Bereich auslesen und ausgeben.

Als nächstes möchte ich mir über die grundsätzliche Architektur klar werden, dann geht es an die Programmierung weiterer Funktionen.

Die App wird von der GUI sehr speziell auf unsere Bedürfnisse zugeschnitten sein. Aber vielleicht hat ja jemand Interesse an der zugrunde liegenden Infrastruktur (Modbus-Kommunikation, Widget, Fragments etc.)

Gruß
Klaus

peewit

solche themen sind ja immer interessant

kannst du weitere details preisgeben ......

vielleicht beschreibst du mal etwas dein projekt

welche hardware,software,protokolle etc.... verwendest du

zeigst uns ein paar bilder deiner app !


Homesps

Als Hardware verwende ich eine Wago 750-849 und Android-Tablets und -Telefone. Die Wago hängt bei uns im internen LAN, die Androiden sind per WLAN angebunden.

Für den Prototypen habe ich in der Steuerungskonfiguration eine PFC-OUT-Variable als REAL definiert Dieser weise ich die Aussentemperatur, gemessen über eine Elsner-Wetterstation (Wago-Version), die auf dem Dach installiert ist, zu.

Die Android-App besteht aus einer Activity mit mehreren Fragments, so dass sie sowohl auf dem Tablet als auch auf dem Telefon funktoniert. Die App ist momentan noch sehr leer, zeigt aber die aus der Wago ausgelesene Aussentemperatur, die alle 5s aktualisiert wird. Zu der App gehört noch ein Widget. Das Widget zeigt nur einen Rahmen mit der Temperatur. Diese wird automatisch alle 30 Minuten oder wenn man auf das Widget tippt aktualisiert.

Die App greift über die Java-Modbus-Bibliothek jamod http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CB4QFjAA&url=http%3A%2F%2Fjamod.sourceforge.net%2F&ei=VqRuUOi8MYmBhQf9noDYAg&usg=AFQjCNGOVqATgzTdbfMOiUJWnNtQs3leUA über Modbus/TCP auf die Wago zu.

Aktuell ist die Anwendung ein Forschungsobjekt, da ich vorher noch nie für Android programmiert haben und mir erstmal über die Konzepte klar werden musste.

Gruß
Klaus

Homesps

So, hier eine kleine Demo zum Thema.

Vorgehen:

1. SPS mit Modbus/TCP, Modbus-Variable als Typ REAL definiert. Bei mir liegt die erste Variable an %QD128, das entspricht der Modbus-Adresse 256. Dieser weise ich im Programm den Wert der Aussentemperatur zu.

2. Angehängtes ModbusTemp.apk auf einem Android-Gerät installieren, das die SPS per Netz erreichen kann.

3. Das Widget ModbusTemp auf den Homescreen legen. Es öffnet sich ein Konfigurationsdialog, in dem die IP-Adresse der SPS und die Modbus-Adresse angegeben werden müssen.

4. Der REAL-Wert wird als Temperatur ausgegeben.

Gruß
Klaus

[gelöscht durch Administrator]