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

Ergebnis 1 bis 6 von 6

Thema: Fehlermeldungen per Sps-Prog archivieren

  1. #1
    Registriert seit
    01.09.2007
    Beiträge
    83
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    wenn ich das mal so richtig mitbekommen habe gibt es Panel, z.B. von Siemens die kein Meldearchiv haben. Im spezielelen ältere...
    Und auch das TP177A (oder?)

    Hat da schonmal jemand eine Archivierungsfunktion in Step7 Programmiert?
    Bzw. kann es eurer Meinung nach sinnvoll sein?
    Stelle mir es z.B. so vor, das man in einem DB die Systemzeit archiviert und im anderen einen Code für die eingetroffene Meldung.

    LG
    Zitieren Zitieren Fehlermeldungen per Sps-Prog archivieren  

  2. #2
    Registriert seit
    22.11.2006
    Beiträge
    152
    Danke
    14
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Sowas könnte ich auch noch gebrauchen

  3. #3
    Registriert seit
    02.04.2006
    Ort
    nähe Muc
    Beiträge
    2.787
    Danke
    115
    Erhielt 126 Danke für 107 Beiträge

    Standard

    Falls Hilfreich ist, ein Tip:

    Schieberegister Datenbaustein :O)

    Grüsse
    ___________________________________________





    Sende eine SMS mit dem Stichwort "Feuer" an die 112 und innerhalb von 10 Minuten steht ein roter Partybus mit derbem Sound vor deiner Tür.


    AGB: Wer Rechtschreibfehler findet darf diese behalten. Bitte meine in eile gefertigten, selten anfallenden Vertipsler zu entschuldigen.

  4. #4
    Registriert seit
    16.12.2008
    Ort
    Fürth
    Beiträge
    146
    Danke
    32
    Erhielt 21 Danke für 19 Beiträge

    Standard

    Zitat Zitat von maxi Beitrag anzeigen
    Falls Hilfreich ist, ein Tip:

    Schieberegister Datenbaustein :O)

    Grüsse
    Will nur den nächsten bzw auch nen tipp geben xD Vielleicht wirds ein Wortspiel

    Schieberegister Datenbaustein Meldenummern

  5. #5
    Registriert seit
    04.03.2005
    Beiträge
    26
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    suche mal nach "trace" und Benutzername "BS"

    Gruss Uwe

  6. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Aus einem Projekt was mal angedacht war, aber nicht umgesetzt (Step7 SCL):
    Code:
    TYPE "UDT_MELDEEINTRAG"
    VERSION : 0.1
      STRUCT     
       Melde_Nr     : INT ;             (* Nr. der Meldung *)
       Zeitstempel  : DATE_AND_TIME;    (* Zeitstempel des Auftretens der Meldung *)
       Meldetext    : STRING[20];       (* Meldetext *)
      END_STRUCT;    
    END_TYPE
    
    FUNCTION_BLOCK MELDEARCHIV_CHRON
    
    TITLE   = 'MELDEARCHIV_CHRON'
    NAME    : MLDGARCC
    VERSION : '0.1'
    AUTHOR  : TWI
    
    (* Meldearchiv (z.B. für Anzeige an Bedienpanels)
    ---------------------------------------------------
    In ein Meldearchiv wird bei Störung ein Eintrag mit aktuellem Zeitstempel sowie dem Störmeldetext eingetragen.
    Geht die Störung, so wird der Eintrag aus der Liste entfernt und nachfolgene Meldungen rücken nach vorne, sodass
    die Meldeliste immer in chronologischer Reihenfolge ist.
    
    Die neueste Meldung steht immer am Index 1 der Liste.
    
    Kommen oder gehen viele Meldungen in einem Zyklus so kann dies die Zykluszeit erheblich erhöhen, da hier eine große Anzahl von 
    Kopieroperationen in einer Schleife durchgeführt werden! Deswegen die Stringlänge auf die benötigte Menge kürzen, oder
    die Werte für MAX_ANZ_GEKOMMEN / MAX_ANZ_GEGANGEN entsprechend heruntersetzen. *)
    CONST
        MAX_EINTRAEGE := 49 + 1;
        TEXT_LEN := 20;
        (* Maximale Anzahl der verarbeitbaren Meldungen pro Aufruf (Zyklus) *)
        MAX_ANZ_GEKOMMEN := 20; 
        MAX_ANZ_GEGANGEN := 20;
    END_CONST
    
    VAR_INPUT
        Aktuelle_Zeit : DATE_AND_TIME;    
    END_VAR
    
    VAR_IN_OUT
        Stoerung : ARRAY [1..MAX_EINTRAEGE] OF BOOL;                (* als IN_OUT damit nur POINTER übergeben wird *)
        Stoertext : ARRAY [1..MAX_EINTRAEGE] OF STRING[TEXT_LEN];   (* als IN_OUT damit nur POINTER übergeben wird *)
        Meldearchiv : ARRAY [1..MAX_EINTRAEGE] OF UDT_MELDEEINTRAG;
    END_VAR
    
    VAR_TEMP
        i : INT;
        j : INT;
        anz_gekommen : INT; (* Zur Begrenzung der in einem Zyklus zu verarbeitenden Meldungen bei Meldeschauer *)
        anz_gegangen : INT;
        gegangen : BOOL;
        gekommen : BOOL;
        gefunden_pos : INT;
        gefunden : BOOL;
    END_VAR
    
    VAR
        Stoerung_alt : ARRAY [1..MAX_EINTRAEGE] OF BOOL; (* Letzter Zustand der Variable *)
        anz : INT; (* Anzahl der Einträge im Meldearchiv *)
    END_VAR
    (********************************************************************************************)
        (*  Anweisungsteil *)
        anz_gekommen := 0;
        anz_gegangen := 0;
        FOR i := 1 TO MAX_EINTRAEGE BY 1 DO  
            (* Auf Flanken prüfen *)
            IF Stoerung[i] = true AND Stoerung_alt[i] = false THEN
                gekommen := true;
                anz_gekommen := anz_gekommen + 1;
            ELSIF Stoerung[i] = false AND Stoerung_alt[i] = true THEN
                gegangen := true;
                anz_gegangen := anz_gegangen + 1;
            ELSE 
                gegangen := false;
                gekommen := false;            
            END_IF;
            (* Meldeschauerbegrenzung *)
            IF anz_gekommen > MAX_ANZ_GEKOMMEN THEN
                RETURN;
            ELSIF anz_gegangen > MAX_ANZ_GEGANGEN THEN
                RETURN;   
            END_IF;
            
            Stoerung_alt[i] := Stoerung[i];  (* Für nächsten Zyklus merken *)        
            (******************* Eintragen in Meldearchiv ***********************************************)
            IF gekommen THEN            
                (* Alle Einträge um eins nach hinten schieben *)
                FOR j := anz TO 1 BY -1 DO
                    Meldearchiv[j + 1] := Meldearchiv[j];
                END_FOR;   
                anz := anz + 1;
                Meldearchiv[1].Melde_Nr       := i;
                Meldearchiv[1].Zeitstempel    := Aktuelle_Zeit;
                Meldearchiv[1].Meldetext      := Stoertext[i];              
            (********************* Austragen aus Meldearchiv ********************************************)
            ELSIF gegangen THEN
                (* Eintrag suchen *)
                gefunden := false;
                FOR j := 1 TO anz DO
                    IF Meldearchiv[j].Melde_Nr = i THEN
                        gefunden := true;
                        gefunden_pos := j;
                        EXIT;
                    END_IF;
                END_FOR;
        
                IF gefunden THEN
                    (* Alle nachfolgenden Meldungen rücken um eins nach vorne *)
                    FOR j := gefunden_pos TO (anz - 1) DO
                        Meldearchiv[j] := Meldearchiv[j + 1];    
                    END_FOR;
                    (* Letzten Eintrag zurücksetzen *)
                    Meldearchiv[anz].Melde_Nr       := 0;
                    Meldearchiv[anz].Zeitstempel    := DATE_AND_TIME#1990-01-01-00:00:00.0;
                    Meldearchiv[anz].Meldetext      := '';        
                    anz := anz - 1; (* Archiv um eins verkürzen *)
                END_IF;
            END_IF;    
            (********************************************************************************************)        
        END_FOR;
        
    END_FUNCTION_BLOCK

Ähnliche Themen

  1. Fehlermeldungen ausblenden
    Von Outrider im Forum HMI
    Antworten: 0
    Letzter Beitrag: 26.02.2010, 16:51
  2. Fehlermeldungen bei Frequenzumrichtern
    Von Tonne im Forum Feldbusse
    Antworten: 15
    Letzter Beitrag: 03.07.2009, 11:40
  3. Bllinkmerker im F-Prog
    Von mitchih im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 12.05.2008, 16:18
  4. Die Schönsten Fehlermeldungen
    Von Markus im Forum Stammtisch
    Antworten: 0
    Letzter Beitrag: 17.01.2007, 14:00
  5. S5 : WF 725 Fehlermeldungen
    Von m_matrix im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 29.08.2005, 18:47

Lesezeichen

Berechtigungen

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