Verbindung mit Python-LibNoDave und einer Siemens Logo 0BA7

Um mittels Python eine Verbindung zu einer Siemens LOGO! 0BA7 herstellen zu können, sind einige Schritte erforderlich. Ich persönlich habe diese unter Linux (Debian) durchgeführt. Später soll dies alles auf einem Raspberry PI (oder ähnliches Board) ebenfalls lauffähig sein.
Prinzipiell ist es allerdings bei der Verwendung von Python und LibNoDave egal, welches OS verwendet wird. Also nun zum eingemachten.

LibNoDave und Python-LibNoDave heruntergeladen und von den Quellen kompilliert*. Mit folgendem Beispiel-Coding kann man eine erste Verbindung zur LOGO! herstellen.

from libnodave import *

dave = libnodave()
# IP-Adresse der LOGO - Port ist immer 102
dave.open_socket('10.173.24.100', 102)
# Default-Werte (geklaut aus dem Demo-Programm)
dave.new_interface('IF1', daveProtoMPI, daveProtoISOTCP, daveSpeed187k)
# Timeout-Wert von 10 Sekunden? Doku ist das halbe Leben... :)
dave.set_timeout(10)
# Verbindung zur CPU aufbauen, MPI, Rack = 1, Slot = 0 (LOGO benötigt genau diese Werte)
dave.connect_plc(2, 1, 0)
# Aktuellen Wert des ersten Ausgangs (Q1) lesen 
print('output Q1 value %s' % dave.get_output_byte(0)) 
# Verbindung wieder schliessen - es kann nur eine offene Verbindung geben
dave.disconnect()

Hoffe es hilft jemanden – habe mir diese paar Zeilen Quelltext selbst mühsam aus dem wirren C-Coding des Demo-Programms zusammenstöpseln müssen. Frustrationspotential definitiv vorhanden. 😀

Update:

LibNoDave von den Quellen kompillieren bedeutet den „üblichen make-dreisatz“.

git clone git://github.com/netdata/libnodave.git
cd libnodave
make
sudo make install

Bei Python-LibNoDave sieht es ähnlich etwas anders aus.

git clone git://github.com/netdata/python-libnodave
python setup.py install