Der „Prototyp“ nimmt Gestalt an

In den vorangegangenen Tagen habe ich einzelne Module getestet und geschaut, ob diese mit den vorliegenden Einstellungen funktionieren und wo auf was geachtet werden muss. Da aber einzelne Module eher ungünstig als ganzes Programm funktionieren, war es an der Zeit, alle Teilprogramme in einem zu verheiraten und mal zu schauen, was passiert (und zu hoffen, das nichts in Flammen aufgeht).

Zu diesem Zweck musste natürlich zuerst ein Datenbaustein angelegt werden, der eine Datenplatzhalter enthält und nicht optimiert ist.

Anschließend ging es zurück zur IDE Geany, um das Programm in Python zu schreiben. Unten im Beitrag ist der Code nochmal soweit komplett aufgeführt, aber ich erläutere diese nochmal vorab:

Es werden alle bisher erwähnten Bibliothek benötigt – als da wären: busio, snap7, adafruit_dht, adafruit_ads1x15.ads1115 und die Klassenfunktion .analog_in.

Der Verbindungsaufbau erfolgt auf gleichem Weg wie in den Testläufen auch, allerdings nun in einer gewissen Reihenfolge, um die Daten sinnvoll verarbeiten zu können. Demnach werden zuerst alle Sensoren abgefragt und deren Werte in entsprechenden Variablen gespeichert. Anschließend wird die Verbindung zur SPS aufgebaut und die Daten werden an den dafür vorgesehenen Plätzen in den Datenbaustein geschrieben – hier ist gleichzeitig gut zu sehen, dass eine Datentyp-Umwandlung vorgenommen werden muss, da die Werte als float-Datentyp im Raspberry Pi ankommen, allerdings als real-Datentyp weitergegeben werden müssen. Daher erfahren die Temperatur, die Luftfeuchtigkeit und die Bodenfeuchtigkeit hier eine Typenumwandlung.

Schließlich werden die Daten auch nochmal in der Konsole zu Kontrollzwecken ausgegeben. Innerhalb der SPS ist ein kleines Programm, das einen binären Datenpunkt im Datenbaustein setzt, sobald die Temperatur einen gewissen Wert überschreitet. Anschließend wird der Wert an den Raspberry Pi zurückgegeben, der in quasi klont und diese Daten dann wieder an die SPS zurückspielt.

In diesem Programm sind alle grundlegenden Elemente enthalten, die für den späteren Ablauf wichtig sind.