Siemens S7 Verbindungsstatus

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?

Neu verbinden kannst du, indem du die Konfiguration „neu“ übernimmst:
IPS_ApplyChanges - IP-Symcon :: Automatisierungssoftware

Den Status kannst du auslesen: (InstanceStatus)
IPS_GetInstance - IP-Symcon :: Automatisierungssoftware

Du kannst auch ein Skript starten, wenn sich der Status ändert: (ab Version 2.2)

Im Objektbaum: Kern Instanzen -> Event Handler

paresy

Strike, das war der Schubs in die Richtige Richtung.

IPS_ApplyChanges() hatte ich schon in Verwendung.

IPS_GetInstance() in Verbindung mit dem Event Handler ist ne Klasse Kombination. Damit kann man feine Sachen anstellen.

Danke für die schnelle Hilfe.

Noch ein Tipp:

Hier: Systemvariablen - IP-Symcon :: Automatisierungssoftware

Dort steht, dass in dem Skript, welches vom Event Handler gestartet wird, die Variable $IPS_STATUS und $IPS_STATUSTEXT definiert ist :smiley:

paresy

Hi paresey!

Das funktioniert leider nicht! Bekomme immer diese Meldung:

04.06.2014 11:19:35.406 |     0 | ERROR   | ScriptEngine         | FunctionName: IPS_ApplyChanges, ThreadID: 1956, CrashReport: Access violation at address 00750CE7 in module 'ips.exe'. Write of address 00000000

Weiß man schon woran das liegt? :confused:

Hallo IPS-Team,

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:

Clipboard01.jpg

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

Gruß Peri

[b]Hallo IPS-Team,

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]

Da kann ich dem Vorredner nur zustimmen.

Sehe ich auch so! Gleiches auch beim OZW. Gibt workaround und bug wird nicht behoben!

… leider hilft meines Wissens hier kein Workaround wirklich weiter

Ein weiterer Nachteil ist, dass die Datenbank wirre Daten aufzeichnet, wenn die Verbindung unterbrochen wurde …

Könnt ihr bitte die neuste Beta ausprobieren?
IP-Symcon 3.4 Beta #3748

Sobald die AccessViolation auftritt, wird nun folgende Meldung generiert:
Connection crashed. Trying to recover…

Könnt ihr bitte schauen, ob diese Meldung bei euch auftritt, und ob die Verbindung nun immer korrekt geöffnet werden kann?

paresy

Ich bekomme nach dem Update alle 2 Sekunden die Meldung

Timer ID #567 KEINE = Range check error

Hallo bastelfrosch,

magst du noch einmal ein update fahren und testen? Besteht das Problem weiterhin?

Gruß,
gucky

:o
regelmäßig alle 2 Sekunden

gleiche ID 567 aber nun =Integer overflow :confused:

Sollte jetzt gelöst sein. Tut mir leid für diesen überflüssigen Fehler!

paresy

teste dann morgen die Verbindungswiederherstellung mit der S7
Herzlichen Dank :slight_smile:

Hallo

Bei meiner Logo ist es so, dass die Fehlermeldung „Timeout, waiting for PLC response“ mit der neuestee Beta immer noch kommt.

Zusätzlich erscheint diese Meldung auch dauernd, wenn ich die SiemensPLC I/O Instanz deaktiviere.

Darauf habe ich wieder auf die Live Version gewechselt und es ist definitiv so, dass die Meldung nicht erscheint, wenn das interface deaktiviert ist.

Gruess
Erwin

… und IPS wirft auf dem WF wieder die wildesten Werte meiner SPS raus.
nur Dienst beenden und neu starten hilft.
Also leider keine Veränderung :frowning: