Raspberry ---Verbindung---> zu S7-1200

  • Hallo zusammen,


    bräuchte Hilfe bei einem Script.



    Das ist eine Verbindungsabfrage von Raspberry zu der Simatic S7-1200 von Siemens.
    Funktioniert soweit möchte eine Funktion einbauen habe aber keine Idee wie ich es aufbauen soll.
    Bei einer Funktionierender Verbindung kriege ich alle 2s eine Verbindungsbestätigung.
    Sobald ich die Netzwerkleitung ziehe bricht die Verbindung ab, und das Skript wird beendet mit folgender Fehlermeldung:



    No handlers could be found for logger "snap7.common"
    Traceback (most recent call last):
    File "S7.py", line 16, in <module>
    plc.connect('192.168.0.1',0,1)
    File "/usr/local/lib/python2.7/dist-packages/snap7/client.py", line 25, in f
    check_error(code, context="client")
    File "/usr/local/lib/python2.7/dist-packages/snap7/common.py", line 66, in check_error
    raise Snap7Exception(error)
    snap7.snap7exceptions.Snap7Exception: TCP : Unreachable peer



    Ist ja auch verständlich da es kein Verbindung mehr besteht.
    Mein Vorhaben ist:


    sobald die Verbindung abbricht soll das Script wieder nach ca. 5s in die Verbindungsabfrage zurück und nochmal abfragen.


    Hätte da einer eine Idee?

  • Ich würde eine Smarthome-Lösung nutzen.
    Ich selber habe iobroker mit dem S7-Plugin am laufen und kann auch über das Java-Plugin und dem MQTT-Plugin Nachrichten von der DoorPi schicken.
    Aus iobroker zur DoorPi geht über das virtuelle Keyboard oder direkt über eine Url.
    iobroker und doorpi kann auf dem gleichen Raspi laufen. Zur Zeit schicke ich die 3 letzten Klingelbildadressen und den Ruf an iobroker, der schickt mir dann das letzte Bild und den Ruf über Telegramm bei Abwesenheit auf mein Handy.

  • Hallo slawa,
    was hast du genau vor ?
    Ich bin grade dabei ein Programm zu schreiben mit dem ich über eine S7 mit doorpi über Virtuelle Keyboard komuniziere.


    Du mus ein try einbauen




  • Hi Wal, danke für deinen Ratschlag. Mit ioBroker habe ich es noch nicht versucht, wollte erst aber da ich von Skripten wie Python oder Java programmieren nicht viel Ahnung habe, ist der Raspi nur eine externe Peripherie für diverse Sensoren.


    Hi emilio20, mein Vorhaben ist, die Werte die ich von Raspi kriege, mit der S7-1200 weiter auszuwerten. Und da ich mich besser mit der SPS Programmierung wie FUP oder KOP auskenne wäre es die einfachste und günstigste Variante für mich.
    Es werden ca. 15 Raspberry Pi Zero sein die, die SPS ansprechen würden. Werde auch alles mit Netzwerkleitung verdrahten, möchte so wenig wie möglich Funksignale im Haus haben.


    Danke für den Script probiere gleich aus.


    Gruß


    Slawa

  • So, habs jetzt ausprobiert, hatte leider keinen Erfolg gehabt.



    Code
    1. pi@raspberrypi:~ $ sudo python /home/pi/S7.py
    2. File "/home/pi/S7.py", line 7
    3. def main()
    4. ^
    5. SyntaxError: invalid syntax

    Versuche gleich noch Einiges vielleicht kriege ich es hin.

  • Danke es hat jetzt geklappt.


    nach def main() müssten die ":" rein und noch eine Kleinigkeit vor der IP-Adresse das Hochkomma " ' " oder danach ein Anführungszeichen ". Beides ging nicht. Leider :-)


    Wo hast du Python programmieren gelernt? Kann leider nur Skripte lesen und Kleinigkeiten ändern mehr leider nicht.


    Hast mir echt weiter helfen können.
    Wenn jetzt ein Verbindungsfehler auftritt bricht das Script nicht ab und arbeitet weiter die Funktion ab.
    Das heißt für mich jetzt wen meine SPS mal keine Verbindung hat muss ich die ca. 15 Raspis nicht neustarten.


    Danke noch mal hat mir sehr weiter geholfen.