IFNOTbInitTHEN
  SysCallbackRegister(INDEXOF(ResetCallback), EVENT_BEFORE_RESET);
  bInit :=TRUE;END_IF
wird also einmal bei Start ausgeführt.
in ResetCallback steht (jetzt)
(* IF dwEvent = EVENT_BEFORE_RESET THEN *)Â Â IFUDPProducer.diSendSocket<>-1THENÂ Â Â Â SysSockClose(UDPProducer.diSendSocket);Â Â END_IFÂ Â IFUDPConsumer.diRecvSocket<>-1THENÂ Â Â Â SysSockClose(UDPConsumer.diRecvSocket);Â Â END_IF(* END_IF *)
Die dwEvent IF habe ich rausgeworfen.
Im Taskkonfigurator SystemEreignisse habe ich nun bei:
STOP
Before Reset und
Shutdown - das "Hakerl" auf ON gesetzt und rechts die ResetCallback eingetragen.
Die ersten Tests zeigen nun keinen Fehler mehr.
Werde das nun weiter ausfeilen.
Danke für den Hinweis!
kurt
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
habe das 3S DemoBeispiel zur (UDP) Socket Kommunikation und teste
lokal am PC unter XP mit der PLCwinNT vom Dez 06.
Das läuft auch, aber...
wenn ich mein Codesys Programm ergänze und bei Download ALLES
neu runterladen auswähle, dann bekommt der UDP Consumer, in
diRecvSocket immer -1 und kein funktionierende Verbindung zum Port.
Analyse hat ergeben, dass SysSockBind immer false liefert.
Wenn ich die Portnummer verändere, dann funktioniert das Ganze wieder,
bis zum nächsten kompletten Download.
Beheben läßt sich das nur wenn ich PLCwinNT mit Shutdown schließe und
dann erneut starte.
Den selben Effekt habe ich auch auf einem CE Target - reboot erforderlich.
Komischerweise gibt es das Problem beim UDPproducer nicht.
FRAGE:
wie lässt sich dieser Effekt vermeiden, beheben etc..., sodass nach
einem komplett Download ohne zumachen der PLCwinNT der Port
SPS seitig nicht blockiert bleibt.
kurt
Hi
Wurde der Socket VOR dem Update geschlossen oder ist der noch verbunden/gebunden.
Im Beispiel ist eine ResetCallback programmiert, dabei wird
IF dwEvent = EVENT_BEFORE_RESET THEN
der/das ? Socket "geClosed".
..aber habe gerade gesehen, dass die in der Taskkonfig unter Events nicht eingeklinkt ist!
kurt
Habe geprüft:
im PLC_PRG steht
wird also einmal bei Start ausgeführt.
in ResetCallback steht (jetzt)
Die dwEvent IF habe ich rausgeworfen.
Im Taskkonfigurator SystemEreignisse habe ich nun bei:
STOP
Before Reset und
Shutdown - das "Hakerl" auf ON gesetzt und rechts die ResetCallback eingetragen.
Die ersten Tests zeigen nun keinen Fehler mehr.
Werde das nun weiter ausfeilen.
Danke für den Hinweis!
kurt
Hi
Dafür ist das Forum da