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