| 
 
Beschreibung: 
Diese Seite zeigt, wie ich mit dem AVR-NET-IO-Board 
der Fa. Pollin (http://www.pollin.de), einer 
selbst erzeugten Firmware von E2000 (http://www.elektronik2000.de) 
und einem Purebasic-Programm (http://www.purebasic.de) 
genannt "GAServer" eine Schachtüberwachung eines Getränkeautomaten realisiert 
habe. Das Purebasic-Programm frägt zyklisch die Zustände der im Board 
mitgezählten Schaltbefehle bzw. Schachtentnahmen mit. Es werden von den 8 
Schächten der Automaten der Schachtzähler und der jeweilige "Leermeldekontakt" 
des Schachtes überwacht und zyklisch mitprotokolliert. Es wird ebenfalls noch 
eine Datei mit den Bestandsveränderungen je Schacht mitgeführt und es ist 
möglich eine zyklische StatusEmail mit "Schachtzustandsbewertungen" z. B. an 
die Firma abzusetzen, damit am nächsten Morgen die Disposition des 
Getränkehandels weiß, was mit auf den LKW muss bzw. was aufgefüllt werden muss. Inzwischen
ist es auch möglich über ein Client-Programm genannt "GAClient" eine Fernabfrage der einzelnen Automaten durchzuführen und
die Daten entsprechend auszuwerten.
Dieses Projekt wird in Zusammenarbeit mit einem Getränkehändler, der hier über 
meine Webseite bei mir angefragt hatte ob so was machbar sei, durchgeführt.  
Meine ersten "Gehversuche" mit der 
E2000-Logiksoftware/E2000-Firmware findet Ihr unter folgendem Link: 
E2000 - alternative 
Firmware für das AVR-NET-IO 
(zur Erstellung autarker Mess- und 
Steuerungselektronik) 
 
(Um die Grafiken klarer und detaillierter zu 
sehen, solltet Ihr einen Klick mit der linken Maustaste 
auf der entsprechenden Grafik ausführen!) 
Hier ein Bild meines auf die E2000-Firmware 
umgerüsteten AVR-NET-IO-Boards 
mit manuellen Tastern zur Simulation der Entnahmekontakte der einzelnen Getränkeschächte: 
 
  
Im Standard genügt hier das AVR-NET-IO-Board von 
Pollin, mit einem ATMega644-Controller bestückt und einer kleinen Hilfsplatine 
zum Herausführen des Sub-D-25poligen Anschlusses, damit man die Schachtschalter 
gut anschließen kann. Auf dieser Hilfsplatine habe ich 4 der 8 Schaltkontakte 
und eine kleine Lochrasterplatine mit LEDs für die Schachtleermeldung 
angeschlossen. Das abgebildete E2000-Add-On-Board (unter dem AVR-NET-IO zu 
sehen) und das LCD-Display (links) hatte ich an diesem Testboard noch dranhängen 
und habe daraufhin auch die Firmware im Controller mit LCD-Display-Meldungen 
versehen. Für einen Betrieb im Getränkeautomaten reicht aber völlig das 
AVR-NET-O-Board mit einem zusätzlichen Adapterboard (z. B. mit Optokopplern) 
oder potentialfreien Relaiskontakten zum Abnehmen der Impulse der einzelnen 
Schachtkontakte des Automaten.  
- Pollin Board AVR-NET-IO (Pollin-Nr. 810 058 = 
Bausatz; Pollin-Nr. 810 073 = fertige Platine) 
- MicroController ATMega 644-20PU (Pollin-Nr. 100 996) 
  (dieser ersetzt den  Typ ATMega32-16PU, den Pollin auf dem 
AVR-NET-IO-Board standardmäßig einsetzt) 
- guten Kühlköper für den LS7085-Spannungsregler 
  (ACHTUNG: der andere Regler LM317 darf nicht mit dem Kühlkörper des 
LS7805 verbunden werden, da dies 
  einen Kurzschluss darstellt.) 
- Sub-D-25polige Anschlußplatine (Pollin-Nr. 810 055 = Bausatz) 
  (nur zum Anzeigen der 8 Ausgänge per LED und anschließen von 4 der 8 
Eingangskontakte notwendig!) 
- stabilisiertes Netzteil 9V oder 12V  
 
(ich nehme da gerne Uni-Netzteile mit 800-1000mA; aber "stabilisiert" 
- ist wichtig!) 
 
Nachdem der obige Hardwareaufbau stand, habe ich mit mit der 
E2000-Logik-Oberfläche eine Firmware für den ATMega644-Microcontroller erstellt.  
Hier mal ein Snapshot der mit E2000 erzeugten Boardfirmware 
(genannt GAFirmware; 
z. Zt. nicht für den Nachbau freigegeben): 
 
  
 
Da die E2000-Firmware im Standard über einen eingebauten rudimentären Webserver 
verfügt, kann man sich die aktuellen Schachtzustände, Schachtleermeldungen und 
Schachtstartwerte auch über einen Webbrowser direkt anschauen. 
Hier mal einen Snapshot dieser 
Weboberfläche von E2000, mit den Beständen der Schächte 1-8: 
 
  
Die E2000-Leute stellen für die E2000-Firmware auch 
noch einen E2000-Designer zum Download zur Verfügung. Damit kann man sich für 
ein androidfähiges 
Handy eine eigene Oberfläche designen. Hier habe ich allerdings nur mal 
"reingeschnuppert" und kann (noch) nicht viel zu diesem Programm sagen! 
 
Anschließend habe ich mir in 
Purebasic ein Programm namens "GAServer" (=Getränkeautomaten-Server) 
geschrieben, welches die Daten aus dem Board über das Telnet-Protokoll abfragen 
kann. Inzwischen habe ich noch einen kleinen Client namens "GAClient" 
(=Getränkeautomaten-Client) entwickelt. Mit diesem Programm kann man z. B. von 
der Firma aus, die Zustände der einzelnen Getränkeautomaten über das Internet 
abfragen und dann für die Disposition bzw. Tourenplanung nutzen. Mit "GAClient" 
wird über einen Port aus dem Programm "GAServer" die Daten des letzten 
Logbucheintrags per IP-Adresse/DNS ausgelesen und kann dann recht einfach 
ausgewertet werden. So kann beispielsweise jeden Morgen eine aktuelle 
Bestands- bzw. Zustandsabfrage der einzelnen Automaten gefahren werden. 
    
      
        | 
 
 GAFirmware - 
Eigene und autark arbeitende E2000-Firmware für das AVR-NET-IO-Board: 
Die Firmware für das AVR-NET-IO-Board wurde mit der E2000-Logik erzeugt und 
macht aus dem passiven AVR-NET-IO-Board der Fa. Pollin eine aktive Logik namens 
E2000-NET-IO. Dadurch übernimmt der Microcontroller auf dem Board nun 
eigenständige und autarke Funktionen (z. B. das Mitzählen der Schachtentnahmen 
oder das mitrechnen der Schachtbestände). Auf dieser Firmware setzt dann das 
GAServer-Programm mit eigenen Abfragen, Visualisierung der Schächte, usw. auf. 
 GAServer.exe - 
Server-Software zur 
Schachtüberwachung des Automaten mit Logbuch+StatusEmail: 
Das Programm liest die Startparameter aus einer Datei namens "GAServer.ini" ein. 
Anschließend erscheint die unten abgebildete Oberfläche. Die Logbuchdaten werden 
als ASCII-Datei mit einem frei bestimmbaren Feldtrenner auf die lokale 
Festplatte geschrieben. Das eigentliche Logbuch wird zyklisch um einen Datensatz 
mit "Automatenkennung", "Datum", "Uhrzeit", "Statusflag", "Schachtinhalt 1-8", 
"Maximaler Schachtfüllstand 1-8", "Aktueller Schachtfüllstand 1-8" und "Zustand 
Leermeldekontakt 1-8" erweitert. Parallel dazu wird bei jeder Schachtentnahme 
eine Bestandsdatei um einen Datensatz mit "Automatenkennung", "Datum", 
"Uhrzeit", "Schachtnummer", "Schachtinhalt", "Schachtbestand vor Entnahme", 
"Entnahmemenge" und "Schachtbestand nach Entnahme" erweitert. Ebenfalls wird 
auch zyklisch eine StatusEmail mit den aktuellen Schachtfüllständen des 
Automaten und einer Schachtfüllstandsbewertung "GUT" - "BEDENKLICH" - "KRITISCH" 
an z. B. die Disposition des Getränkehandels abgesetzt. Bei Schachtfehlern wird 
ebenfalls ein entsprechende FehlermeldungsEmail abgesetzt. Die Logbuchdateien 
lassen sich mit einem Texteditor öffnen oder in eine Tabellenkalkulation 
importieren und dort entsprechend auswerten und grafisch aufbereiten. 
 GAClient.exe - 
Client-Software zur Fernabfrage der Bestände und Meldungen aus CAServer.exe: 
Dieses Programm verbindet sich nach dem Programmstart mit dem "GAServer"-Programm der 
einzelnen Getränkeautomaten, liest von dort die letzten Logbuchwerte wie Schachtinhalte, 
Schachtbestände, Schachtbewertungen, Leermeldungen, etc. aus und speichert dann 
diese Datensätze der einzelnen Automaten in einer lokalen Datei, welche dann für 
die Disposition und Tourenplanung zur Verfügung steht. 
 
  bei GAFirmware 
(aktuelles Release = V1.5) 
 
  bei GAServer.exe 
(aktuelles Relase = V2.4) 
 
  bei GAClient.exe 
(aktuelles Release = V1.1) 
 
 
28.04.2013: Hier handelt es sich mit der GAServer.exe in der Version 1.0 um eine erste 
Testversion um die generelle Logbuchfunktion
zu prüfen. Ich habe hier eine einfache Vorab-GAFirmware Version 0.9 erstellt und benutzt. 
 29.04.2013: Bei der 
GAServer-Version 1.1 handelt es sich nur um ein kurzes "Zwischenrelease", 
welches ebenfalls mit der GAFirmware-Version 0.9 agierte. 
 
30.04.2013: Hier handelt es sich in der GAServer-Version 1.2 um die erste 
funktionstüchtige Version, nachdem
ich hier noch ein paar kleinere Probleme mit der Passwortabfrage des Boards und 
dem 
automatischen Reconnect der Netzwerkverbindung bei z. B. einem Boardreset 
behoben hatte. 
Die GAFirmware wurde auf Version 1.0 angehoben. 
 
01.05.2013: Hier habe ich das GAServer-Programm auf die Version 1.3 angehoben, um 
die Emailfunktion
erweitert und kleinere Anpassungen an der Datenstruktur des Logbuches 
vorgenommen.
Der Feldtrenner im Logbuch kann nun frei in der "GAServer.ini"-Datei eingestellt 
werden.
Die GAFirmware wurde auf Version 1.1 angehoben. 
 
04.05.2013: In der GAServer-Version 1.4 habe ich ein Bestandslogbuch 
eingeführt und kleinere
Anpassungen in den Textmeldungen vorgenommen.
Die GAFirmware wurde auf Version 1.2 angehoben. 
 
09.05.2013: Bei der GAServer-Version 1.5 habe ich die Möglichkeit 
geschaffen über die .INI-Datei die max. Anzahl der Netzwerk-Verbindungsversuche 
und Passwortabfragen auf das E2000-NET-IO-Board einzustellen. Bei GAServer 
Version 1.5 handelt es sich um die Final-Version der 1er-Version. Die GAFirmware 
bleibt auf Version 1.2. 
 
10.05.2013: In der neuen Programm-Version GAServer 2.0 läuft nun ein 
NetzwerkServer 
mit, der einen freigegebenen Port auf externe Anfragen von der neu hinzu 
gekommenen Software GAClient 1.0 überwacht. In der Firma wird dann GAClient 1.0 
gestartet und frägt dann den letzten Logbuchstatus von allen in der .INI-Datei gelisteten/aktiven Getränkeautomaten 
über das Internet ab und sammelt diese Werte dann in einer lokalen Logbuchdatei, welche dann 
recht einfach zur 
Disposition und Tourenplanung genutzt werden kann. Die GAFirmware 
bleibt auf Version 1.2. 
 
31.05.2013: In der neuen Programm-Version GAServer 2.1 
ist es nun möglich die Versendung einer StatusEmail manuell auszulösen (z. B. 
für Testzwecke). 
Zusätzlich ist es nun auch möglich über die GAServer-Oberfläche die 8 
Ausgangskontakte des Boards über das Internet zu schalten um hier Zusatzgeräte 
im Getränkeautomaten zu aktivieren/deaktivieren. Der Schachtstatus hat nun eine 
"TriState-Meldung" um außer "OK" und "LEER", mit der Meldung "FEHLER", einen 
möglichen "Schachtklemmer" anzuzeigen. Die GAClient-Software bleibt 
auf Version 1.0. Die GAFirmware wurde auf die Version 1.4 angehoben. 
 
15.06.2013: In der neuen Programm-Version GAServer 2.2 
und GAClient 1.1 wurde ein sog. UnixTimeStamp (=Integerzahl im Sekundentakt mit 
Start am 01.01.1970 um 00:00 Uhr; weitere Infos siehe:
http://de.wikipedia.org/wiki/Unix-Timestamp) hinzugefügt. Dadurch lassen 
sich die Logbuchdateien einfacher bzw. ohne zusätzliche Zeitumrechnungen in 
Fremdsystemen/Datenbanken importieren/weiterverarbeiten. Auch die CMNR und TVGNR 
wird nun an die Logbücher mit übergeben. Die GAFirmware bleibt 
auf Version 1.4. 
 
11.07.2013: In der neuen Programm-Version GAServer 2.3 
werden nun auch bei "Schachtklemmern" pro Schacht entsprechende 
Fehlermeldungsemails automatisiert verschickt. Die verschiedenen Mailfunktionen 
"StatusEmail" und "SchachtFehlerEmail" können in der GAServer.ini-Datei 
entsprechende aktiviert/deaktiviert werden. Programm GAClient bleibt auf Version 
1.1 und die GAFirmware bleibt auf Version 1.4. 
 
15.07.2013: In der neuen Programm-Version GAServer 2.4 
wurde ein Button zur Abfrage der aktuellen Schachtbestände/-werte bzw. des 
gesamten Warenwertes im Automaten eingebaut. Ein weiterer Button ohne Funktion 
habe ich auch mal vorgesehen. Es werden nun Fehlermails UND Leermeldmails pro 
Schacht automatisiert verschickt. In der GAServer.ini gab es kleinere 
strukturelle Anpassungen. Programm GAClient bleibt auf Version 
1.1 und die GAFirmware bleibt auf Version 1.4. 
 
17.07.2013: Änderung der GAFirmware auf Version 
1.5. Mit dieser Firmware werden nach einem Neustart des Programms GAServer 2.4 
die initialen Schachtwerte aus dem Board korrekt eingelesen. So wird nun über 
die GAFirmware beim Programmstart unterschieden ob ein Schacht "leer" ist oder 
ein Schachtfehler gemeldet wurde. Da über 8 Eingänge quasi 16 Meldungszustände 
abgefragt werden müssen, wird nun über diese Firmware ein entsprechender Status 
im Board gesetzt, der bei Programmstart von GAServer 2.4 entsprechend ausgelesen 
wird. GAServer bleibt auf Version 2.4. GAClient bleibt auf Version 1.1. 
         | 
       
 
     | 
  
| 
 
 
Hier mal nun ein Snapshot des Purebasic-Programms "GAServer", welches die 
Schachtdaten 
und -Zustände zyklisch aus dem E2000-NET-IO-Board ausliest und protokolliert:
  
 
  
Und hier noch in der typischen 
Windows-Luna-Ansicht (von einer älteren Programmversion): 
  
Und hier mal ein Snapshot der 
Rückmeldung des Purebasic-Programms "GAClient" 
nachdem alle Automaten über eine IP-Adresse/DNS abgefragt wurden: 
  
Und hier noch in der typischen 
Windows-Luna-Ansicht: 
  
(Info: Die PureBasic-Programme wurden von mir unter Windows XP mit SP3 entwickelt und 
getestet!) 
Durch die einfache Portierbarkeit von 
Purebasic-Quellcodes zwischen Windows-, Apple-, Linux- und Amiga-Systemen dürfte 
das Programm auch (mit kleinen Anpassungen im Quellcode; z. B. Pfadnamen) auch 
auf den vorgenannten Betriebssystemen laufen. Auch Windows-Skins wie die 
Luna-Ansicht von XP wird von Purebasic nativ unterstützt und kann über den 
Compiler aktiviert/deaktiviert werden. 
 
Da dieses Programm ein 
spezielles Entwicklungsprojekt, zusammen mit einem Getränkehandel ist, gebe ich 
hier z. Zt. keine detaillierten Informationen, Vollversionen, Demoversionen, 
Handbücher, Quellcodes o. ä. raus. Diese Veröffentlichung dient nur dazu um zu zeigen, was mit dem AVR-NET-IO-Board, der 
E2000-Firmware, der Programmiersprache Purebasic, einer Idee des Getränkehandels 
und natürlich Zeit so machbar ist. 
Fortschritte an an diesem Projekt werde ich von Zeit 
zu Zeit in der o. g. Programmhistorie veröffentlichen.   
Hier handelt es sich sicherlich 
nicht um eine Profilösung (z. B. mit Bussystem) für einen Getränkeautomaten, 
aber ich glaube mir ist hier eine einfache und gute Automatisierungslösung für
 
Getränkeautomaten, Getränkehandlungen mit Automatenverleih oder 
Automatenaufsteller im Allgemeinen gelungen. Davon abgesehen belaufen sich die 
Hardwarekosten für diese Lösung 
sicherlich unter 200 Euro/Automat (AVR-NET-IO-Board, Adapterboard und ein 
kleiner Rechner), 
was diese Lösung für "Bastelinteressierte" und 
"-begeisterte" interessant und umsetzbar
macht.  
Durch entsprechende Anpassungen kann man die Soft- und Hardware 
sicherlich auch 
für andere Automatenfamilien gut nutzen. 
 
Bei Interesse, 
Fragen, Wünsche, Anregungen, Lob oder Kritik könnt Ihr mir gerne eine 
   
 
eMail senden an: Oliver.Schlenker@T-Online.de 
   |