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

Ergebnis 1 bis 2 von 2

Thema: Wie speichere ich eine Bitadresse ?

  1. #1
    Registriert seit
    02.11.2006
    Beiträge
    496
    Danke
    217
    Erhielt 25 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forum,

    ich möchte für eine Fehler- History die Bit- Adresse der aufgetretenen Meldungen speichern.

    Die Meldungen werden z.B. in DB1. DBW0 gesichert.
    Bei neuer Meldung wird DB1.DBW0 in einer Schleife mittels Pointer gelesen. Wenn z.B. DB1.DBX0.5 =1, dann soll die Adresse gespeichert werden.
    Wenn danach z.B. DB1.DBX0.7 =1, dann soll diese Adresse auch gespeichert werden. ( max. die letzen 32 Meldungen )

    Wie stellt man sowas an ?

    Mfg
    Zitieren Zitieren Wie speichere ich eine Bitadresse ?  

  2. #2
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von mega_ohm Beitrag anzeigen
    Bei neuer Meldung wird DB1.DBW0 in einer Schleife mittels Pointer gelesen. Wenn z.B. DB1.DBX0.5 =1, dann soll die Adresse gespeichert werden.
    Wenn danach z.B. DB1.DBX0.7 =1, dann soll diese Adresse auch gespeichert werden. ( max. die letzen 32 Meldungen )
    Hallo mega_ohm,

    durch Deine Schleife weißt Du ja schon an welcher Position das High Bit steht. (1-32)
    Sobald Du ein High Bit erkennst, speicherst Du Dir den Wert des Schleifenzähler (1-32) in einen separaten DB und erhöhst sofort die Adresse der Speicherstelle (DBW).
    Der Speicher DB würde dann nach dem ersten Durchgang so aussehen:
    Code:
    DB 2.DBW2 == 6 // Bit 5
    DB 2.DBW4 == 8 // Bit 7
    Du musst Dir allerdings merken dass Du das Bit schon gespeichert hast, sprich das Bit separat speichern.
    Code:
    AUF DB1
    U   DBX [AR1, P#0.0]   // Störungs Bit
    AUF DB2
    UN  DBX [AR1, P#0.0]  // Speicher Bit
    SPBN NO
            L #Zeiger  // Statisch Zeiger für neuste Störung
            SLD 3
            LAR 2
            L #Schleifenzaehler  // Schleifenzähler durch die Störbits 1-32
            AUF DB2
            T   DBW [AR2, P#0.0] // Fortlaufende Störungsnummer
            L  #Zeiger
            +2
            T  #Zeiger
    NO: NOP 0
    AUF DB1
    U   DBX [AR1, P#0.0]  // Aktuellen Zustand merken
    AUF DB2
    =   DBX [AR1, P#0.0]  // und sichern
    Ich hoffe der Code passt einigermaßen
    Geändert von Paule (23.10.2009 um 06:46 Uhr)
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

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

    mega_ohm (24.10.2009)

Ähnliche Themen

  1. Frage: benötige für eine LOGO eine Steuerung
    Von movie im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 15.08.2011, 14:16
  2. Antworten: 3
    Letzter Beitrag: 13.04.2011, 07:22
  3. Antworten: 8
    Letzter Beitrag: 08.10.2010, 10:10
  4. Antworten: 4
    Letzter Beitrag: 29.05.2009, 21:02
  5. wo speichere ich Betriebsstundenzähler sicher?
    Von Anonymous im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 27.10.2005, 13:36

Lesezeichen

Berechtigungen

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