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

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

Thema: Sammelstörung mit wiederholter akust. Meldung

  1. #1
    Registriert seit
    29.01.2008
    Beiträge
    100
    Danke
    139
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe im einem zusammenhängenden Merkerbereich ca. 350 Störmelungen. Beim Auftreten einer Störmeldung soll ein optisches Dauersignal erfolgen und ein akustisches Signal für ca 30 Sekunden ausgegeben werden. Das Optische Signal soll ausgegeben werden, bis alle Störungen gegangen sind. Das akustische Signal soll immer ausgegeben werden, wenn eine Störung erfolgt, auch dann, wenn bereits schon eine Störung anliegt.

    Hat jemand eine Idee, wie sich das effektiv programmieren läßt.

    MfG
    homei
    Zitieren Zitieren Sammelstörung mit wiederholter akust. Meldung  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Code:
    *
          SET   
          R     #GROUPALARM                 // AUSGANG GROUPALARM VORBESETZEN
    
          L     #START_MB                   // VERGLEICHSSTART LADEN
          SLW   3                           // UND BITS AUSMASKIEREN
          T     #QUELLINDEX                 // UND ALS NEUEN START MERKEN
    
          L     #ANZ_BYTE                   // ANZAHL ZU VERGLEICHENDER BYTES LADEN
    NEXT: T     #REFERENZ                   // UND IN SCHLEIFENINDEX LADEN
          L     B#16#FF                     // LADE KONSTANTE FF 
    
          L     MB [#QUELLINDEX]            // UND NACH MERKERBYTE TRANSFERIEREN
          ==I   
          SPB   OK
          SET   
          =     #GROUPALARM
          BEA   
    OK:   L     #QUELLINDEX                 // QUELLINDEX LADEN UND
          +     8                           // UM EINS ERHÖHEN
          T     #QUELLINDEX                 // UND MERKEN FUER NÄCHSTEN DURCHLAUF
          L     #REFERENZ                   // SCHLEIFENINDEX LADEN
          LOOP  NEXT
          BE                                // FERTIG
    macht eine sammelalarmmeldung - also deine optische anzeige

    mit

    Code:
    *
          SET                               // VKE AUF LOG. 1  
          R     #UNGLEICH                   // UND ERGEBNIS VORBESETZEN
    
          L     #DB_REFERENZ                // AUS VORGABEWERT FÜR REFERNZDATENBAUSTEIN
          T     #REFERNZ_DB                 // EIN DOPPELWORT ZUR INDIZIERUNG MACHEN
          AUF   DB [#REFERNZ_DB]            // UND DATENBAUSTEIN FÜR FB ÖFFNEN
    
          L     #START_QUELLE_MB            // STARTDATENWORT QUELLE LADEN
          SLW   3                           // UND ALS ADRESSINDEX
          T     #QUELLINDEX                 // MERKEN
    
          L     #START_ZIEL_DB              // ZIELDATENWORT IN DER QUELLE LADEN
          SLW   3                           // UND ALS ADRESSINDEX
          T     #ZIELINDEX                  // MERKEN
    
          L     #ANZ_WORTE                  // VERGLEICHS - KOPIERLÄNGE LADEN (WORTE)
    NEXT: T     #REFERENZ                   // UND ALS SCHLEIFENZÄHLER VERWENDEN
          L     MW [#QUELLINDEX]            // QUELLWERT (NEU) LADEN       [MWxyz]
          L     DBW [#ZIELINDEX]            // VERGLEICHSWERT (ALT) LADEN  [DWXYZ]
          XOW                               // EXCLUSIV-ODER VERKÜPFEN
          L     DBW [#ZIELINDEX]            // REFERENZWERT AKTUELL NOCHMAL LADEN
          UW                                // UND MIT XOR ERGEBNIS "VERUNDEN"
          L     W#16#0                      // REFERNZ 0000h laden
          ==I                               // BEIDE WERTE VERGLEICHEN
          SPB   EQU                         // WERTE GLEICH, DANN WEITERSUCHEN
          S     #UNGLEICH                   // WERTE UNGLEICH, DANN ERGEBNIS SETZEN
          SPA   COPY                        // UND AKTUELLE DATEN RETTEN
    EQU:  L     #QUELLINDEX                 // WERTE GLEICH, DANN INDEX
          +     16                          // UM EIN WORT ERHÖHEN UND
          T     #QUELLINDEX                 // MERKEN
          L     #ZIELINDEX                  // JETZT ZIELINDEX
          +     16                          // UM EIN WORT ERHÖHEN UND
          T     #ZIELINDEX                  // MERKEN
          L     #REFERENZ                   // REFERENZ SCHLEIFENZÄHLER 
          LOOP  NEXT                        // UND NAECHSTES WORT VERGLEICHEN
    
    
    COPY: LAR1  P##QUELLE                   // POINTERADRESSE FÜR QUELLE ZUM KOPIEREN
          L     B#16#10                     // IN LOKALDATENBEREICH KONSTRUIEREN
          T     LB [AR1,P#0.0]
          L     B#16#4                      // DATENTYP = WORTE
          T     LB [AR1,P#1.0]
          L     #ANZ_WORTE                  // ANZAHL WORTE
          T     LW [AR1,P#2.0]
          L     W#16#0                      // QUELLE IST KEIN DB (ALSO 0)
          T     LW [AR1,P#4.0]
          L     B#16#83                     // SPEICHERBEREICH IST M
          T     LB [AR1,P#6.0]
          L     B#16#0                      // OBERE ADRESSANGABE == 0
          T     LB [AR1,P#7.0]
          L     #START_QUELLE_MB            // STARTMERKERBYTE SCHIEBEN (3 = BITPOS)
          SLW   3
          T     LW [AR1,P#8.0]              // UND ALS QUELLANFANG MERKEN
    
          LAR1  P##ZIEL                     // POINTERADRESSE FÜR ZIEL ZUM KOPIEREN
          L     B#16#10                     // IM LOKALDATENBEREICH KONSTRUIEREN
          T     LB [AR1,P#0.0]
          L     B#16#4                      // DATENTYP = WORTE
          T     LB [AR1,P#1.0]
          L     #ANZ_WORTE                  // LAENGE = ANZAHL WORTE
          T     LW [AR1,P#2.0]
          L     #REFERNZ_DB                 // DB NUMMER
          T     LW [AR1,P#4.0]
          L     B#16#84                     // SPEICHERBEREICH IST DB
          T     LB [AR1,P#6.0]
          L     B#16#0                      // OBERE ADRESSANGABE == 0
          T     LB [AR1,P#7.0]
          L     #START_ZIEL_DB              // STARTDATENBAUSTEINWORT SCHIEBEN
          SLW   3
          T     LW [AR1,P#8.0]              // UND ALS ZIELANFANG MERKEN
    
          CALL  "BLKMOV"                    // KOPIEREN DER DATENBEREICHE DURCH BLOCKMOVE
           SRCBLK :=#QUELLE                 // VON QUELLE MWxyz nach DBxy,DWxyz FÜR n WORTE
           RET_VAL:=#RETURN
           DSTBLK :=#ZIEL                   // NACH ZIEL
    
          BE                                // UND FERTIG
    führst du einen vergleich aus und es kommt ein signal bei jedem neuen alarm - also deine akustische meldung
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    homei (13.05.2008)

  4. #3
    homei ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.01.2008
    Beiträge
    100
    Danke
    139
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo vierlagig,

    ich danke dir für Deine Hilfe. Allerdings überblicke ich noch nicht, wie das ganze funktioniert. Es gibt auch Befehle, mit denen ich nichts anfangen kann, wie z. B.:

    Warum schiebst Du das Start_MB um 3 Bit nach links?

    Was bedeutet die Schreibweise MB [#QUELLINDEX]?

    MfG
    homei

  5. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von homei Beitrag anzeigen
    Warum schiebst Du das Start_MB um 3 Bit nach links?
    dafür empfehle ich dir Pointer Zeiger FIFO LIFO


    Zitat Zitat von homei Beitrag anzeigen
    Was bedeutet die Schreibweise MB [#QUELLINDEX]?
    eine art der indirekten adressierung mit QUELLINDEX als zahl, z.B. 6 wird das MB 6 adressiert
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    homei (16.05.2008)

  7. #5
    Registriert seit
    20.10.2007
    Beiträge
    191
    Danke
    159
    Erhielt 75 Danke für 54 Beiträge

    Standard

    @4L

    Bei Auftreten einer Störung setze ich ein Bit in meinem Störmelde-DB oder wo auch immer.

    Ist das bei dir anders, also Null für Störung und Eins für keine Störung

    Oder wie soll ich deinen Code verstehen??


    Code:
          ...
          L     B#16#FF                     // LADE KONSTANTE FF 
     
          L     MB [#QUELLINDEX]            // UND NACH MERKERBYTE TRANSFERIEREN
          ==I   
          SPB   OK
          SET   
          =     #GROUPALARM
          ...
    Gruß

    Pizza

  8. Folgender Benutzer sagt Danke zu Pizza für den nützlichen Beitrag:

    homei (16.05.2008)

  9. #6
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Pizza Beitrag anzeigen
    @4L

    Bei Auftreten einer Störung setze ich ein Bit in meinem Störmelde-DB oder wo auch immer.
    bei mir sind alarme drahtbruchsicher ... vielleicht ne blöde angewohnheit aus der schaltschrankplanerzeit
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    homei (16.05.2008)

  11. #7
    Registriert seit
    20.10.2007
    Beiträge
    191
    Danke
    159
    Erhielt 75 Danke für 54 Beiträge

    Standard

    höre ich zum ersten mal

    Alle Programme, die mir je unter die Tasten gekommen waren also "nicht drahtbruchsicher"

    naja, mit dem Wissen lasst sich dein Beispiel jetzt auch nachvollziehen

    Gruß

    Pizza

  12. Folgender Benutzer sagt Danke zu Pizza für den nützlichen Beitrag:

    homei (16.05.2008)

  13. #8
    Registriert seit
    20.10.2007
    Beiträge
    191
    Danke
    159
    Erhielt 75 Danke für 54 Beiträge

    Standard

    noch was:

    Code:
          ...
          L     MW [#QUELLINDEX]            // QUELLWERT (NEU) LADEN       [MWxyz]
          L     DBW [#ZIELINDEX]            // VERGLEICHSWERT (ALT) LADEN  [DWXYZ]
          XOW                               // EXCLUSIV-ODER VERKÜPFEN
          L     DBW [#ZIELINDEX]            // REFERENZWERT AKTUELL NOCHMAL LADEN
          UW                                // UND MIT XOR ERGEBNIS "VERUNDEN"
          L     W#16#0                      // REFERNZ 0000h laden
          ==I                               // BEIDE WERTE VERGLEICHEN
          SPB   EQU                         // WERTE GLEICH, DANN WEITERSUCHEN
          S     #UNGLEICH                   // WERTE UNGLEICH, DANN ERGEBNIS SETZEN
          ...
    ist dieser Teil getestet ??

    Gruß

    Pizza

  14. Folgender Benutzer sagt Danke zu Pizza für den nützlichen Beitrag:

    homei (16.05.2008)

  15. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Pizza Beitrag anzeigen
    ist dieser Teil getestet ??
    jopp, ist seit jahren bei uns so im einsatz
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  16. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    homei (16.05.2008)

  17. #10
    Registriert seit
    20.10.2007
    Beiträge
    191
    Danke
    159
    Erhielt 75 Danke für 54 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    habs schon gemerkt

    mal wieder ein Anfall geistigen Schwachsinns meinerseits.

    nichts für ungut

    Gruß

    Pizza

  18. Folgender Benutzer sagt Danke zu Pizza für den nützlichen Beitrag:

    homei (16.05.2008)

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 22.06.2011, 09:08
  2. Meldung als Statuszeile
    Von L.T. im Forum HMI
    Antworten: 5
    Letzter Beitrag: 19.11.2009, 21:32
  3. Meldung
    Von canucas im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 02.04.2009, 15:53
  4. Antworten: 6
    Letzter Beitrag: 21.04.2008, 20:36
  5. Flanke bei kommender Sammelstörung
    Von norman im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 11.07.2007, 16:50

Lesezeichen

Berechtigungen

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