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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: WAGO 750-880 hängt sich unvorhersehbar auf, wie grenze ich den Fehler ein?

  1. #1
    Registriert seit
    05.04.2015
    Beiträge
    8
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Forengemeinde,

    ich habe da ein großes Problem, wobei ich eure Hilfe benötige. Einige Forenbeiträge mit ähnlichen Fragestellungen habe ich im Forum gefunden, diese beschreiben aber mein Problem nicht korrekt, weshalb ich hier einen eigenen Forenbeitrag erstelle.

    Ich erstelle derzeit auf einen WAGO 750-880 Controller ein größeres Projekt für eine Garten Beregnungssteuerung mit 22 Gießbereichen, SMTP Mailbenachrichtigung und .CSV Datenausgabe auf Speicherkarte des WAGO Controllers mit senden auf den Fritz-Box Router über FTP.

    Grundsätzlich läuft mein Programm fehlerfrei und führt auch alle gewünschten Vorgänge über mehrere Tage aus, doch irgendwann (nicht vorhersehbar) hängt sich der Controller auf (MS, NS, I/O, USR blinken 5 x rot) und der Controller ist über Netzwerk und CoDeSys nicht mehr erreichbar. Nach Spannung aus/ein fährt der Controller problemlos hoch und arbeitet das Programm wieder fehlerfrei ab. Der gleiche Fehler kommt in nicht vorhersehbaren Zeitabständen (3-20 Tagen) wieder, unabhängig davon ob ein RESET (Ursprung) durchgeführt wurde oder nicht. Nach Aussage des WAGO Supports kommt hierfür eine Division durch 0 oder das Beschreiben eines Arrays außerhalb der Deklaration in Frage.

    Ich selbst vermute den Fehler im Programmteil für das schreiben und senden der .CSV-Dateien. Der Programmteil arbeitet (für mich) ohne erkennbaren Fehler, da dieser über Wochen mehrere CSV-Dateien auf der WAGO Speicherkarte erstellt, diese zum FTP-Server sendet und dann auf der WAGO Speicherkarte auch wieder löscht. Doch irgendwann hängt sich die Steuerung wieder auf und ich kann nach dem diese wieder mit CoDeSys erreichbar ist keinerlei Fehler mehr erkennen.

    Wie kann ich die Eingrenzung des Fehlers vernünftigerweise angehen, welche Tipps und Hilfsmittel könnt ihr mir geben um den Fehler zu finden. Ich bin schon so weit, dass ich mir überlege bestimmte Variablen zur Kontrolle in eine CSV-Datei zu schreiben, damit deren Zustand/Werte nach einem Aufhängen noch geprüft werden können.

    Hinweis: Beim Übersetzten des Projektes werden in CoDeSys keine Fehler und keine Warnungen angezeigt, ich verwende den FTP-Client WagoLibFtp.lib 2.12.10 und SysLibFile.lib 2.12.10. Das Programm habe ich gemäß der WAGO Dokumentation „a114100d_f„ aufgebaut, jedoch stark für meine Zwecke angepasst. Neueste Firmware für den 750-880 (Firmware revision 01.06.19 (09)) on Board.

    Ich freue mich über jeden Hinweis, denn mittlerweile zweifle ich schon an mir selbst.

    Gruß
    Reinhard
    Geändert von Rewe2000 (03.10.2016 um 17:11 Uhr)
    Zitieren Zitieren WAGO 750-880 hängt sich unvorhersehbar auf, wie grenze ich den Fehler ein?  

  2. #2
    Registriert seit
    13.10.2013
    Ort
    shertogenbosch niederlande
    Beiträge
    119
    Danke
    0
    Erhielt 8 Danke für 6 Beiträge

    Standard

    mach mahl im TASK das program langsamer (naja die anrufzeit hoher machen).
    sicher sein das die stack nicht vollauft.
    seht alle variabelen nach ob die nicht uberlaufen konnen (das heisst 0 werden).
    paul deelen
    shooter@home.nl
    +31736139136

  3. #3
    Rewe2000 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.04.2015
    Beiträge
    8
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Beitrag

    Hallo Paul,

    vielen Dank für deinen Tipp, ich werde die Tasklaufzeit mal ein wenig verlängern und dann sehen, ob der Fehler wieder auftritt.
    Im Anhang habe ich mal meine aktuelle Taskauslastung angehängt, ich denke grundsätzlich sollte es so funktionieren, nehme aber Erfahrungen und Verbesserungen von euch gerne an.

    Task Ablauf.jpg

    Anbei die Beschreibung der Taskkonfiguration:

    PLC_PRG T#200ms Priorität 9 unter diesen laufen die meisten Programme
    Protokolltask T#1m Priorität 20 schreibt die Messwerte und Zustände alle Minuten in das Messwert Array
    Astronomie T#30m Priorität 30 berechnet Sonnenstand etc.
    Alarm_Task T#200ms Priorität 15 für Anzeige, Darstellung der Alarmmeldungen in der Alarmkonfiguration
    Regenmenge T#20ms Priorität 5 holt Impulse an einer Digitaleingangskarte ab

    Eine Nachfrage habe ich noch zu deiner Antwort, wie meinst du das im letzten Satz?
    Wie kann ich nachsehen ob die Variablen nicht überlaufen?

    Ich habe mein Bytearray schon sehr großzügig angelegt, auch im ungünstigsten Fall sollte dieses für alle Werte ausreichen. Wird dieses zu klein bemessen, so werden die folgenden Variablen gnadenlos überschrieben, diese Erfahrung habe ich auch schon hinter mir.

    Nochmals Danke von meiner Seite und viele Grüße nach NL
    Reinhard

  4. #4
    Registriert seit
    24.07.2013
    Beiträge
    339
    Danke
    1
    Erhielt 106 Danke für 89 Beiträge

    Standard

    Hi,
    ich würde mal in der Hilfe nach checkbounds suchen.
    So vorgehen:
    folgende Funktion hinzufügen (musst die nicht aufrufen, das System ruft die Implizit auf wen vorhanden im Projekt)
    dann damit online gehen und zwei Brakepoints setzen (einmal für den Fall das das Array unten und oben überschritten wird...)
    Klar nun lässt du CODESYS online verbunden bis es passiert.
    FUNCTION CheckBounds : DINT
    VAR_INPUT
    index, lower, upper: DINT;
    END_VAR

    IF index < lower THEN
    CheckBounds :=
    lower;
    ELSIF index > upper THEN
    CheckBounds := upper;
    ELSE
    CheckBounds := index;
    END_IF

    Wenn also nun der Fehler (also jemand auf ein Array Element außerhalb des Index greift) dann steht CODESYS auf dem Brakepoint und du hast die Stelle wo es genau in deinem Projekt passiert.

    das kannst du mit den anderen Checkfunktionen auch machen...
    Grüße
    Geändert von HausSPSler (05.10.2016 um 06:28 Uhr)
    Edwin Schwellinger
    3S-Smart Software Solutions GmbH

  5. Folgender Benutzer sagt Danke zu HausSPSler für den nützlichen Beitrag:

    Rewe2000 (20.10.2016)

  6. #5
    Rewe2000 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.04.2015
    Beiträge
    8
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Edwin,

    vielen Dank auch Dir für den Tipp mit checkbounds, ich habe diese Funktionen schon in der Hilfe gefunden, aber ehrlich gesagt habe ich diese als Anfänger nicht so recht verstanden und somit auch nicht angewendet.

    Verstehe ich das richtig, die checkbounds Funktion ohne Breakpoints verhindert, dass Grenzen außerhalb des Arrays beschrieben werden. Adressiere ich auf einen nicht vorhandenen Index, so wird bei vorhandensein von checkbounds der Wert in den obersten noch gültigen Index abgelegt. Das gibt zwar keinen Sinn für das erwünschte Ergebnis, verhindert aber einen "Überlauf" von Arrays.

    Ich habe das angegebene Beispielprogramm in der Hilfe mal simuliert, es arbeitet genau so wie beschrieben. Bei vorhandensein von checkbounds wird der auf [10] adressierte Wert in [7] (ARRAY[0..7]) abgelegt, ohne Fehlermeldung. Ohne vorhandensein von checkbounds dagegen wird eine Fehlermeldung ausgegeben und das Programm geht in der Simulation in Stop.

    Die Breakpoints lege ich in der Funktion checkbounds selbst an, somit sehe ich dann, ob das Array außerhalb der gültigen Grenzen beschrieben wurde.
    In der Simulation hat es prima funktioniert, ich konnte den Fehler gut erkennen.

    Vielen Dank für die hilfreichen Ansätze zur Problemlösung, es hilft mir gut den Fehler endlich einzugrenzen.
    Reinhard Wechsler

  7. #6
    Registriert seit
    13.12.2011
    Beiträge
    616
    Danke
    56
    Erhielt 50 Danke für 48 Beiträge

    Standard

    Schön das Dir hier jemand weiterhelfen konnte, aber bitte gib Du auch Rückmeldung, wenn Du die Ursache gefunden hast und welche es war, damit könntest Du dann wiederum anderen helfen.

    Von irgendwas mit Internetzugang gesendet.

  8. #7
    Rewe2000 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.04.2015
    Beiträge
    8
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Sicher melde ich mich wieder wenn ich die Ursache gefunden habe, aber es könnte schon einige Wochen dauern, da der Fehler ja nur sehr sporadisch und selten auftritt. Damit wird es nicht leichter diesen zu finden.

    Gruss Reinhard

  9. #8
    Registriert seit
    31.05.2007
    Beiträge
    156
    Danke
    23
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hallo Reinhard,
    ich hab auf meiner Wago 750-880 selbiges Problem. Nutzt du ebenfalls den Wago Datalogger/Plotter um Daten auf der Sd-karte abzulegen?
    Mein letzter Versuch war es, jeden Tag ein neues CSV anzulegen - bisher läuft die Anlage noch.
    Bin dem Problem leider auch noch nicht auf die schliche gekommen.
    Grüße
    Andy

  10. #9
    Rewe2000 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.04.2015
    Beiträge
    8
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Andy,

    schön zu hören, dass es nochmal jemand mit dem gleichen Problem gibt, somit steigen die Chancen für uns beide, dass wir die Ursache für den Fehler finden können.

    Ich verwende den "FTP_CLIENT" aus der WAGO "WagoLibFtp.lib", mein Programm habe ich abgeleitet aus einem Beispielprojekt aus einem WAGO Lehrgang über eine Boilersteuerung mit CSV-Ausgabe. Ich vermute auch die Fehlerursache im Programmteil mit den Arrays, entweder das CSV Datensammeln und Datehandling oder der Bereich welcher Fehlermeldungen an eine Mailadresse sendet.

    Das Programm habe ich wie folgt modifiziert:
    Ich sammle die Daten in ein Array und schreibe diese 4 mal täglich mit "append" auf die SD Karte, so erhalte ich eine Datei pro Tag mit den gesammelten Meßwerten. Nachdem die datei voll ist, sende ich diese zum FTP Server meiner Fritz-Box. Die Dateien auf der SD Karte werden wie in einem Ringspeicher gehalten und die ältesten Dateien vom Programm wieder von der SD Karte gelöscht.

    Nachdem mein Fehler nur sehr selten und hochsporadisch auftritt werde ich mal als erstes den Tipp von Edwin umsetzen. Da ich nicht Wochenlang rund um die Uhr mein CoDeSys laufen lassen kann, werde ich mal versuchen einige Variablen bei auftreten des Fehlers mit CheckBounds zu sammeln und diese RETAIN PERSISTENT abzulegen, in der Hoffnung nach dem Spannung aus/ein sind Daten noch vorhanden. Somit könnte ich sehen ob wirklich die Arrays außerhalb der Grenzen beschrieben werden.

    In Verdacht habe ich auch noch den Programmteil mit den "SMAIL_Client2", ich hatte den Eindruck der Feler wäre häufiger aufgetreten als mehrere Alarmmeldungen pro Woche versendet wurden. Jetzt da mein Projekt ziemlich "rund" läuft gibt es nahezu keine Fehler mehr und die Abstürze der Steuerung halten sich damit auch in Grenzen. It aber bei einer Bewässerungssteuerung sehr ärgerlich, wenn man sich nicht 100% darauf verlassen kann.
    Ist schon irgendwie seltsam, das Projekt läuft mehrere Wochen ohne irgend welche Probleme, mit Sicherheit werden alle Programme in dieser Zeit mehrmals ohne Probleme durchlaufen und irgendwann aus heiterem Himmels ist die Steuerung wieder abgestürzt. Dachte nach dem Firmwareupdate auf die Version 9 wird es besser, aber der Fehler ist erneut einmal wieder aufgetreten.

    Ich gebe die Hoffnung nicht, auf irgendwann im Winter den Fehler zu finden. In dieser Zeit braucht die Steuerung nicht zu gießen und somit können die Programme mal so verändert werden, damit ich den Fehler hoffentlich provozieren kann, ohne die Gefahr, dass mir die Pflanzen vertrocknen.

    Gruß Reinhard

  11. #10
    Registriert seit
    18.09.2013
    Beiträge
    60
    Danke
    0
    Erhielt 9 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    in welchem Task schreibst du die CSV? Dateioperationen sollen im Task mit der niedrigsten Priorität ablaufen.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 13.10.2014, 20:54
  2. WAGO 750-881 Steuerung hängt sich auf
    Von wolfi-sps im Forum WAGO
    Antworten: 9
    Letzter Beitrag: 05.03.2014, 14:19
  3. Antworten: 5
    Letzter Beitrag: 13.02.2013, 15:10
  4. Wago: Programmierport hängt sich auf
    Von nmap im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 27.07.2012, 08:11
  5. Antworten: 6
    Letzter Beitrag: 08.11.2007, 09:59

Lesezeichen

Berechtigungen

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