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

Ergebnis 1 bis 6 von 6

Thema: Datenbank auf gesetztes Bit untersuchen

  1. #1
    Registriert seit
    08.01.2007
    Beiträge
    54
    Danke
    1
    Erhielt 10 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Folgendes Problem beschäftigt mich:
    ich sammle in einer Datenbank auf 50 Bit Fehlermeldungen .
    Das heißt wenn ein Fehler anliegt dann ist das Bit gesetzt.
    Den Datenbaustein nutzt ein OP17 als Fehlermeldungsbereich,
    was auch gut funktioniert.
    Nun möchte ich mir eine einfache Funktion schreiben die
    die Datenbank auf gesetzte Bits untersucht und mir dann einen MerkerBit
    setzt,sobald eines der 50 Bit gesetzt ist.
    Ich möchte jedoch nicht unbedingt per Copy and Paste ein 100 ZeilenFunktion
    schreiben.
    Deshalb die Frage ob man dies nicht vereinfachen kann?

    Ich hoffe jemand kann mir ein wenig helfen.
    mfg soma
    Zitieren Zitieren Datenbank auf gesetztes Bit untersuchen  

  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,
    man kann Doppelwörter gegen Null vergleichen:

    L DB50.DBD50
    L 0
    <>D
    = "ein Bit ist gesetzt"


    Gruss: V.
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Vergleich  

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Oder als Schleife:

    Code:
          AUF   "STOERMELDUNGEN DB"
    
          L     P#0.0 // Hier geht es bei DBW0 los
          T     #pointer_1 //Temp_Var
    
          L     0
          T     #ergebnis //Temp_VAr
    
          L     4                           //Anzahl Störmeldungen (Wortweise)
    SC02: T     #zaehler  //Temp_Var
    
          L     DBW [#pointer_1]            // Lade Datenwort
          L     0                           // Lade 0
          ==I                               // 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 aud nächstest DW
          L     #pointer_1
          L     P#2.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"
    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
    02.02.2006
    Ort
    Hessen
    Beiträge
    429
    Danke
    16
    Erhielt 28 Danke für 22 Beiträge

    Standard

    Zitat Zitat von soma Beitrag anzeigen
    Nun möchte ich mir eine einfache Funktion schreiben die
    die Datenbank auf gesetzte Bits untersucht und mir dann einen MerkerBit
    setzt,sobald eines der 50 Bit gesetzt ist.
    Hallo,
    mit dem FC99 lassen sich die gesetzten Bits in einem Datenwort sogar zählen.
    mfG Werner
    Hoch lebe die Suchfunktion!
    Zitieren Zitieren FC99 aus Standard Library, TI-S7 converting Blocks  

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

    Beitrag

    Hi,
    nur als Erinnerung: Flanken von DWORDs macht man so:
    Code:
    L   DWORD_Störbits
    L   Hilfs_DWord         // Zustände gespeichert
    XOD
    L   DWORD_Störbits
    UD
    T   DWORD_Flanken   // hier sind die Flankenbits
     
    L   DWORD_Störbits
    T   Hilfs_DWord
    Schon hat man 32 Flankenauswertungen.

    Gruss: V.
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Flankenbits  

  6. #6
    soma ist offline Benutzer
    Themenstarter
    Registriert seit
    08.01.2007
    Beiträge
    54
    Danke
    1
    Erhielt 10 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für eure Hilfe, mit Vladis Idee habe ichs gemacht
    und so gefällt mir das auch sehr gut.
    Besser als meine 100 Zeilen.
    vielen Dank an alle

Ähnliche Themen

  1. S7 Datenbank
    Von sailor im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 20.12.2010, 12:23
  2. SQL Datenbank
    Von kanne43 im Forum HMI
    Antworten: 11
    Letzter Beitrag: 25.02.2009, 21:37
  3. AutoCAD SPS Datenbank
    Von Jaguar im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 23.09.2008, 22:44
  4. SPS-Datenbank
    Von slider im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 22.10.2006, 02:24
  5. Datenbank
    Von M-Arens im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 07.10.2005, 07:05

Lesezeichen

Berechtigungen

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