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

Ergebnis 1 bis 8 von 8

Thema: DB Durchsuchen und Bits hochzählen

  1. #1
    Registriert seit
    12.11.2010
    Beiträge
    5
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten morgen SPS Gemeinde!

    Ich habe ein Array im Datenbaustein geschrieben und möchte jeweils das erste Bit (wenn 1) hochzählen um zu wissen wie oft das die Anlage aufgrund diesen Fehler Ausschuss produziert hat. (Im Anhang ist ein Auszug des DB´s)

    So nun zu meinem Problem:
    Mein Programm zählt nicht Prozessicher hoch.
    D.h wenn zb DBX2.0 DBX4.0 und DBX6.0 high wären würde er nur um eins hochzählen.

    Programm:
    NW1

    U #Trigger
    FP #fp2
    SPBN m100
    R #Init
    S #Ges_Trigger
    m100: NOP 0

    NW2

    L #DBNR
    T #DBNR_intern
    AUF DB [#DBNR_intern]

    U #Ges_Trigger
    UN #Init
    FP #FP1
    SPBN m001
    R #Ges_Trigger
    L #Datenende
    T #Laenge_intern

    L #Laenge_intern
    L 2
    -I
    T #Adresse
    T #Laenge_intern
    L #Adresse
    ==I

    SPBN m001
    S #Init
    m001: NOP 0

    U #Init

    SPBN m002
    L #Adresse

    SLW 3

    LAR1

    U DBX [AR1,P#0.0]
    FP #fp3
    SPBN m007
    L Zähler
    L 1
    +I
    T Zähler
    m007: NOP 0


    L #Adresse
    L #Datenanfang
    ==I
    SPB m002


    L #Adresse
    L 2
    -I
    T #Adresse

    m002: NOP 0

    Vielleicht sieht von euch einer den Fehler den ich nicht sehe.

    Mit freundlichen Grüssen und Danke im vorraus.

    Rene
    Angehängte Grafiken Angehängte Grafiken
    • Dateityp: jpg DB.jpg (179,5 KB, 28x aufgerufen)
    Zitieren Zitieren DB Durchsuchen und Bits hochzählen  

  2. #2
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Ich würde mir bei SPBN überlegen, ob ich danach mit Flanken weiter arbeite.
    Das kann schnell Probleme bereiten.

  3. #3
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard

    In SCL wären das keine 10 Zeilen Code. Kommt das in Frage?
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  4. Folgender Benutzer sagt Danke zu Tigerente1974 für den nützlichen Beitrag:

    renesan (20.09.2011)

  5. #4
    renesan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.11.2010
    Beiträge
    5
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo!

    Die Programmiersprache SCL behersche ich leider NOCH nicht.

    mfg

  6. #5
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    Hallo Rene!

    Du musst für jedes Bit, dass Du mit einer Flanke prüfen willst einen eigenen Flankenmerker haben:
    Zitat Zitat von renesan Beitrag anzeigen
    U DBX [AR1,P#0.0]
    FP #fp3 // vllt. ersetzen durch DBX[AR1, p#0.5] (Ist in Deinem DB ja noch frei!
    SPBN m007
    L Zähler
    L 1
    +I
    T Zähler
    m007: NOP 0
    Wird dieser Baustein nur einmal pro Zyklus durchlaufen?
    Dann wird auch nur ein Bit pro Zyklus abgefragt. => Schleife basteln.

    Dann ist mir noch was aufgefallen:
    Zitat Zitat von renesan Beitrag anzeigen

    L #Laenge_intern
    L 2
    -I
    T #Adresse
    T #Laenge_intern
    L #Adresse
    ==I // Hier ist das VKE immer 1! Denn Du vergleichst hier eine Variable mit sich selbst.

    SPBN m001
    S #Init
    m001: NOP 0
    Ich hoffe es hilft Dir weiter.

    Grüße
    Gebs

  7. Folgender Benutzer sagt Danke zu Gebs für den nützlichen Beitrag:

    renesan (20.09.2011)

  8. #6
    renesan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.11.2010
    Beiträge
    5
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke Gebs!

    Ich werd deine Anregungen gleich morgen mal testen und meld mich dann nochmal ob es geklappt

    MFG
    Rene

  9. #7
    renesan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.11.2010
    Beiträge
    5
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo!

    Als erstes danke für die Hilfe . Das Problem ist gelöst.
    Es sind sicher noch kleine Bug´s drin aber prinzipiell funktioniert es so.

    NW1
    U #Trigger
    FP #fp2
    SPBN m100
    R #Init
    S #Ges_Trigger
    m100: NOP 0

    NW2

    L #DBNR
    T #DBNR_intern
    AUF DB [#DBNR_intern]

    U #Ges_Trigger
    UN #Init
    FP #FP1
    SPBN m111
    R #Ges_Trigger

    L 0
    T #NIO_Zaehler

    L #Datenende
    T #Laenge_intern
    T #Adresse
    T #Adresse_FP_reset
    S #Init

    m111: NOP 0
    U #Init
    SPBN m002

    L #Adresse

    SLW 3
    LAR1

    U DBX [AR1,P#0.0]
    FP DBX [AR1,P#0.7]
    SPBN m007
    L #NIO_Zaehler
    L 1
    +I
    T #NIO_Zaehler
    m007: NOP 0

    TAR1

    L #Adresse
    L #Datenanfang
    ==I
    SPB m003

    L #Adresse
    L 2
    -I
    T #Adresse

    m002: NOP 0
    m003: NOP 0

    NW3

    U(
    L #Adresse
    L #Datenanfang
    ==I
    )
    L S5T#400MS

    SE #Zeitglied
    U #Zeitglied
    = #Daten_verschoben

    U #Zeitglied
    SPBN m010
    R #Init
    m010: NOP 0
    NOP 0

    NW4

    U #Zeitglied
    UN #HM2
    SPBN m112

    L #Adresse_FP_reset
    SLW 3
    LAR1

    R DBX [AR1,P#0.7]

    TAR1
    L #Adresse_FP_reset
    L #Datenanfang
    ==I
    SPB m112

    L #Adresse_FP_reset
    L 2
    -I
    T #Adresse_FP_reset

    m112: NOP 0

    MFG
    Rene

  10. #8
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und nächstes mal benutze bitte den Code-Button. (#)
    Code:
    U E0.0
    U E0.1
    = A4.0
    Das macht das ganze besser leserlich.
    Viel Spaß hier im Forum!

    Gruß wolder
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

Ähnliche Themen

  1. in SCL Bitadressen hochzählen
    Von JOKER83 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.06.2009, 22:44
  2. Antworten: 15
    Letzter Beitrag: 28.03.2008, 09:02
  3. Doppelwörter hochzählen MD1>MD2 usw.
    Von mkd im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 19.12.2006, 07:13
  4. Hochzählen
    Von Alamoh im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 19.10.2006, 06:32
  5. Bits in temporäres Byte mappen und gesetzte Bits zählen
    Von yetibrain im Forum PC- und Netzwerktechnik
    Antworten: 3
    Letzter Beitrag: 19.02.2005, 16:31

Lesezeichen

Berechtigungen

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