Logo! with SMT50 example

This is an example using Logo! and SMT50 for my German gardener friends (therefore written in German).

Eine Bewässerungssteuerung mit der Logo benötigt folgende Komponenten:

  • Bodenfeuchtesensoren (hier SMT50)
  • Logo Steuerung (hier Logo8!24RCE)
  • Ventile (z.B. 24V Magnetventile von Hunter)

Eine sinnvolle Bewässerungslogik basiert auf einem Zeitprogramm, das jedoch bei zu hoher Bodenfeuchte unterbrochen wird. Das Zeitprogramm bewässert beispielsweise morgens und abends zu bestimmten Zeiten.

Als Bodenfeuchtesensor wird der SMT50 von TRUEBNER verwendet, der analoge Spannungssignale für Bodenfeuchte und Temperatur ausgibt. Die Ventile zur Bewässerung werden über Relaisausgänge der Logo gesteuert.

In diesem Beispiel soll nur ein Bodenfeuchtesensor SMT50 verwendet werden. Das Display der Logo soll sowohl die Bodenfeuchte (vol. Wassergehalt in %) und die Temperatur in °C anzeigen. Der Temperatursensor im SMT50 gibt eine Spannung aus, die gemäß der Kennlinie im Datenblatt in eine Temperatur umzurechnen ist. Beispielsweise ergeben 20°C eine Spannung von 0,6 V. Man kann das leicht mit einem Multimeter überprüfen. Dazu verbindet man den SMT50 mit einer Spannungsversorgung (braun: +4 bis +30V, weiß: Masse) und misst dann mit dem Multimeter die Spannung zwischen dem grünen Anschluss und Masse. Diese analoge Spannung kann an die Logo anlegt werden. Bei der Programmierung der Logo wird dann ein analoges Eingangselement benötigt, so wie im folgenden Bild gezeigt.

Der Messbereich der analogen Eingänge der Logo geht von 0 bis 10 V. Ein AD-Wandler bildet diesen Spannungsbereich auf Zahlen zwischen 0 und 1000 ab, die im Logo Programm weiterverarbeitet werden können. Über den Webzugriff der Logo kann man die aktuellen Messwerte anschauen. Beispielsweise wird in diesem Bild der Messwerte 70 angezeigt. Der SMT50 wurde dabei an den Analogengang 1 angeschlossen.

Der Wert 70 entspricht dabei 0,7 V. Dabei muss man jedoch die Belastung des SMT50 durch den vergleichsweise niedrigen Innenwiderstand der Logo berücksichtigen.  Es bildet sich ein Spannungsteiler aus dem Innenwiderstand des SMT50 (10 kOhm) und dem Eingangswiderstand der Logo (ca. 80 kOhm) aus, der zu einem reduzierten Spannungsmesswert führt. In einem Beispiel soll das erläutert werden. Wenn man den SMT50 zuerst nicht an den Analogeingang anschließt, so kann man bei der Temperatur vom 27,6°C eine Spannung von 0,776 V messen. Schließt man den SMT50 jetzt an die Logo an und misst wiederum mit einem Multimeter an den Eingangsklemmen der Logo, so hat sich die Spannung auf 0,690 V erniedrigt. Dies liegt am Spannungsabfall im Ausgangswiderstand des SMT50, da ein gewisser Strom fließt. Man kann diesen Spannungsabfall in der Logo durch eine entsprechende Verstärkung kompensieren. Die gemessene Spannung muss um den Faktor 0,776/0,690=1,124 verstärkt werden. Dazu passt man die Werte im Analogeingangsblock wie folgt gezeigt an (Gain auf 1,12, da nur 2 Nachkommanstellen möglich).

Zusätzlich wurde noch ein Offset eingetragen. Dieser Offset ist notwendig, da Kennlinie gegenüber dem Nullpunkt verschoben ist (0°C entsprechen 0,5V = 50 AD Wandler Werte). Berücksichtigt man eventuelle Toleranzen des Temperatursensors durch Kalibrierung mit einem Referenzthermometer, so kann man den Offset entsprechend vom Sollwert 50 verändern (hier 53).

Schließt man an den Analogeingang 2 den gelben Draht an (Feuchteausgang des SMT50), so benötigt man die im nächsten Bild gezeigte Umrechnung.

Der Faktor 1,85 rührt einmal von dem Spannungsteiler und zweitens von der Umrechnung der Spannung in Feuchte (3 V entsprechen 50% Wassergehalt).

Eine möglches Gesamtprogramm ergibt sich wie folgt:

Es werden 2 Analogsignale eingelesen (Temperatur und Feuchte), die beide auf dem Logo Display angezeigt werden. Dazu muss die Displayausgabe onfiuriert werden.

Darüber hinaus wird eine Zeitschaltuhr verwendet, die das Ventil (Relaissausgang Q1) steuern soll.

Die Bewässerung soll jedoch nur dann aktiv sein, wenn die Bodenfeuchte einen bestimmten Wert unterschritten hat. Dazu wird ein Schwellwertschalter verwendet.

Da bei Überschreitung der Feuchte die Bewässerung ausgeschaltet werden soll, ist ein zusätzlicher Inverter notwendig. Die UND-Verknüpfung gibt das Relais für die Bewässerung nur frei, wenn sowohl die Bewässerungszeit aktiv ist als auch die Bodenfeuchte unter einem bestimmten Wert liegt.

 

 

 

 

 

 

Logo! plc for irrigation control

The Logo! by Siemens is a pretty simple controller which can be used for irrigation control.

The version I have has 4 digital inputs (e.g. for a fill level switch), 4 analog inputs (e.g. for SMT100 soil moisture sensor) and 4 relay outputs (e.g. magnetic valves). For small installations this may be sufficient and a pretty low cost solution. I am still struggling with the web based control. The Logo! has less options than a full-sized plc, but price performance ratio is quite well.

 

Charting libraries

"Grandma: What is the best charting lib for webbased progammering?"  asked my grandson a few days ago and of course, granny can always give a good advice. I tried a bunch of charting libs over the past decade and happily share my experience. The blockbuster d3.js does everything you want, but the learning curve is quite steep. highcharts is definitely a good choice but my favourite charting lib is amcharts. Why? There is a simple reason. In environmental data visualization you usually have time series of data with different physical quantities like temperature, moisture, humidity and so on. So you do need multiple value axes which is quite easy to implement in amcharts. The only thing still missing and hopefully to come is dynamic loading of big data.