Kann das Logbuch Erweitert Werden ??

  • Hallo zusammen


    ich hab eine IRC5
    mit ROBOTWARE_5.13.1034


    Meine frage ist


    kennt jemand eine möglichkeit mehr als 150 fehlermeldungen zu speichern ??
    ich dachte so an 1000 !


    das problem ist ich schreibe auch selber meldungen wenn ich irgend ein zustand nicht bekomme
    aber der nachteil ist das wenn die anlage 3 tage durchläuft
    dann habe ich keine anderen meldungen mehr
    und kann nicht nachvollziehen was vorher war


    danke und gruß Roboprog :blumen:

    Die dümmsten Programmierer haben die dicksten Programme

  • ANZEIGE
  • ok hört sich gut an


    wie geht das ?? :denk:


    oder gibt es die möglichkeit
    die orginal logs in eine datei zu schreiben :kopfkratz:
    ich meine meldung für meldung und nicht mit alle logs speichen
    also einen automatisierten prozess und nicht von hand ??


    danke gruß Roboprog :blumen:

    Die dümmsten Programmierer haben die dicksten Programme

  • Das Schreiben in eine Datei funktioniert ungefähr so:


    PROC schreibe_datei()


    VAR iodev newfile;
    VAR string ausgabetext1;
    VAR string ausgabetext2;
    VAR string ausgabetext3;


    ausgabetext1:="hier den Meldungstext 1 ";
    ausgabetext2:="Meldungstext2";
    ausgabetext3:="Meldungstext 3";
    !* Datei zum Schreiben oeffnen
    Open "HOME:"\File:="system/Messfile.abb",newfile\Append;
    !* Auf Datei schreiben
    Write newfile,ausgabetext1+ausgabetext2+ausgabetext3;
    !* Datei schliessen
    Close newfile;
    ENDIF


    ENDPROC


    Hoffe ich hab nix vergessen.
    Wo der Text her kommt bzw. wie lang er ist kannst Du natürlich selbst definieren.


    Gruß
    Stromer

  • Danke stromer :blumen:


    das ist genau das was ich brauche ! :supi:


    wirft aber wieder neue fragen auf ! :denk:


    schreibt er die meldungen dazu oder löscht er was schon in der datei drinn ist ?
    wenn er dazuschreibt kann ich die größe begrenzen ?
    so das er 1000 meldungen schreibt und immer die letzte rausschmeißt ??
    oder von der KB größer begrenzen das ich
    3 files mache und immer wenn wieder eine voll ist die älteste löschen kann ??
    sonst werde ich bald einen vollen speicher haben !


    ich weis das es wahrscheinlich nicht einfach ist ein logbuch selber zu schreiben
    aber das ist echt ein problem wenn ich nur 150 meldungen habe
    und über das problem stolpern bestimmt viele Programierer !


    Gruß und Danke für die Hilfe :beerchug:
    Roboprog

    Die dümmsten Programmierer haben die dicksten Programme

    Einmal editiert, zuletzt von roboprog ()

  • OK da ist wahrscheinlich \Append das richtige für mich!


    das beantwortet mir frage 1


    aber da sind noch mehr !


    kann ich die größe begrenzen ?
    so das er 1000 meldungen schreibt und immer die älteste rausschmeißt ??
    oder von der KB größer begrenzen das ich
    3 files mache und immer wenn wieder eine voll ist die älteste löschen kann ??
    sonst werde ich bald einen vollen speicher haben !


    danke :blumen:


    RobiMan
    werde mir mühe geben :jawohl:
    aber wenn ich ne frage habe darf ich trotzdem schreiben oder ??
    und ist das nicht normal das wenn man so etwas bauen will erstmal
    alle einem zur verfügung stehenden quellen befragt
    was für erfahrungen gemacht wurden und was es für lösungsansätze gibt !
    ich will einfach nicht die fehler machen wo einer aus dem forum schon eine lösung für hat
    das ist nämlich die grundidee eines forums oder ??


    auf weiterhin gute zusammenarbeit :beerchug:
    Gruß Roboprog

    Die dümmsten Programmierer haben die dicksten Programme


  • kann ich die größe begrenzen ?
    so das er 1000 meldungen schreibt und immer die älteste rausschmeißt ??
    oder von der KB größer begrenzen das ich
    3 files mache und immer wenn wieder eine voll ist die älteste löschen kann ??
    sonst werde ich bald einen vollen speicher haben !


    Die letzte Idee ist machbar und sinnvoll, mache ich auch so. Die Datei selbst verkleinern ist nicht problemlos möglich.
    Man muss auch daran denken, dass die Dateioperationen Zeit kosten (zwar nur ein bissl, aber das kann sich zusammenläppern).


    Grüße,
    Michael

  • danke für die info Programmiersklave ! :supi:


    das abrufen der größe machst du bestimmt mit filesize
    aber leerst du dann das älteste file oder löschst du es und machst ein neues
    so mit datum oder so ?? (geht das überhaupt)


    achja kann man eigentlich die orginal logs von abb auch da mit rein speichern ??


    Danke und gruß Roboprog :blumen:

    Die dümmsten Programmierer haben die dicksten Programme

  • Hallo,
    ich habe es wie folgt gelöst.
    Zuerst wird die dateigröße bestimmt. Wenn diese zu groß ist, wird die erste Zeile gelöscht.


    !------------------------------------------------------------
    !Routine : SchreibeLog
    !Beschreibung : Schreibt Meldungen in eine (*.txt) Datei
    ! :
    ! :
    ! :
    !Parameter :
    !------------------------------------------------------------
    ! Date: Version: Programmer: Reason:
    !
    !------------------------------------------------------------
    LOCAL PROC SchreibeLog(string Pfad,string Datei,string stArray{*})


    VAR num i;
    VAR num i2;
    VAR num n;
    VAR string str{8,500};
    VAR bool bMeldung;
    VAR iodev logfile;


    !Dateigroesse ermitteln
    bMeldung:=FALSE;
    !Datei öffnen um die Dateigrösse zu ermitteln
    Open "HOME:"\File:=Pfad+Datei+stTXT, logfile\Read;
    n:=1;
    FOR i FROM 1 TO Dim(str,2) DO
    FOR i2 FROM 1 TO 8 DO
    str{i2,n}:=ReadStr(logfile\Delim:=" ; ");
    ENDFOR
    IF str{1,i}<>EOF Incr n;
    ENDFOR
    !Datei schliessen
    Close logfile;
    !Wenn Datei zu gross geworden ist, dann erste Zeile löschen
    IF (n>Dim(str,2)) THEN
    !Datei öffnen um erste Zeile zu löschen
    Open "HOME:"\File:=Pfad+Datei+stTXT,logfile\Write;
    FOR i FROM 2 TO Dim(str,2) DO
    FOR i2 FROM 1 TO 7 DO
    Write logfile,str{i2,i}+" ; "\NoNewLine;
    ENDFOR
    Write logfile,str{8,i};
    ENDFOR
    ELSE
    !Datei öffnen um Text am ende der datei anzuhängen
    Open "HOME:"\File:=Pfad+Datei+stTXT,logfile\Append;
    ENDIF
    !Text in Datei schreiben
    Write logfile,CDate()+ " ; "\NoNewLine;
    Write logfile,CTime()+ " ; "\NoNewLine;
    FOR i FROM 2 TO 7 DO
    IF i < 7 THEN
    Write logfile,stArray{i}+" ; "\NoNewLine;
    ELSE
    Write logfile,stArray{i}+" ; ";
    ENDIF
    ENDFOR
    !Datei schliessen
    Close logfile;
    WaitTime 0.1;
    bMeldung:=TRUE;
    WaitUntil bMeldung=TRUE;
    ENDPROC

  • @ mischwarz


    prima ! :supi:


    danke für die infos das erleichtert einiges
    mein ansatz war 3 files und das älteste löschen
    mein prog ist mitlerweile 250 zeilen lang ! :waffen100:


    ich fang mit deinem lösungsansatz noch mal von vorne an :mrgreen:


    vielen Dank und gruß
    Roboprog :blumen:

    Die dümmsten Programmierer haben die dicksten Programme

  • Immer wieder gerne.
    Bin froh wenn ich auch mal etwas beitragen kann. Meistens habe ich nur fragen.


  • das abrufen der größe machst du bestimmt mit filesize


    Ich machs wie Robiman mit einem Index. Die absolute Größe ist ja nicht so ganz wichtig, Hauptsache, es bläht sich nicht endlos auf. Wobei die Abfrage der Dateigröße sicher besser wäre, falls der Index mal verschütt geht...


    Zitat

    aber leerst du dann das älteste file oder löschst du es und machst ein neues
    so mit datum oder so ?? (geht das überhaupt)


    Bei der 4er-Steuerung konnte man das File nur überschreiben, ich habe dann die Inhalte der jüngeren Datei einfach sequentiell in die "Archivdatei" kopiert und diese damit überschrieben.
    Die 5er-Steuerung kennt ja mittlerweile auch Lösch- und Kopierbefehle, soweit ich weiß, damit wird es dann einfacher.


    Zitat

    achja kann man eigentlich die orginal logs von abb auch da mit rein speichern ??


    Weiß nicht genau, man wird tricksen müssen, denke ich, zumindest die Fehlernummer wird sich bestimmt abfangen lassen und durch irgendwas wegschreiben lassen - nur eben nicht die Fehler in der Task, die selbst einen nicht behebbaren Fehler verursacht. Das heisst, wenn Dein Speicher- und Protokollprogramm wegen eines Fehlers stirbt, dann wird es diesen Fehler schwerlich speichern können :)


    Vorsicht, wenn Du mehrere Tasks hast, die gleichzeitig in dieselbe Datei speichern wollen....


    Grüße,
    Michael

  • 1.
    also das mit dem schreiben von mehreren tasks hab ich mit einem fehlerbit
    gelöst das wenn ein fehler ansteht kein 2. geschrieben werden kann !
    2.
    das mit dem fehler im log programm
    werde ich so lösen das ich dem schreiben einen eigenen task sponsere
    und den permanent mache und das schreiben überspringe wenn keine posetive flanke vom fehlerbit kommt! das heist wenn der abschmiert dann steht die anlage sowiso!
    3.
    die fehlernummer von den orginalmeldungen würden mir ja reichen !
    weis nur nicht wie ich die nummer auslesen kann ! ReadErrData vieleicht ??
    und ich müsste mal austesten was passiert wenn wenn ich gerade schreibe
    ob die anderen meldungen dann übersehen werden oder ob ich das nacheinander abarbeiten kann!


    danke für die vielen anregungen
    gruß Roboprog! :beerchug:

    Die dümmsten Programmierer haben die dicksten Programme

    Einmal editiert, zuletzt von roboprog ()

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden