Habe bei mir im Haus eine Siemens S7 Steuerung verbaut. IP-Symcon soll die Visualisierung übernehmen. Die Verbindung besteht, Daten werden auch ausgetauscht.
Wärend der ersten Testwochen habe ich einige Male das Problem gehabt, das IPS die Verbindung zur Steuerung verloren hat. Also habe ich Stumpf versucht jeden Tag um Mitternacht die Verbindung zu trennen und wieder auf zu bauen. Dies funktionierte aber auch nicht zuverlässig. Mit S7_GetOpen() und S7_SetOpen() wird ja lediglich die Verbindungsherstellung aktiviert. Ob tatsächlich eine Verbindung besteht sieht man nur im Modul selbst oder in der Baumansicht an Hand des roten Ausrufezeichen. Gibt es ein Möglichkeit diesen Status auszulesen?
Man könnte auch noch versuchen eine bestimmte Variable von der Steuerung zu lesen. Wenn der OK ist, dann ist auch die Verbindung OK. Aber diesen Schritt wollte ich mir eigentlich sparen, da IPS ja eigentlich schon weiß, das die Verbindung nicht vorhanden ist. Oder gibt es noch einen anderen Workaround um vor dem lesen / schreiben von Daten zur Steuerung sicherzustellen, das ein Verbindung besteht?
Ich versuche es nun nach fasst einem Jahr wieder. Es gibt nach wie vor bei einer S7-Verbindung das Problem, dass diese nach einem Unterbruch nicht wieder aufgebaut werden kann. Auch mit den Systemfuktionen „IPS_ApplyChanges“ und dergleichen hat es immer wieder eine Fehlermeldung zur Folge. Momentan versuche ich es mit so einem Skript:
$testbit = GetValueBoolean(13494 /*[S7\ConnCheck\Value]*/);
$error = S7_WriteBit(13524 /*[S7\ConnCheck]*/,true);
#echo "
"."Verbindung hat keinen Fehler: Status ".$error;
//Falls Schrieben des Testbits nicht erfolgreich, Verbindung neu initialisieren
if ($error == 0) {
S7_SetOpen(36640 /*[Siemens S7]*/, false);
IPS_ApplyChanges(36640 /*[Siemens S7]*/);
IPS_Sleep(5000);
S7_SetOpen(36640 /*[Siemens S7]*/, true);
IPS_ApplyChanges(36640 /*[Siemens S7]*/);
#echo "Fehlerschleife wurde durchlaufen";
}
Es wird jedoch immer wieder diese Meldung generiert:
Auch wenn ich dann unter den I/O Instanzen die Verbindung manuell wieder aktivieren will bekomme ich diesen Fehler. Einzige Abhilfe schafft hier das neustarten des IPS-Dienstes.
Liebes IPS-Team,
Ich bitte um dringende Hilfestellung bei diesem Problem.
Wir haben dieses Problem auch immer wieder - leider keine Lösung. Bei anderen Instanzen (z.B. Modbus) wird automatisch wieder neu verbunden, wenn das Gerät wieder erreichbar ist. Es wäre schön, wenn dies bei S7 auch so wäre.
Bei uns werden ab und zu Steuerungen kurzzeitig aus und wieder eingeschalten, was sich bei uns nicht vermeiden lässt, da es sich teilweise um Maschinen handelt. In 9 von 10 Fällen funktioniert appy_changes, irgendwann kommt dann halt doch die angesprochene Fehlermeldung.
Im Einsatz sind ca 20 S7 300er diverser Typen - alle immer mal wieder mit diesem Problem. Auch wir wären an einer Lösung dringend interressiert
Das dargestellte Problem ist schon eine beachtliche Zeit allgegenwärtig und würde sich freuen aus dem Weg geräumt zu werden.
Leider muss ich feststellen, dass IPS in dieser Richtung seit längerer Zeit keinerlei Ambitionen daran legt. Mir ist bewusst, dass es auch andere Baustellen gibt und eine Weiterentwicklung stets vorangetrieben werden muss. Dennoch ist es für mich nicht nachvollziehbar, dass nach so einer langen Zeit keinerlei Feedback kommt bzw. eine Roadmap wann das Problem beseitigt werden kann.
Wirklich Schade, die User in dieser Hinsicht völlig im dunkeln stehen zu lassen :mad:[/b]