SysSockClose Raspberry PI

Begonnen von mg, 01. Juni 2016, 10:22:02

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

mg

Hallo,

Ich verwende derzeti Oscat Network 130 mit Codesys auf einem Raspberry pi. Ich versuche mit dem Baustein IP_Control einen UDP server zu erstellen (Mode 3).
Nach einem Komplettdownload funktioniert es nicht mehr. mit "netstat -a" seh ich, dass der Ports bereit geöffnet ist. Ich vermute, dass der Baustein IP_Control versucht einen bereits geöffneten Port mit "SysSockOpen" zu öffnen. "SysSockOpen" liefert noch einen korrekten Wert zurück. Erst bei SysSockBind kommt der Fehler 519 -> Provided address already in use.

Danach Rutscht Ip_Controler in C_Close und versucht besagten Port zu schließen. Aber anscheinend haut auch das nicht hin.


Ich bin mir nicht Sicher ob es sich um einen Codesys/Oscat oder Anwenderproblem handelt. Leider wird der Port auch nicht geschlossen wenn ich über längere Zeit das "c_enable" auf false setze. Erst beim Reboot oder beim kill des Codesys Tasks wird der Port geschlossen..

Weiß jemand weiter ?

Danke
mg

peewit

die von mir herausgegebene network.lib für codesys ist nur auf einigen codesys 2.x systemen getestet
da der ip_control ein hardwareabhängiger baustein ist, muss dieser für die jeweilige Plattform so fern sie von "normal" abweicht
extra angepasst bzw. getestet werden

Hier im forum kannst du auch eine codesys 3.x version finden, wobei ich dazu keine aussage machen kann inwieweit diese version auch sauber
funktioniert.

auf der codesys homepage kannst du auch eine network.lib für codesys 3.x finden
 
bisherige plattformen hatten das problem das bei aktiven tcp-verbindungen am besten kein neustart bzw. online ändern gemacht werden sollte !
immer vorher schauen das alle verbindungen abgebaut sind denn ansonsten bleiben diese port als leichen belegt

mg

Hallo,

Ich habe mich an den Codesys Support gewendet und der hat mir den Tip gegeben an den Baustein eine "FB_Exit"-Methode anzuhängen.
Ich habe daraufhin den Inhalt von "C_CLOSE" in diese FB_Exit Methode kopiert und jetzt funktioniert es.

danke

peewit

schon das es jetzt klappt

kannst du das in irgendeiner form für die anderen user genauer beschreiben und dokumentieren
(Grafik oder bausteinexport )

mg

Natürlich.

Im Anhang findest du den exportierten Baustein und ein Bild wie man solche Methoden hinzufügt.
Der Code in "FB_EXIT" entspricht den Zeilen 222-237 des IP_Control -Bausteins.

Codesys Hilfe zu FB_EXIT:
Die Methode wird für alle deklarierten Instanzen des Funktionsbausteins vor einem erneuten Download, bei einem Reset oder während eines Online Change für alle neuen oder gelöschten Instanzen aufgerufen.



[gelöscht durch Administrator]

annD

Hallo mg,

ich denke, ich habe beim Codesys 3.5.9.40 auf einem Wago 750 dasselbe Problem. Bei einem Online-Change läuft alles weiter - aber nach einem neuen Download bzw. einem Reset erhalte ich beim  IP_CONTROL den Error 33554432 (decimal) bzw. 16#02000000 (hexadecimal). Es hilft nur ein Kaltstart der Steuerung. Sonst habe ich beim IP_CONTROL unter v3.5 keine Fehler festgestellt.

Muss ich zum Einfügen dieser Methode unbedingt den IP_CONTROL in mein Projekt kopieren oder gehen solche Methoden auch über die Library?

Gruß annD

RCD

Hallo,
ich habe das gleiche Problem.
Doch leider kann ich das Bild und den Anhang von mg nicht mehr sehe.
Dort steht [gelöscht durch Administrator]
Wer kann helfen?

Besten Dank!

Gruß Stefan