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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 30

Thema: Handling Störmeldungen WinCC flexibel

  1. #1
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.812
    Danke
    1.232
    Erhielt 1.101 Danke für 527 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo,

    wie werden störungen eurer meinung nach vernünftig gehandelt?

    also bisher habe ich das meist so gelöst:

    Störmeldebereich mit einigen bool.
    wenn eine störung auftritt setzt die sps das entsprecheden bit und in der visu erscheint der text.
    wenn die taste "störung quittieren" gedrückt wird, dann wird der ganze bereich mit den störbits wieder mit "0" überschrieben.


    funktioniert so ganz gut, aber ich finde es unnötig zusätzlich zur "ACK" taste bei der meldung noch eine weitere taste zu haben/drücken zu müssen.


    jetzt habe ich mir in winccflexible mal die möglichkeit angeschaut störmeldebits in der sps von der visu zu resetten. d.h. wenn ich die ack taste drücke verschwindet nicht nur der text, es wird auch das bit in der sps gelöscht.

    aber das handling dafür finde ich recht doof, oder ich habe es vielleicht nicht richtig verstanden...


    meine lösung: (die ich für zu umständlich halte)

    Code:
      
          L     "test".RESET                // Variable in der die Resetbits sind
          L     MW    42                    // Wert letzter Zyklus
          <>I   
          SPBN  RES1
          L     "test".ERROR                // Variable in der die Störmeldungen sind
          L     "test".RESET
          XOW                               // Störungsbit + Resetbit ? 
          L     "test".ERROR
          UW    
          T     "test".ERROR                // Wenn beide "1" dann Störung löschen
    RES1: NOP   0
          L     "test".RESET                // Wert letzter Zyklus aktualisieren
          T     MW    42
    Das muss doch einfacher gehen?!
    Bitte sagt mir das ichs nicht begriffen habe und es wesentlich einfacher geht.




    Nur so - Ansteuerung der Störbits:

    Code:
          U     M     40.0                  // Störung blablabla
          S     DB1.DBX    1.0
          U     M     40.1                  // Störung blablabla
          S     DB1.DBX    1.1
          U     M     40.2                  // Störung blablabla
          S     DB1.DBX    1.2
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)
    Zitieren Zitieren Handling Störmeldungen WinCC flexibel  

  2. #2
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi,
    ist da die Handhabung nicht wie beim ProTool? D.h. jede Störmeldung
    hat auch ein entspr. Quittierbit für die SPS. Wenn man ACK betätigt, wird
    halt dieses Bit gesetzt, das Weitere macht dein Programm, genauso wie
    du es machst (oberes Beispiel). Und das Quittierbit muss auch
    resetet werden, oder?

    Gruss:Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Störmeldungen  

  3. #3
    Avatar von Markus
    Markus ist offline Administrator
    Themenstarter
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.812
    Danke
    1.232
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    meine das quittier bit wird von der visu resetet.
    deswegen auch die zyklische abfrage auf wertänderung - weil die visu ja erst 1-2s später resetet...

    aber die idee ist gut, wenn ich das quittierbit auch in der sps resete, dann kann ich mir die 7 zeilen mit der wertänderung sparen...

    finde das handling aber immer noch beschissen, muss für so eine blöde quittierfunktion seitenweise code schreiben wenn ich nicht gerade nur 16 störungen habe.

    wäre doch viel einfacher wenn ich der quittierfunktion in der visu das eigene störbit übergeben könnte. dann wird beim drücken von "ack" genau dieses resetet und gut ist...
    das wäre praktikabel und schnell angebunden.

    die anbindung ist sowieso der letzte dreck, bereichzeiger gibts nicht mehr und wenn ich die visu symbolisch haben will, dann habe ich die einzelnen störmeldungen nicht mehr symbolisch - siehe mein beispiel oben. andersrum ist es wohl das kleinere übel wenn ich die meldungen im db bitweise symbolisch mache und in der visu worte anbinde die es nicht gibt.

    man was könnte ich sch wieder kotzen! es gibt unter den unzähligen systemen aus den letzten jahren auch viele von siemens. aber bei winccflex könnte man wieder meinen dieses vertrottelte entwicklerpack von siemens macht es zum ersten mal!

    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  4. #4
    Avatar von Markus
    Markus ist offline Administrator
    Themenstarter
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.812
    Danke
    1.232
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    okn also wenn man es so macht wie vladi schreibt kann man den code etwas kürzen.

    Code:
          L     "test".ERROR
          L     "test".RESET
          XOW   
          L     "test".ERROR                // TAK
          UW    
          T     "test".ERROR
          L     0
          T     "test".RESET

    aber die funktion von diesem quittiersystem habe ich jetzt immer noch nicht begriffen.

    also szenario:

    1. störmeldekontakt geht weg

    un störmeldekontakt
    s störung_1


    2. in wincc flexible kommte eine meldung mit dem status "k" (kommend)


    3. der bediener drückt auf quittieren, ohne der fehler selbst zu beseitigen
    (das macht ja jeder die ersten 100 mal)


    4. winccflexible setzt das quittierbit auf "1"
    gleichzeitig wird der status der störung auf "kq" (kommend-quittiert) geändert.


    5. Das Bit wird in obigem programm ausgewertet und setzt das bit störung_1 zurück.


    6. im nächsten sps zyklus wird das bit störung_1 aber wieder auf "1" gesetzt. winccflexible zeigt aber wieterhin status "kq" an und ein weiteres drücken der "ack" taste setzt das quittierbit nicht erneut.

    so nun sagt winccflex die störung sei quittiert, aber sie steht noch an, und ich bekomme das störbit in der sps nicht mehre resetet.

    also wenn ich die störung behebe und der störmeldekontakt wieder da ist, dann bleibt störung_1 ja auf "1" weil das bit gesetzt wurde.
    da beim drücken auf die "ack" taste kein weiteres mal das quittierbit gesetzt wird kann ich mit dieser funktion die störung quasi nie zurücksetzten!

    muss ich jetzt etwa sps-seitig noch ein handling schreiben das mir das quittierbit speichert und das störbit erst dann resetet wenn die störung behoben wurde?

    mal erhrlich was soll der schwachsinn?
    ich denke ich bin nicht der einzige der störmeldungen projektiert.
    bisher habe ich das immer anders gemacht, siehe oben.
    jetzt dachte ich "machen wir es mal professionell" mit dieser coolen quittierbit funktion.
    macht das von euch wer erfolgreich in der praxis?

    wenn ja, dann sagt mir bitte das ich zu doof dazu bin und das meine ansicht über diese beschissene undurchdachte unnötig komplizierte funktion vollig falsch ist.

    also macht es hier jeder ala old school und löscht den störspeicher beim quittieren mit 0 ab, oder setzt irgendjemand diese tolle quittierbitfunktion ein?
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  5. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.265
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Ich mach das mit jeder Störmeldung extra, hab das einen kleinen Baustein für Störmeldungen, da gehen alle drei Bit (Störbit, Quitt-OP, Quitt-SPS) rein. Die Ack-Taste am OP geht (so vorhanden) zentral in die Steuerung und resetet alle Störungen. Am OP wird ja nur die resettet, die gerade im Bild ist, also muß der Bediener alle einzeln resetten, bei einem TP gibts kein zentrales Ack, von Haus aus. Dafür bekommt der Bediener einen extra Button, Reset All, dann werden über SPS-Quitt alle Störungen vom OP geputzt. Der Stör-FC ist recht übersichtlich, das werden die Bits entsprechend gesetzt und rückgesetzt.

    Code:
    FUNCTION FC 110 : VOID
    TITLE =Störmeldung
    //
    { S7_language := '7(1) Deutsch (Deutschland)  12.01.2007  12:07:37' }
    AUTHOR : Ralle
    FAMILY : SYSTEM
    NAME : STM_SYS
    VERSION : 1.3
    
    
    VAR_INPUT
      Stoermeldung : BOOL ;    
      Freigabe : BOOL ;    
      Ack : BOOL ;    //Quitt Fehler
    END_VAR
    VAR_IN_OUT
      Stoerbit : BOOL ;    
      Quittierbit_OP : BOOL ;    
      Quittierbit_SPS : BOOL ;    
    END_VAR
    BEGIN
    NETWORK
    TITLE =Funktion zum auswerten der Störungen
    
          UN    #Freigabe; 
          R     #Stoerbit; 
          R     #Quittierbit_OP; 
          R     #Quittierbit_SPS; 
          BEB   ; 
    NETWORK
    TITLE =Störung
    
          U(    ; 
          U(    ; 
          O     #Quittierbit_OP; 
          O     #Quittierbit_SPS; 
          )     ; 
          R     #Stoerbit; 
          U     #Stoermeldung; 
          S     #Stoerbit; 
          U     #Stoerbit; 
          )     ; 
          NOT   ; 
          UN    #Stoermeldung; 
          UN    #Quittierbit_SPS; 
          R     #Quittierbit_OP; 
    NETWORK
    TITLE =Ack
    
          U     #Ack; 
          =     #Quittierbit_SPS; 
    END_FUNCTION
    Geändert von Ralle (26.01.2007 um 15:53 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #6
    Registriert seit
    06.10.2003
    Beiträge
    3.451
    Danke
    454
    Erhielt 510 Danke für 412 Beiträge

    Standard

    Hallo Markus,

    Zitat Zitat von Markus Beitrag anzeigen
    ..
    5. Das Bit wird in obigem programm ausgewertet und setzt das bit störung_1 zurück.

    6. im nächsten sps zyklus wird das bit störung_1 aber wieder auf "1" gesetzt...
    Ich glaube, hier liegt der Hund begraben. Das eigentliche Störbit darf nicht zurückgesetzt werden, solange die Störung noch ansteht!


    Und so mache ich es:

    Code:
     
    FUNCTION "ALARM_QUITT" : VOID
    TITLE =
    VERSION : 0.1
     
    VAR_INPUT
      EVENT : BOOL ; //Signal, welches die Störung verursacht (1==Störung)
      EVENT_NEGIEREN : BOOL ; //Signal vom Eingang "EVENT" wird negiert (0==Störung)
      QUITT_PLS : BOOL ; //Quittierungs-Signal aus SPS-Programm
      STOERMELDUNG : POINTER ; //Störmeldebit im Störmeldebereich
      STOERMELDEBEREICH : POINTER ; //Störmeldebereich
      QUITTIERMELDEBEREICH_HMI : POINTER ; //Quittierbereich von HMI (wird von HMI gesetzt)
      QUITTIERMELDEBEREICH_SPS : POINTER ; //Quittierbereich von SPS (wird von SPS gesetzt)
    END_VAR
    VAR_TEMP
      TEMP_AR1 : DWORD ; 
      OFFSET : DWORD ; //Adresse des Störmeldebits == Offset in allen Datenbereichen
      TEMP_INT : INT ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =
     
    //****************************************************************************
    //*** AR1 sichern
    //****************************************************************************
          TAR1  #TEMP_AR1; 
          SET   ; 
          SAVE  ; 
     
    //****************************************************************************
    //*** AR2 auf Störmeldebit und DB öffnen
    //****************************************************************************
          L     P##STOERMELDUNG; 
          LAR2  ; 
          L     W [AR2,P#0.0]; 
          T     #TEMP_INT; 
          AUF   DB [#TEMP_INT]; 
          L     D [AR2,P#2.0]; 
          LAR2  ; 
     
    //****************************************************************************
    //*** Bitnummer im Störmeldebereich ermitteln
    //****************************************************************************
          L     P##STOERMELDEBEREICH; 
          LAR1  ; 
          L     D [AR1,P#2.0]; 
          LAR1  ; 
          UD    DW#16#FFFFFF; // Bereichskennung eliminieren
          L     L#-1; 
          *D    ; 
          TAR2  ; 
          UD    DW#16#FFFFFF; // Bereichskennung eliminieren
          +D    ; 
          T     #OFFSET; // Bit-Offset ohne Bereichskennung
     
    //****************************************************************************
    //*** Störung von SPS aus zurücksetzen und an HMI quittieren
    //****************************************************************************
          U     #QUITT_PLS; 
          R      [AR2,P#0.0]; 
          U     #QUITT_PLS; 
          L     P##QUITTIERMELDEBEREICH_SPS; 
          LAR1  ; 
          L     D [AR1,P#2.0]; 
          LAR1  ; 
          L     #OFFSET; 
          +AR1  ; 
          =      [AR1,P#0.0]; 
     
    //****************************************************************************
    //*** Störung von HMI aus zurücksetzen
    //****************************************************************************
          L     P##QUITTIERMELDEBEREICH_HMI; 
          LAR1  ; 
          L     D [AR1,P#2.0]; 
          LAR1  ; 
          L     #OFFSET; 
          +AR1  ; 
          U      [AR1,P#0.0]; 
          R      [AR2,P#0.0]; 
     
    //****************************************************************************
    //*** Störung setzen
    //****************************************************************************
          X     #EVENT; 
          X     #EVENT_NEGIEREN; 
          S      [AR2,P#0.0]; 
     
    //****************************************************************************
    //*** AR1-Register wiederherstellen
    //****************************************************************************
          LAR1  #TEMP_AR1; 
          BE    ; 
     
    END_FUNCTION
    Die Quittiermeldebereiche sind nichtsymbolische Bereiche im DB (macht Änderungen erheblich einfacher). Der Störmeldebereich ist natürlich mit Symbolen angelegt.
    Wichtig ist dass das Setzen der Störung Vorrang hat!

    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  7. #7
    Avatar von Markus
    Markus ist offline Administrator
    Themenstarter
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.812
    Danke
    1.232
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    danke euch beiden soweit.
    aber könnte das nich einfach sein? wieso darf ich das bit nicht reseten?
    wieso wird das quittierbit nicht immer wieder beim drücken von ack gesetzt solange die störung noch ansteht?


    danke für die bausteine, aber jede störung für sich?
    darin sehe ich einen extrem großen aufwand, oder schätze ich das falsch ein?

    @dagobert
    wenn du sagst das du die störmeldebits symbolisch anlegst, dann hast du die bereiche in winccflex aber nicht symbolisch, oder gibts da auch einen trick?




    also meine bisherige lösung sah einfach so aus



    u bedingung_störung_1
    s störung_1(dbx0.0)

    u bedingugn_störung_2
    s störung_3(dbx0.1)

    ^^diese störbits werden irgendwo im programm z.b. als inout-parameter oder wahlweise zentral im stör fb gesetzt.



    // sammelstörung?

    l dbd 0
    l dbd 4
    ow
    l dbd 8
    ow
    l dbd 12
    ow
    l l#0
    <>d
    = störung aktiv



    // reset

    u taste quittieren
    spbn res0

    l l#0
    t dbd 0
    t dbd 4
    t dbd 8
    t dbd 12

    res0: nop 0



    ^^^^^^^^ ist das zu naiv?
    da ich in dem komplexen handling mit den 3 bits pro störung keinen zusätzlichen nutzen (geschweige denn eine vereinfachung) feststellen kann werde ich das wohl wieder so machen...
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  8. #8
    Registriert seit
    06.10.2003
    Beiträge
    3.451
    Danke
    454
    Erhielt 510 Danke für 412 Beiträge

    Standard

    Hallo Markus,

    Zitat Zitat von Markus Beitrag anzeigen
    danke euch beiden soweit.
    aber könnte das nich einfach sein? wieso darf ich das bit nicht reseten?
    wieso wird das quittierbit nicht immer wieder beim drücken von ack gesetzt solange die störung noch ansteht?...
    Gute Frage, habe jedoch keine Antwort dafür. Aber wenn man's weiß ist es doch kein Problem.

    Zitat Zitat von Markus Beitrag anzeigen
    ..danke für die bausteine, aber jede störung für sich?..
    Der Vorteil ist dass der Bediener weiß, was er quittiert. Bei mehreren Störmeldungen und Sammelquittierung weiß man das meist nicht so richtig. Bei WnCCFlex gibt es auch die Möglichkeit, die Meldungen zu Quittiergruppen zusammen zu fassen. Dann werden wohl alle anstehenden Meldungen einer Gruppe zusammen quittiert. Habe es jedoch noch nicht getestet.

    Zitat Zitat von Markus Beitrag anzeigen
    ..darin sehe ich einen extrem großen aufwand, oder schätze ich das falsch ein?..
    Naja, es hält sich in Grenzen. Bei meiner Lösung mit den Pointern muss man zumindest nicht jedes einzelne Quittierbit anfassen. Das sehe ich schon mal als großen Vorteil an.

    Zitat Zitat von Markus Beitrag anzeigen
    ..
    @dagobert
    wenn du sagst das du die störmeldebits symbolisch anlegst, dann hast du die bereiche in winccflex aber nicht symbolisch, oder gibts da auch einen trick?..
    In WinCCFlex habe ich nur die Meldenummern (Bitmeldungen).

    Zitat Zitat von Markus Beitrag anzeigen
    ..^^^^^^^^ ist das zu naiv?
    da ich in dem komplexen handling mit den 3 bits pro störung keinen zusätzlichen nutzen (geschweige denn eine vereinfachung) feststellen kann werde ich das wohl wieder so machen...
    Bei Geräten, wo man eine ordentlich Quittiertaste hatte, hatte ich es auch immer so gemacht, zumindest so ähnlich.


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  9. #9
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.866
    Danke
    78
    Erhielt 806 Danke für 549 Beiträge

    Standard

    also ich handhabe da so, das ich der ack-taste ein bit zuordne.
    dieses bit setzt im ag die störung zurück.

    ein sammelreset am op projektiere ich nicht, da ich möchte, dass der bediener auch alle störungen die aufgelaufen sind sieht.

    kommt zwar öfter vor, dass die jungs einfach blind alle störungen quittieren ohne die zu lesen, aber da kann ich ja dann nix für.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  10. #10
    Avatar von Markus
    Markus ist offline Administrator
    Themenstarter
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.812
    Danke
    1.232
    Erhielt 1.101 Danke für 527 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von volker Beitrag anzeigen
    also ich handhabe da so, das ich der ack-taste ein bit zuordne.
    dieses bit setzt im ag die störung zurück.

    ein sammelreset am op projektiere ich nicht, da ich möchte, dass der bediener auch alle störungen die aufgelaufen sind sieht.

    kommt zwar öfter vor, dass die jungs einfach blind alle störungen quittieren ohne die zu lesen, aber da kann ich ja dann nix für.
    du redest jetzt aber nur von op´s die eine hw quittier taste haben, oder?


    habe inzwischen eine für mich halbwegs praktikable lösung gefunden.
    bin aber noch nicht ganz zufrieden, werden mich später weiter damit beschäftigen, muss nur schnell noch was anderes erledigen...
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

Ähnliche Themen

  1. WinCC flexibel
    Von Noops77 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 10.07.2011, 21:34
  2. WinCC Flexibel 2008
    Von sps-questioner im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 23.03.2010, 15:26
  3. WINCC Flexibel
    Von seb992000 im Forum HMI
    Antworten: 9
    Letzter Beitrag: 12.07.2008, 16:15
  4. Multiplexen von SM mit WinCC flexibel
    Von uwemiess im Forum HMI
    Antworten: 9
    Letzter Beitrag: 28.01.2008, 07:50
  5. Antworten: 4
    Letzter Beitrag: 06.07.2006, 15:37

Lesezeichen

Berechtigungen

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