Autor Thema: MB_SERVER: Erneuter Verbindungsaufbau scheitert  (Gelesen 8316 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

BeCe

  • Gast
MB_SERVER: Erneuter Verbindungsaufbau scheitert
« am: 03. Januar 2012, 10:52:01 »
Hallo Oscat Community,

ich benutze den FB "MB_SERVER" auf einem WAGO Controlpanel mit Targetvisualisierung. Die Modbus Kommunikation funktioniet bei Tests mit "Modbus Poll" als Master problemlos. Jedoch wird die Verbindung getrennt und dann anschliessend ein neuer Verbindungsversuch gestartet, kann keine Verbindung mehr hergestellt werden. Beim debuggen konnte ich folgende Stelle im MB_SERVER als Ursache identifizieren: Läuft die Modbus Kommunikation befindet sich der MB_SERVER in Schritt 20. Dieser Schritt wird nur in Richtung Schritt 0 verlassen, wenn der Eingang  Enable zurückgesetzt wird. Somit wird nach einem Verbindungsabriss (IP_C.C_Enable = FALSE) kein erneuter Verbindungsversuch unternommen.

Fix Vorschlag: Die Abbruchbedingung im Schritt 20 erweitern:
      IF ENABLE = FALSE OR IP_C.C_ENABLE = FALSE THEN
    ip_state := BYTE#4; (* Abmelden *)
state := 00;
END_IF;

Rückmeldungen und andere Workarounds sind wilkommen.

Einen schönen Tag noch

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: MB_SERVER: Erneuter Verbindungsaufbau scheitert
« Antwort #1 am: 03. Januar 2012, 11:50:51 »
Hallo

das Problem ist mir schon länger bekannt, und habe es auch schon vor 6 Monaten korrigiert (es gab aber bislang keine neue release)
es betrifft übrigens alle bausteine die als Server arbeiten
voraussichtlich bis diesen Sonntag werden wir sowieso eine neue oscat version freigeben
dabei wird natürlich auch dieses Problem behoben sein.

solltest du nicht solange warten können, dann solltest du es mir mitteilen

welches Plattform benutzt du ?
« Letzte Änderung: 03. Januar 2012, 11:53:30 von peewit »

BeCe

  • Gast
Re: MB_SERVER: Erneuter Verbindungsaufbau scheitert
« Antwort #2 am: 03. Januar 2012, 12:16:01 »
Hallo peewit,

vielen Dank für die schnelle Antwort. Der MB_Server läuft auf einem WAGO 762-3035 (Controlpanel mit Targetvisu), also CoDeSys 2.3

Bis zum nächsten offiziellen Release werde ich dann erstmal mit meinem Fix weiterabeiten.
Falls es Dir jedoch keine Umstände machst, kannst du mir gerne eine Vorabversion zukommen lassen.

Viel Dank nochmal.

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: MB_SERVER: Erneuter Verbindungsaufbau scheitert
« Antwort #3 am: 03. Januar 2012, 13:20:26 »
Hallo

vorab fix



[gelöscht durch Administrator]

BeCe

  • Gast
Re: MB_SERVER: Erneuter Verbindungsaufbau scheitert
« Antwort #4 am: 03. Januar 2012, 16:13:11 »
Super. Funktioniert wie erwartet. Nachdem der 5s Timeout abgelaufen ist, kann ich mich erneut verbinden.

Vielen Dank für die superschnelle Hilfe.




Offline jzhvymetal

  • Newbie
  • *
  • Beiträge: 9
  • Original SoMachine Ninja
    • Profil anzeigen
Re: MB_SERVER: Erneuter Verbindungsaufbau scheitert
« Antwort #5 am: 27. Februar 2012, 19:04:09 »
I still have issues with new Modbus Server code not timing out when the socket is disconnected or the Ethernet cable is disconnected.  I had do add the following below to reset the socket after the receive data timed out.  Since there is no code to detect that the Socket is still open you must force the socket closed and wait for the next connection.

Case 10:
IP_C.R_OBSERVE := TRUE; (* keine Empfangsueberwachung *)

and

IF ENABLE = FALSE OR t.Q THEN
    ip_state := BYTE#4; (* Abmelden *)
   state := 00;
   IP_C.C_ENABLE := FALSE;
END_IF;