Error: [527] Timeout when waiting for PCL Response mit Logo

Hi,

zur Zeit scheint die Verbindung zu meiner Logo regelmäßig abzuschmieren und im Meldungsfenster sind dann nur noch die Fehlermeldungen.
Der Instanztest sagt aber das alles i.O. ist.

Array
(
    [ConnectionID] => 0
    [InstanceID] => 44313
    [InstanceStatus] => 102
    [LastChange] => 0
    [ModuleInfo] => Array
        (
            [ModuleID] => {1B0A36F7-343F-42F3-8181-0748819FB324}
            [ModuleName] => Siemens PLC
            [ModuleType] => 1
        )

)

Leider stellt IPS diesen Fehler also nicht von sich aus fest, obwohl die Meldungen natürlich auftauchen.
Somit ist auch der Status der Logo nicht aktuell. Wenn ich jetzt etwas schalten möchte habe ich folgendes versucht:

$status = GetValue(59143 /*[Logo\Merker\Pool\Value]*/);
If($status == true)
   $result = S7_WriteBit(44680 /*[Logo\Merker\Pool]*/,false);
   if ($result==false) {
	   S7_SetOpen(44313 /*[Siemens Logo]*/, false);
	   IPS_ApplyChanges(44313 /*[Siemens Logo]*/);
	   IPS_Sleep(500);
	   S7_SetOpen(44313 /*[Siemens Logo]*/, True);
	   IPS_ApplyChanges(44313 /*[Siemens Logo]*/);
	   S7_WriteBit(44680 /*[Logo\Merker\Pool]*/,false);
	}
   
else if($status == false)
	$result = S7_WriteBit(44680 /*[Logo\Merker\Pool]*/,true);
   if ($result==false) {
	   S7_SetOpen(44313 /*[Siemens Logo]*/, false);
	   IPS_ApplyChanges(44313 /*[Siemens Logo]*/);
	   IPS_Sleep(500);
	   S7_SetOpen(44313 /*[Siemens Logo]*/, True);
	   IPS_ApplyChanges(44313 /*[Siemens Logo]*/);
	   S7_WriteBit(44680 /*[Logo\Merker\Pool]*/,true);
	}

Bringt aber leider auch keine Abhilfe!? Erst wenn ich die Verbindung inaktiv setze und wieder reaktiviere, dann läuft es … bis zum nächsten „Absturz“. Leider habe ich zur zeit auch keinen Plan was den Fehler verursacht.

Besteht keine Möglichkeit zumindest die fehlerhafte Verbindung Systemintern per IPS zu erkennen ?? :confused:

Gruß
Jens

Hallo Tetrapack,

dieser Thread(derzeit genau unter Deiner Anfrage) beschäftigt sich gerade mit dem gleichem Thema. Dort sind einige Lösungsmöglichkeiten aufgezeigt…

Joachim

Hallo Joachim,

danke für den Hinweis, allerdings kann es doch nicht sein, das IPS die fehlende Verbindung nicht selbst erkennt und zumindest als fehlerhaft markiert bzw. den Instanzstatus dementsprechend ausgibt!?

Hallo Tetrapack,

in dem Thread ist auch der Link auf einen Hinweis von Paresy. Das scheint mir derzeit der richtige Weg zu sein (obwohl ich es nicht mit Bestimmtheit weiß!) . Leider weiß ich aber noch nicht genau, wie ich denn mit dem EventHandler diesbezüglich genau umgehen muss (siehe dazu Posting #16im oben genannten Thread)…

Joachim

Ja klar, aber ich habe doch schon geschrieben, das sich der Instanzstatus NICHT ändert.

IPS_GetInstance() gibt als Ergebnis:

   [InstanceStatus] => 102

Und 102 sagt in dem Fall eigentlich aus das alles in Ordnung ist.
(http://www.ip-symcon.de/service/dokumentation/befehlsreferenz/instanzenverwaltung/ips-getinstance/)

Von daher nutzt ein EventHandler in dem Fall nix, da sich der Status der Instanz nicht verändert!

Gruß
Jens

Paresy, Steiner? Gibts dazu ne Anmerkung von euch ? Ist das ein Bug oder so beabsichtigt ? :confused:

Tja, es ist mittlerweile September und weder hier noch im Bug-Tracker ist eine Rückmeldung erfolgt, schade eigentlich :confused:

Das Problem an sich ist immer noch vorhanden (3.1#3456 ) …

Gruß
Jens

Sorry, dass es so lange gedauert hat. Im Prinzip gibt es keine richtig schöne Lösung, aber ich habe eine Idee für einen Workaround.

Du kannst ein Skript erstellen, welches z.B. alle 10 Sekunden die Instanz direkt im Skript abfragt. Wenn nun explizit ein Fehler auftritt, dann kannst du den Reconnect starten.


if(@S7_RequestRead($id) === false) {
 //reconnect hier
}

paresy

Danke für die Antwort, aber der Workaround mit dem Reconnect funktioniert nicht.
Wie weiter oben beschrieben geht es nur, wenn ich den Haken manuell raus nehme und wieder setze!

Gruß
Jens


       S7_SetOpen(44313 /*[Siemens Logo]*/, false);
       IPS_ApplyChanges(44313 /*[Siemens Logo]*/);
       IPS_Sleep(500);
       S7_SetOpen(44313 /*[Siemens Logo]*/, True);
       IPS_ApplyChanges(44313 /*[Siemens Logo]*/);

Dieser Teil macht aber genau das selbe, als wenn du es per Hand auslösen würdest!?

paresy

Wenn ich wüsste warum das nicht klappt, dann müsste ich mich ja nicht damit herumärgern :wink:
Möglicherweise hängt das mit dem „nicht erkennen“ der fehlerhaften Verbindung zusammen ?

Nachdem das nun schon eine Weile her ist, hatte ich nicht noch mal extra einen Reconnect ausprobiert.
Ich habe jetzt gerade deinen Vorschlag benutzt und ein erster Versuch scheint soweit erfolgreich gelaufen zu sein.
Vorsichtshalber habe ich noch einen Counter eingebaut, um mal zu checken wie oft das passiert.


// Instancetest Logo
if(@S7_RequestRead(59765 /*[Logo\Merker\Garagentor]*/) === false) {
 LogoReset(44313 /*[Siemens Logo]*/);
 $zaehler = GetValue(45451 /*[Logo\Fehlercounter]*/);
 
 SetValue(45451 /*[Logo\Fehlercounter]*/,$zaehler + 1);
 SetValue(36318 /*[Logo\Letzter Fehler]*/,21108);
}
//*************************************************************************************************************
// Führt einen Reset der LOGO-Anbindung durch

function LogoReset($ObjektID)
    {
   S7_SetOpen($ObjektID, false);
   IPS_ApplyChanges($ObjektID);
   IPS_Sleep(500);
   S7_SetOpen($ObjektID, True);
   IPS_ApplyChanges($ObjektID);
   Return;
   }

Ich habe das selbe Problem mit meiner S5, lief mehrere Monate ohne Problem bis ich Windoof neu installieren musste und ich den IPS Ordner kopiert habe…
Hatte das Problem eher mehr auf die XP Version geschoben.

…das Problem tritt wohl insbesondere dann auf, wenn die Netzwerkverbindung getrennt wurde. Will man dann einen Schaltvorgang aus, dann kann man es mit dem obrigen Skript zurücksetzen. Was jedoch nicht funktioniert - da der obrigen Fehler zwar in den IPS-Meldungen angezeigt, aber nicht softwaretechnisch erfasst werden kann - dass die Statusmeldungen nicht aktualisiert werden…

Joachim

Bei mir lief die Komunnikation zwischen meiner S5 mit einem LAN++ Modul über das Firmennetzwerk, rund 3 Monate.
Nach dem Umzug auf ein andres XP
jetzt tritt das quasi täglich auf, nachts, unterschiedlich eben

Wenn ich Zeithabe muss ich mich mal um dieses problem kümmern, by the way ich frage da zur zeit nur ca 15 Variablen ab

Hallo, bei mir laufen derzeit 20 Logo’s im Firmen-LAN mit IPS 3.0.
Läuft seit 3.0 wirklich stabil, seit Monaten, wobei ich aber immer wieder mal IPS beende und neustarte.
Beim Neustart werden die Logo’s mit IPS_ApplyChanges immer ohne Probleme verbunden.

Problem ist nur, wenn die Netzwerkverbindung unterbrochen wird, zB. durch Ziehen des Lankabel’s.
Dann hilft meistens nur Netz trennen von der Logo und gleichzeitig Neustart von IPS.

mfg
cäsar

Aktuell hab ich bei mir jetzt Step5 in der direkten Online Verbindung zur AG und es sind seit dem keine Fehler aufgetreten.
Denke das es durch diese konstante stabile Verbindung zu keinem Datenabruch zwischen AG und IPS kommt, werde die Sache weiter beobachten

Dann simulier mal einen Netzwerkabbruch (einfach Kabel heraus ziehen) und stell danach die Verbindung wieder her … ohne dazwischen etwas zu stoppen oder zu starten.

Wenn ich das ausführe dann kommt diese Meldung

Neuverbinden [Siemens PLC] fehlgeschlagen = Cannot open Port

und ist als Fehlerhaft makiert.
Hab ich da irgendwas falsch gemacht oder muß man da noch irgendetwas einstellen?

Gruß
Stefan

Manchmal hilft nur ein Neustart von IPS oder Logo aus- und wiedereinschalten.

mfg

Hallo

Nach einem Netzwerkunterbruch oder einem Software Download auf die Logo 8 kann ich die Verbindung zwischen IPS & Logo nur noch herstellen, wenn ich IPS komplett herunterfahre und neu starte.

Der Versuch, die Verbindung über die Siemens PLC I/O Instanz herzustellen oder via Script endet jedes mal in einem:
"Access violation at address 006FAFB in module ‚ips.exe‘. Write of address 00000000.

Gibt es da Abhilfe?

Danke
Erwin