Problem S7 315 CP 343 mit S7Droid für Kenner

OKL

Level-1
Beiträge
143
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Leidensgenossen,

ich verwende eine CPU 315 2AF02 und einen älteren CP343 Ethernet, verbunden mit meiner Fritzbox über LAN. Alles fein. Nun habe ich ein Smartphone mit dem S7Droid drauf. @Home verbinde ich mich mit WLAN, von der Ferne mit einer VPN Einwahl zu meiner Fritzbox. Alles fein. Dennoch gibt es ein Problem. Laufe ich jetzt mit verbundenem S7Droid durch den Garten und verliere die WLAN-Verbindung, dann steigt meine CPU aus. Soll heißen, es blinken alle LEDs gleichzeitig!

Wenn ich mit Intouch auf meine SPS zugreife und gleichzeitig mit dem Droiden, dann gab es auch schon Probleme, dass z. B. der Droid nur jeden zweiten Datenpunkt abfragen/anzeigen kann. Schalte ich dann Intouch aus, geht es wieder.

Das erste Problem nervt tierisch, da ich mittlerweile die komplette Heizung (Mischer, Laderegelung, Holzkessel, Warmwasser, Zirkulation, Ölbrenner etc.), Gartenbewässeerung, Alarmanlage, Historie, Wintergartensteuerung und andere Kleinigkeiten mit der Geschichte steuere. Wenn dann die CPU aussteigt, ist das nicht sonderlich toll. Vor allem wenn man von der Ferne diese nicht neu ausschalten und einschalten kann.

Hat jemand vielleicht eine Idee? Die Softwareschmiede für den Droiden hat bisher keine Lösung. Habe die Kaufversion installiert.

Danke euch.


MfG und schönes Wochenende.

Olaf Kluge
 
Hi,
du kannst mal in den Leistungsdaten nachsehen wie viele S7-Verbindungen dein CP gleichzeitig verwalten kann. Und mal prüfen ob du in der HW-Konfig Verbindungen für bestimmte Protokolle reserviert hast.

Der S7Droid baut nämlich bei jeder Abfrage der Datenpunkte eine Verbindung auf, holt die Daten und trennt die Verbindung wieder. Mir liegt irgendetwas an, dass manche CPUs etwas Zeit brauchen bis die Verbindungsressourcen nach Abbau wieder freigegeben werden. Zumindest war das hier im Forum schonmal ein Thema. Und dann sind irgendwann die Verbindungsressourcen ausgeschöpft und du kannst keine neue Verbindung aufbauen. Aber dass die CPU dann aussteigt ist mir neu.

Intouch (bzw. der Treiber den du nutzt, z.B. den DASidirect) baut beispielsweise nur eine Verbindung einmalig auf, und der Datenaustausch läuft dann die ganze Zeit über diese eine Verbindung. Das ist eigentlich auch der übliche Weg.

Ich habe nur die Free-Version vom S7Droid getestet, da kann man nur einen einzigen Datenpunkt anlegen. Keine Ahnung wie er das bei der kostenpflichtigen Version programmiert hat. Wenn er dort für jeden Datenpunkt eine Verbindung aufbaut, ist das "nicht gerade optimal". Anders lässt es sich nicht erklären warum nur einzelne Datenpunkte gehen.

Angeblich nutzt er ja libnodave. Da er aufgrund der Android-Hardware die mitgelieferte dll nicht nutzen kann, hätte ich eigentlich gedacht dass er beim statischen linken den Quellcode wegen der GPL offenlegen muss, dann könnte man nachsehen was er da so programmiert hat. Hab aber noch nichts gefunden (oder er hat mit Zottel was ausgemacht).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thomas,

laut meiner CPU habe ich 12 Verbindungen, 11 nicht belegt, pg Verbindungen 1 reserviert, 1 belegt, op 1 res., 0 bel., s7basis 8 res. 0 bel. sonstige nicht reserviert, 0 belegt. Den Reiter Kommunikation habe ich leider nicht in der Hardware bei meiner alten CPU (2AF02). Mein CP kann sicher 16 Verbindungen. Es ist eine 343-1EX11-0XE11 V2.3.5.

Die Zykluszeit habe ich bei meinem Droiden auf 5000ms gesetzt. Es scheint aber hauptsächlich ein Problem zu geben, wenn die Verbindung unterbrochen wird. Mein CP runt dann noch, meine CPU blinkt im halbsekunden-Takt mit allen LEDs.

Ich nutze tatsächlich DASSIDIRECT, richtig. Dort taste ich die Variablen aller 1000ms ab. Libnodave verwende ich selbst auf Arbeit, habe damit mit VB/VBA ein Tool erstellt, welches mir Werte aus der SPS abfragt und auch beschreibt. Dabei baue ich die Verbindung nur erneut auf, wenn sie unterbrochen wurde. Vom Entwickler habe ich bisher leider auch keine Auskunft erhalten, wie sich das verhält und ob man das Problem lösen kann. Vielleicht finden wir ja noch etwas heraus. Schön ist es, wenn ich von der Ferne zu Hause etwas bewegen kann (im Urlaub) - möchte aber nicht Angst haben müssen, dass dann meine CPU spinnt und ich dann meine Heizung nicht mehr funktioniert. Wenn alles nicht hilft, muss ich versuchen, auf meiner Fritzbox einen Webserver zu installieren. Nur wie binde ich dann die SPS dort an? Möchte ungern immer einen PC am Laufen haben, sonst wäre das alles kein Problem.

Vielen Dank für die Hilfe.

MfG

Olaf
 
Bei einer instabilen Verbindung weiß man ja nie was so passiert.
Ein Verbindungsaufbau zru SPS benötigt mehrere Schritte bis endlich wirklich SPS-Daten ausgetauscht werden können.
1) Auf TCP Ebene verbinden
2) Auf ISO Ebene verbinden
3) Auf S7 Ebene verbinden
4) Verbindung hergestellt, Datenaustausch kann laufen

Darum ist bei einer instabilen Verbindung die Wahrscheinlichkeit groß dass beim Aufbau schon die Verbindung abreißt. Vor allem wenn immer nur ein Telegramm vom Typ 4) kommt.

Wenn man wissen will warum die CPU sich so anstellt, müsstest du z.B. mit Wireshark mal den Datenaustausch mitschneiden. Das ist leider in der Konstellation nicht so ganz einfach, weil Wireshark auf einem PC laufen müsste und du dementsprechend einen Router mit Diagnose-Port (unwahrscheinlich bei den üblichen Home-Geräten) oder einen Hub (gibts glaub ich garnicht mehr) benötigst.
 
Wenn du prüfen willst ob deine S7Droid Version für jeden Datenpunkt eine erneute Verbindung aufbaut, könntest du auch auf deinem PC mit Step7 wenn du Plcsim hast, das Ganze mit nettoplcsim testen. Dort ist eine kleine Diagnosefunktion integriert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Anhang anzeigen iad-if-lan_23.06.12_2239.rar
Hallo Thomas,

habe derzeit leider kein Wireshark installiert, konnte aber mit meiner Fritzbox natürlich mitschnüffeln. Anbei die Datei, vielleicht kann das jemand überprüfen? Hatte mit dem Droiden gelesen und geschrieben. Ohne Verbindungsabbruch.

Danke euch.


MfG

Olaf

PS: Gegen den Verbindungsabbruch habe ich ja nichts, nur dass meine CPU dann spinnt, ist nicht so schön. Und das passiert nur mit dem Tool in beschriebener Konstellation.
 
Zuletzt bearbeitet:
Hi Olaf,
in deinem Logfile ist leider keine SPS-Kommunikation enthalten.
Welche IP hat denn die SPS, und welche dein Fon?

(Und pass auf was du gerade machst wenn du da mitschneidest, nicht dass da Passwörter drinstehen)
 
Hallo,

ja, hatte nichts anderes laufen. Die SPS hat die 244. Habe gerade informativ (habe keine Ahnung von dem Zeugs) mal Wireshark installiert. Es steht geschrieben "Who is 192.168.3.244...? Mein Phone hat die 235. Nichts zu finden? Hatte gerade noch mal die WLAN-Schnittstelle mitgesniffert, waren aber gleich 80MB. Wieder mit Broadcast und Who is, ... Nix anderes.

Melde mich gleich noch mal...


Viele Grüße

Olaf
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst in Wireshark einen Filter setzen.
Z.B.
ip.addr == 192.168.3.244

In deinem obigen Logfile gibts da nur einen Eintrag eines icmp (Ping), Paketes an die 192.168.3.1

SPS Kommunikation läuft über Port 102. Der Filter dafür wäre:
tcp.port ==102

Du siehst aber nicht was in den Daten drin ist weil Wireshark das Protokoll von Hause aus nicht kennt. Ich habe dafür eine dll geschrieben. Wenn dich das interessiert kannst du dir diese bei sourceforge herunterladen und ins Wireshark plugin Verzeichnins legen.
 
Zurück
Oben