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

Ergebnis 1 bis 6 von 6

Thema: Einfach ermitteln, ob in einem DB ein Bit gesetzt wurde

  1. #1
    Registriert seit
    29.08.2007
    Ort
    Köln
    Beiträge
    22
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich möchte einen DB, der ausschließlich aus boolschen Variablen besteht, dahingehend untersuchen, ob ein Bit gesetzt wurde.
    Ich könnte eine Schleife programmieren, die jedes einzelne Bit, ggf. zu DWord zusammengefasst, überprüft (mittels indirekter Adressierung). Gibt es eine einfachere Möglichkeit ?
    Schonmal Danke
    Zitieren Zitieren Einfach ermitteln, ob in einem DB ein Bit gesetzt wurde  

  2. #2
    Registriert seit
    23.11.2004
    Beiträge
    347
    Danke
    2
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Zitat Zitat von KingShango Beitrag anzeigen
    Hallo,
    ich möchte einen DB, der ausschließlich aus boolschen Variablen besteht, dahingehend untersuchen, ob ein Bit gesetzt wurde.
    Ich könnte eine Schleife programmieren, die jedes einzelne Bit, ggf. zu DWord zusammengefasst, überprüft (mittels indirekter Adressierung). Gibt es eine einfachere Möglichkeit ?
    Schonmal Danke
    Vergleich doch das Doppelword einfach auf den Wert Null.
    Ob eine Schleife lohnt hängt von der Anzahl der Doppelworte ab.

    Gruß
    raika
    Rainer Kandziora
    Grollmus GmbH
    Qualität in SIMATIC Schulungen
    E-Mail: mailto:Rainer.Kandziora@grollmus.de
    Internet: http://www.grollmus.de

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.260
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Als DWord zusammengefaßt über eine Schleife laufen lassen, was besseres fällt mir dazu auch nicht ein.
    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

  4. #4
    Registriert seit
    26.02.2006
    Beiträge
    30
    Danke
    1
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Hallo,

    Du kannst alle DWORD mit OD verodern (evtl. in einer Schleife) und am Ende das Ergebnis auf <>0 abfragen. Noch schneller fällt mir zur Zeit auch nichts ein.

    MfG SPS_Fuzzy

  5. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.260
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Hier mal ein kleines Beispiel:
    Code:
          AUF   "STOERMELDUNGEN DB"
    
          L     P#0.0
          T     #pointer_1
    
          L     0
          T     #ergebnis
    
          L     32                          //Anzahl Störmeldungen (DWordweise)
    SC02: T     #zaehler
    
          L     DBD [#pointer_1]            // Lade Datendoppelwort
          L     0                           // Lade 0
          ==D                               // keine Störmeldung !!!
          SPB   NUL2                        // Ergebnis nicht hochzählen
          L     #ergebnis                   // bei Erg <> 0 Ergebnis hochzählen
          L     1                           // um 1 erhöhen
          +I    
          T     #ergebnis
    
    NUL2: NOP   0                           // Zeiger erhöhen auf nächstes DD
          L     #pointer_1
          L     P#4.0
          +D    
          T     #pointer_1
          L     #zaehler
          LOOP  SC02                        // Schleife solange, bis #zaehler auf 0
    
          L     #ergebnis                   // bei Ergebnis <> 0 liegt Fehler vor
          L     0
          <>I   
          =     "M1.0 Sammelfehler"
    @SPS_Fuzzy

    Hast Recht, verodern ist wahrscheinlich weniger Aufwand. Na ja, wenn man mal in seinen eingefahrenen Bahnen denkt .
    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
    KingShango ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.08.2007
    Ort
    Köln
    Beiträge
    22
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja, so mach ich das. So ähnlich hatte ich mir das auch schon vorgestellt. Ich dachte nur, vielleicht gibt es da schon ne fertige Funktion in der Library. Vielen vielen Dank !

Ähnliche Themen

  1. Ermitteln der U/min mit einem Inkrementalgeber
    Von AnMenzel im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 11.05.2009, 12:34
  2. Antworten: 5
    Letzter Beitrag: 21.04.2008, 19:57
  3. Antworten: 8
    Letzter Beitrag: 07.07.2006, 09:09
  4. Antworten: 1
    Letzter Beitrag: 14.12.2005, 21:42
  5. Parität aus einem DW ermitteln
    Von spunky im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 07.06.2005, 09:37

Lesezeichen

Berechtigungen

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