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