siemens logo modbustcp python titelbild

In dem vorigen Beitrag Mit Python Prozessdaten aus der LOGO!8 auslesen (Snap7) haben wir uns angeschaut, wie wir mit der Bibliothek Snap7 und dem zugehörigen Python Wrapper auf die Prozessdaten der Logo über das S7 Protokoll zugreifen können. Die Logo wurde dabei als Server konfiguriert und unser Python Skript auf dem PC hat als Client Daten gelesen und geschrieben.

In diesem Beitrag werden wir auch auf die internen Daten der Logo zugreifen, jedoch über ModbusTCP. Wir richten die Logo als ModbusTCP Server ein und greifen - auch hier - als Client über ein Python Skript darauf zu. Als Python Bibliothek verwenden wir pyModbusTCP.

Siemens Logo Datenzugriff mit Python und Snap7

Die Steuerung LOGO! 8 (von Siemens) wird gerne bei kleineren Automatisierungsprojekten eingesetzt. Darunter häufig Automatisierung von Maschinen oder Anlagen, aber auch in der Gebäudeautomation oder Lüftungstechnik findet man sie oft vor.

Möchte man nun auf den internen Speicher der LOGO! 8 (z.B. Messwerte von Sensoren oder Werte zur Ansteuerung von Aktuatoren) zugreifen, um Werte zu lesen oder zu schreiben, dann hat man mehrere Möglichkeiten:

  • S7
  • ModbusTCP

Beide Wege können über Open Source Bibliotheken und mittels Python realisiert werden, was die Verwendung der Logo in eigenen IoT Projekten sehr attraktiv macht. In diesem Artikel möchte ich zeigen, wie man mit der Bibliothek Snap7 und dem zugehörigen Python Wrapper auf die Daten in der Logo (via S7 Kommunikation) lesend und schreibend zugreifen kann.

MQTT client Python paho.mqtt.client Quellcode (als Bild)

 

In den Beiträgen "das MQTT Protokoll" und "SIMATIC S7-1200/1500 als MQTT Publisher (Teil 1)" haben wir uns angeschaut, wie das MQTT Protokoll aufgebaut ist und wie wir mit unserer Siemens SIMATIC Steuerung Daten an einen MQTT Broker pushen können. In diesem Beitrag wollen wir uns anschauen, wie wir mit Python und einer geeigneten MQTT Client Bibliothek die Daten von unserer SIMATIC empfangen können - wir implementieren also einen MQTT Client mit der Rolle Subscriber. Als Bibliothek verwenden wir die Eclipse Paho MQTT Python client library