Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 7 von 7

Thema: wago 750-881 stellt ethernetkommunikation ein

  1. #1
    Registriert seit
    01.08.2012
    Beiträge
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    Ich habe folgende zwei Programabläufe:

    task1 100ms
    Ethernet Server öffnen
    auf Clientverbindung warten
    Daten von Client empfangen und in global input speichern
    daten aus global output an Client senden
    Verbindung schliessen

    task 2 50ms

    Daten aus global input lesen
    DO1-8 schreiben
    DI1-8 einlesen
    Daten in Global output schreiben
    DO9=DI9


    nach ein oder zwei Tagen bricht die Verbindung ab, Webvisu und Onlinepanel sind nicht erreichbar und auch Codesys kommt nicht mehr auf die Steuerung Pings werden aber beantwortet.

    die Logik DO9=DI9 wird aberweiterhin abgearbeitet. Heißt also zumindest ein Teil der Steuerung läuft noch

    Nach einem Warmstart der Steuerung läuft alles wieder wie normal ohne Fehlermeldung (kein watchdog ausgelöst ect.)

    im moment habe ich mehrere Steuerungen mit dem selben Programm aber vollkommen zufällige Ausfälle.

    1. eine schnelle Lösung wäre über SysResetPlcProgram die Steuerung bei Kommunikationsabbruch für mehr als 10min zurückzusetzen, wie kann ich das einbinden, die Funktion ist im Bibliotheksverwalter grün und wird nicht unterstützt?

    2. wie kann ich die Ursache finden? ich habe keine Speicherüberläufe, bei deaktivierten Watchdogs tut sich auch nichts und die Steuerung ist nicht ausgelastet.

    sg und Danke
    Clemens
    Zitieren Zitieren wago 750-881 stellt ethernetkommunikation ein  

  2. #2
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard

    die Funktion ist im Bibliotheksverwalter grün und wird nicht unterstützt?
    Grün bedeutet ja normalerweise nur, dass die Funktion nicht übersetzt wird.
    D.h. du nutzt diese nicht und hast, entweder manuell, oder automatisch über die Übersetzungsoptionen, die ganze Bibliothek oder eben nur dieses Teil der Bibliothek vom Übersetzen ausgeschlossen.

    Gehe also auf Projekt-Optionen-Übersetzungsoptionen-Objekte ausschließen.

    Hier entfernst du den Haken bei "nicht übersetzen" unten links. Dann schreibst du dein Programm und am Ende übersetzt du alles, kannst danach wieder die unbenutzten Blöcke ausschließen und dein Programm funktioniert.

    Mit dem Baustein selbst habe ich keine Erfahrung!

    Grüße,

    Florian

  3. #3
    Tiroler ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.08.2012
    Beiträge
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    DANKE!
    Damit ist zumindest eine kurzfristige Lösung möglich.

  4. #4
    Registriert seit
    21.06.2012
    Beiträge
    113
    Danke
    29
    Erhielt 6 Danke für 5 Beiträge

    Standard

    Hallo Clemens,

    ich bin zwar nocht recht frisch auf dem Gebiet der SPS-Programmierung, dein beschriebenes Problem könnte aber auf "orphaned sockets" (verwaiste Sockets unter Linux) hindeuten:

    "An "orphaned socket" is a record in most Unix-like kernels for a socket that is no longer attached to a socket descriptor in any user processes, but for which the kernel is still required to maintain state in order to complete the transport protocol. This typically shows up in TCP sockets when a user process closes a socket while there is still unacknowledged data to transmit to the remote peer, ..."


    Speziell in deinem Fall wäre der Einsatz von UDP vielleicht besser geeignet (viele, recht kurze Verbindungen/Datenaustausch).
    Auf die Schnelle könntest du auch versuchen ein "Delay" zwischen dem Senden der Daten und dem Schließen der Verbindung einfügen um zu Verifizieren ob das das Problem ist. Das Delay soll verhindern, dass die Verbindung beendet wird solange noch versendete Daten zu quittieren sind.
    Oder du lässt dir den Empfang der Daten auf der Gegenstelle quittieren bzw. du vertauscht Senden und Empfangen der Daten auf der SPS und der Gegenstelle.

    Vielleicht hilft dir das ja ...

    LG Daniel.
    Geändert von dast (27.11.2012 um 21:35 Uhr)

  5. #5
    Tiroler ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.08.2012
    Beiträge
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für den Tipp.
    ich habe jetzt probiert bewusst einen solchen fall auszulösen. ein paket von der steuerung an den client und dann verbindung schliessen, bevor ack kommt. das ist der steuerung eigentlich egal. ich werde versuchen morgen in paar weitere fälle die dazupassen durchzuspielen und sehen, ob ich sie damit abstechen kann.

    nein, UDP geht leider nicht. der client ist ein schlecht programmierte black box, an die komme ich nicht ran (leider).

    jetzt habe ich eine umfassende logging funktion gebaut und werd schaun, was passiert, wenn die wieder abschmiert.

    dank florian habe ich ja jetzt zumindest eine möglichkeit die station durchzustarten, wenn sie sich nicht mehr meldet. damit erspare ich mir den weg zum kunden und komme immer auf die steuerung. keine gute lösung, aber sollte zumindest eine woche halten, bis ich eine idee habe, woran es sonst liegen kann.

    sg und danke

  6. #6
    Registriert seit
    21.06.2012
    Beiträge
    113
    Danke
    29
    Erhielt 6 Danke für 5 Beiträge

    Standard

    Hallo Clemens,

    magst du dein SPS-Programm nicht mal posten?! Würd das ganze gern mal testen ...
    Die "schlecht programmierte Black Box" kann ich mir ja selber am PC zusammenbasteln.

    Ach ja, hast du Zugriff auf die "Black Box"? Ist das ein normaler PC?
    Falls ja, könntest du -- falls keiner der Hinweise fruchtet -- einen kleines Dispatcher-Programm schreiben, das über "localhost" per TCP die Daten vom "Black Box Programm" empfängt, per UDP an die SPS schickt, von der eine UDP Nachricht empfängt und dann per TCP weiter an das "Black Box Programm" schickt.
    IP-Adresse und Port solltest du ja an dem "Black Box Programm" konfigurieren können, oder?
    Vielleicht ein Versuch wert. Zwar etwas umständlich, aber wenns hilft ...

    LG Daniel.
    Geändert von dast (28.11.2012 um 21:31 Uhr)

  7. #7
    Tiroler ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.08.2012
    Beiträge
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    so, nachdem ich mit dem Wago support telefoniert habe:
    1. ethernet lib gegen neue version austauschen (warum steht das in der beschreibung der alten lib auf der wago homepage nicht groß rot drin?!)

    2. das problem war wirklich nur die anzahl der offenen ports. da die arbeitszeit in der blackbox mal schneller und mal langsamer ist kommt es zufällig zu einem überlauf und die kommunikation hängt sich auf. wenn man jetzt mit codesys dran geht stirbt die steuerung ganz weg und braucht einen reset.

    behebung: alles verschmeißen, was nicht in 10ms abgearbeitet werden kann. zudem einen zweiten task, der die funktion des ersten überwacht und im fehlerfall die steuerung zurücksetzt (ist bis jetzt aber nie vorgekommen, da das verwerfen ja funktioniert)

    sg und danke für die hilfe

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 24.10.2013, 10:37
  2. Wago 750-881 keineKommunikation
    Von rheumakay im Forum WAGO
    Antworten: 2
    Letzter Beitrag: 16.10.2012, 06:23
  3. WAGO 750-881 Verbindung zu 2Geräten ??
    Von rheumakay im Forum WAGO
    Antworten: 2
    Letzter Beitrag: 26.09.2012, 14:35
  4. Suche WAGO 750-881 ...
    Von dast im Forum Suche - Biete
    Antworten: 6
    Letzter Beitrag: 30.06.2012, 09:20
  5. Suche WAGO 750-841, 750-871 oder 750-881
    Von Controllfreak im Forum Suche - Biete
    Antworten: 1
    Letzter Beitrag: 05.10.2011, 11:19

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •