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

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 49

Thema: Störbits erkennen

  1. #21
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von spirit Beitrag anzeigen
    Ferner eine Meldeanzeige, die immer automatisch aufpoppen soll, wenn ein Störungsbit aktiv ist, bzw. ein neues hinzukommt. Störungsbit ist hier vielleicht der falsche Ausdruck, da es eigentlich Betriebsmeldungen (Hinweise für den Benutzer) sind, und keine Alarme!

    Also, ein Bit aus dem DB10 wird aktiv --> Meldeanzeige mit Text geht auf. Der Benutzer kann das zur Kenntnis nehmen und über eine Taste die Meldeanzeige (auch bei noch aktivem Störungsbit) wieder ausschalten. Kommt eine neue Meldung hinzu, so poppt die Anzeige erneut auf und wenn sie nicht durch den Benutzer geschlossen wird, so wird sie automatisch geschlossen, wenn keine Meldung (Störungsbit) mehr anliegt.
    So eine klare Beschreibung ist doch einfach umzusetzen.
    Das A4.7 soll der Trigger für das Aufpoppen der Meldeanzeige sein.
    Code:
          CLR                   // (vorsichtshalber VKE begrenzen)
    
    // Bei "Kommen" einer neuen Meldung --> Signalisierung EIN
          L     MD216
          INVD
          L     DB10.DBD16
          T     MD216
          UD
          U     <>0             // mindestens 1 Bit im DBD neu dazugekommen
          S     A4.7
    
          L     MD220
          INVD
          L     DB10.DBD20
          T     MD220
          UD
          U     <>0             // mindestens 1 Bit im DBD neu dazugekommen
          S     A4.7
    
          L     MD224
          INVD
          L     DB10.DBD24
          T     MD224
          UD
          U     <>0             // mindestens 1 Bit im DBD neu dazugekommen
          S     A4.7
    
          L     MD228
          INVD
          L     DB10.DBD28
          T     MD228
          UD
          U     <>0             // mindestens 1 Bit im DBD neu dazugekommen
          S     A4.7
    
    // Signalisierung AUS bei "keine Meldung mehr aktiv" oder bei vorher Quittieren
          L     DB10.DBD16
          L     DB10.DBD20
          OD
          L     DB10.DBD24
          OD
          L     DB10.DBD28
          OD
          O     ==0             // alle Bits in allen DBD sind 0
          O     "OP_ACK"        // oder Taste zum Ausblenden der Meldeanzeige
          R     A4.7
    Wenn das hier so funktioniert wie gewünscht, dann entscheide, ob es sich lohnt, das in eine Schleife umzuformen. Hier kannst Du ja gut sehen was wiederholt werden muß und was in jedem Schleifendurchlauf unterschiedlich sein muß.

    Falls Du mit "Aufpoppen einer Meldeanzeige" eigentlich ein Meldefenster in WinCC flexible meinst, dann hilft dieser Code wahrscheinlich nicht viel, weil Du dann das Verhalten des Meldefensters passend projektieren und steuern mußt, was selber schon eine "Kommen/Gehen/Quittiert"-Logik hat, welche außerdem noch davon abhängig ist, ob Meldungen einer Meldeklasse überhaupt quittiert werden müssen und können.


    Bevor Du anfängst irgendwas zu programmieren, beschreibe vollumfänglich was dabei herauskommen soll. Dann überlege, ob das überhaupt so realisierbar ist und wenn ja wie. Erst wenn die Aufgabenstellung widerspruchsfrei ist, dann kannst Du anfangen, die in Software umzusetzen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    spirit (10.07.2014)

  3. #22
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen

    Wenn das hier so funktioniert wie gewünscht, dann entscheide, ob es sich lohnt, das in eine Schleife umzuformen. Hier kannst Du ja gut sehen was wiederholt werden muß und was in jedem Schleifendurchlauf unterschiedlich sein muß.

    Falls Du mit "Aufpoppen einer Meldeanzeige" eigentlich ein Meldefenster in WinCC flexible meinst, dann hilft dieser Code wahrscheinlich nicht viel, weil Du dann das Verhalten des Meldefensters passend projektieren und steuern mußt, was selber schon eine "Kommen/Gehen/Quittiert"-Logik hat, welche außerdem noch davon abhängig ist, ob Meldungen einer Meldeklasse überhaupt quittiert werden müssen und können.

    Harald
    Lieben Dank Harald! (Danke-Button drücke ich dann später ... )

    Also für zwei DBD's hatte ich es schon so gelöst und es hat auch funktioniert.

    Nein, ich meine kein Meldefenster sondern schon die Meldeanzeige! Und diese lässt sich ja so einstellen, dass sie bei aktivem Ausgang auf dem Display erscheint. Insofern ist das schon so ok.

    Jetzt noch zur Schleife:

    Vom Code her ist die Schleife wohl hier nicht gerechtfertigt; aber für mein Ego schon! Hatte gehofft so eine Schleife selbstständig hinzubekommen; hat aber leider nicht geklappt. Naja.

    MD216 - 228 werden doch eigentlich in meiner Schleife durch den #pointer_2 ersetzt, so dass dieser nur einmal programmiert werden muss.

    Mein Problem ist, dass ich nicht weiß, wo ich den Block mit dem Rücksetzen des Ausgangs einfügen soll. Automatisch darf ja nur rückgesetzt werden, wenn alle Störungsbits = Null sind. Somit müsste ich als Abfragebedingung ja auch noch ins Spiel bringen, dass der Schleifenzähler = 0 ist; also alle Durchläufe beendet sind, oder?
    LG
    spirit

  4. #23
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.714
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Automatisch darf ja nur rückgesetzt werden, wenn alle Störungsbits = Null sind.
    Ich vermute mal, dass hier gar nichts automatisch zurück gesetzt werden soll, damit der Anwender mitbekommt, dass eine Störung vorhanden war. Auch wenn diese (und auch keine andere Störung) schon gar nicht mehr vorliegt, wenn er auf den Bildschirm schaut, oder?
    Somit erfolgt das Rücksetzen ausschließlich bei Druck auf den Quittierbutton.

  5. #24
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Es sind Betriebsmeldungen, welche ein- und ausgeblendet werden, die der Bediener aber auch "wegklicken" können soll. siehe oben in #21 das Zitat vom #16

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #25
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Mein Problem ist, dass ich nicht weiß, wo ich den Block mit dem Rücksetzen des Ausgangs einfügen soll. Automatisch darf ja nur rückgesetzt werden, wenn alle Störungsbits = Null sind.
    Mache 2 Schleifen nacheinander. Die erste Schleife sucht neue 1-Bits und die zweite Schleife sucht irgendein 1-Bit. Die zweite Schleife kann abgebrochen werden, sobald irgendein 1-Bit festgestellt wurde.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #26
    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 PN/DP Beitrag anzeigen
    Mache 2 Schleifen nacheinander. Die erste Schleife sucht neue 1-Bits und die zweite Schleife sucht irgendein 1-Bit. Die zweite Schleife kann abgebrochen werden, sobald irgendein 1-Bit festgestellt wurde.

    Harald
    wozu zwei Schleifen? wenn ich weiß, wieviele Bits den Zustand TRUE haben kann man doch daraus ableiten, dass irgendein Bit den Zustand TRUE besitzt und weiter kann ich aus der Information, das 0 Bits den Zustand TRUE haben ableiten, dass die Anzeige geschlossen werden kann.

    es geht also nur noch darum Bits zu zählen.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #27
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    wozu zwei Schleifen? wenn ich weiß, wieviele Bits den Zustand TRUE haben kann man doch daraus ableiten, dass irgendein Bit den Zustand TRUE besitzt und weiter kann ich aus der Information, das 0 Bits den Zustand TRUE haben ableiten, dass die Anzeige geschlossen werden kann.

    es geht also nur noch darum Bits zu zählen.
    Hi vierlagig,

    aber bei Pointern kann ich doch eigentlich nur einen Vergleich auf Null machen, oder?

    Code:
          L     DBD [#pointer_1]
          L     L#0
          ==D
    LG
    spirit

  9. #28
    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 spirit Beitrag anzeigen
    Hi vierlagig,

    aber bei Pointern kann ich doch eigentlich nur einen Vergleich auf Null machen, oder?

    Code:
          L     DBD [#pointer_1]
          L     L#0
          ==D
    ach stimmt, da war was - da kann ich dir leider nicht weiterhelfen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #29
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    ach stimmt, da war was - da kann ich dir leider nicht weiterhelfen
    jaja, mach nur weiter so ...

    Irgendwann wird diese blöde Schleife schon noch funktionieren (hoffe ich zumindest). Und du musst dir dann vorwerfen, nicht am Erfolg beteiligt gewesen zu sein!
    LG
    spirit

  11. #30
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vierlagig Beitrag anzeigen
    wozu zwei Schleifen? wenn ich weiß, wieviele Bits den Zustand TRUE haben kann man doch daraus ableiten, dass irgendein Bit den Zustand TRUE besitzt und weiter kann ich aus der Information, das 0 Bits den Zustand TRUE haben ableiten, dass die Anzeige geschlossen werden kann.

    es geht also nur noch darum Bits zu zählen.
    Hmm, irgendwie kann ich Dir heute früh nicht folgen...
    Aus welcher Information kannst Du dann ableiten, daß die Anzeige eingeblendet werden soll? Welche Art Bits willst Du "zählen"?

    Ich brauche 2 verschiedene Informationen, welche ich ermitteln muß:
    - ist 0 oder mindestens 1 TRUE-Bit neu dazugekommen? --> bei <>0 die Anzeige einblenden
    - ist 0 oder mindestens 1 TRUE-Bit vorhanden? --> bei ==0 die Anzeige ausblenden

    Ob man diese 2 Informationen in ein oder zwei Schleifen ermittelt ist doch Nebensache. Die zwei-Schleifen-Variante läßt sich imho einfacher aus dem linearen Programm von #21 erstellen, und ich finde die auch übersichtlicher. Deshalb habe ich spirit empfohlen, zwei Schleifen zu benutzen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. \r\n erkennen
    Von skywalker79 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 26.09.2012, 07:54
  2. Berührung TP erkennen
    Von Harry im Forum HMI
    Antworten: 8
    Letzter Beitrag: 05.08.2009, 12:34
  3. Spannungsausfall erkennen
    Von baalrok im Forum Simatic
    Antworten: 87
    Letzter Beitrag: 20.08.2008, 21:54
  4. Bildänderung erkennen
    Von costa im Forum PC- und Netzwerktechnik
    Antworten: 3
    Letzter Beitrag: 17.04.2007, 12:42
  5. Palette erkennen
    Von Zimbo30 im Forum Programmierstrategien
    Antworten: 33
    Letzter Beitrag: 19.03.2007, 20:01

Lesezeichen

Berechtigungen

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