Kommunikation zwischen drei Raspberry Pi3

  • Hallo zusammen,


    für ein Projekt möchte ich drei Raspberry Pi3B miteinander kommunizieren lassen.


    Pi3B Nummer 1 liest aus einer SPS mittels Ethernet bestimmte Variablen aus einer Siemens S7-1500.

    Pi3B Nummer 2 und 3 steuern jeweils über einen BrickPi3 Lego Mindstorms Sensoren und Aktoren.


    Ich brauche nun eine Kommunikationsmöglichkeit, wodurch alle Pi3B auf die Variablen zugreifen können und lesen sowie schreiben können. Wichtig ist, dass die Kommunikation drahtlos funktioniert.


    Da ich aktuell noch nicht so im RaspberryPi und Python Thema bin, wollte ich mal nachfragen, welche Ansätze und vielleicht auch einfachen Lösungen ihr vorschlagen würdet.


    Vielen Dank schonmal und beste Grüße


    Friede :)

  • Go to Best Answer
  • wodurch alle Pi3B auf die Variablen zugreifen können und lesen sowie schreiben können.

    Lesen: MQTT subscribe

    Schreiben: MQTT publish


    Dazu brauchst Du dann noch einen MQTT Broker. mosquitto ist schnell aufgesetzt und laeuft perfekt auf einer Raspi ;)

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

    • Best Answer

    Die S7-1500 kann OPCUA-Server betreiben. Eine Übersicht, was die einzelnen CPUs können, steht hier: https://support.industry.sieme…d-s7-1200-?dti=0&lc=en-US


    Ich nutze z.B. die 1512C 1-PN und dort ist die kürzeste Abtastrate 100 ms.

    Nicht gut, wenn man wie ich damit eine Simulation verbinden möchte.

    Komplexe Prozesse lassen sich schlecht zeitlich aufeinander abstimmen, wenn man nur alle 100 ms neue Daten bekommt.


    Wenn man nur Visualisieren möchte und langsame Prozesse steuern, ist OPCUA gut geeignet.

    Möchte man hingegen extern etwas zeitlich genau steuern, geht das mit OPCUA nicht bzw. ist es von der CPU abhängig.


    Mit MQTT komme ich ohne Probleme auf 10 ms. Ich verwende den LMQTT_Client von Siemens.

    Siemens stellt auch ein Beispielprojekt zur Verfügung.


    Eine ziemlich alte Methode, um Daten aus der SPS zu bekommen, ist die get/put-Methode über das S7Online Protokoll.

    Für Python gibt es die Bibliothek snap7, die das S7Online-Protokoll verwendet.


    Eine weitere Möglichkeit zur Kommunikation ist z.B. Modbus. Das Protokoll ist von 1979 und ist konzeptionell so gestaltet, dass man diskrete Eingänge, Coils, Input Register und Holding Register nutzen kann.

  • Danke DeaD_EyE für deine konstruktiven Vorschläge.

    Wir besitzen ebenfalls eine 1512C 1-PN. Ich möchte per LAN-Kabel und der Snap7 Bibliothek mit dem einen Raspberry die Variablen auslesen und schreiben. Gibt es dazu irgendwo Beispielprojekte oder sollte ich das eher mit MQTT versuchen? Die Abtastrate der Variablen ist nur ca. jede Sekunde notwendig, also das sollte kein Problem sein.


    Vielen Dank schonmal.


    Gruß Friede