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

Ergebnis 1 bis 9 von 9

Thema: Anzahl daten grösser null ermitteln

  1. #1
    Registriert seit
    11.06.2004
    Beiträge
    100
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    zur Zeit stehe ich voll auf dem Schlauch

    wie kann ich in S7 ermitteln wieviele Datendoppelwörter(Real) von insgesamt 20 Stück grösser null sind?

    Gruss
    uz
    Zitieren Zitieren Anzahl daten grösser null ermitteln  

  2. #2
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Hallo!

    Programmierst eine Schleife mit 20 durchläufen. In jedem durchlauf Addressierst du indirekt ein Doppelwort und vergleichst es mit Null. Wenn grösser als Null dann Zähle im einem Byte 1 dazu.

    Mfg Godi

  3. #3
    uz71 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.06.2004
    Beiträge
    100
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für den Tip das mit der Schleife ist eine gute Idee allerdings weis ich nicht wie ich die DBD indirekt adressieren kann.

    Gruss
    Zitieren Zitieren Daten grösse rnull  

  4. #4
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Hallo!

    Probiers mal so:
    Code:
          AUF   DB    10                    //DB wo deine Werte stehen
          LAR1  P#20.0                      //Adresse im DB wo dein erster Wert zum vergleichen steht
          L     20                          //Anzahl Schleifendurchläufe
    next: T     #Schleifenzaehler           //Momentaner Wert Schleifendurchläufe
          L     DBD [AR1,P#0.0]             //Lade indirekt Wert aus DB
          L     0                           //Lade 0
          ==I                               //Vergleiche Wert mit 0
          SPBN  m1                          //Wenn Wert ungleich 0 dann springe zu m1
          L     #Anzahl_Nullen              //Anzahl der Werte die Null enthalten
          L     1                           //Lade 1
          +I                                //Rechne Anzahl der Werte die Null enthalten Plus 1
          T     #Anzahl_Nullen              //Transferiere neuen Wert in Anzahl der Werte die Null enthalten
    m1:   +AR1  P#4.0                       //Erhöhe das Adressregister 1 um 4Byte (für Doppelwort)
          L     #Schleifenzaehler           //Lade Momentaner Wert Schleifendurchläufe
          LOOP  next                        //Wenn Akku1 nicht null dann springe zu next
    Variablen sind alles Byte

    Mfg Godi

  5. #5
    uz71 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.06.2004
    Beiträge
    100
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die schnelle Antwort.
    Funktioniert prima
    Gruss
    uz
    Geändert von uz71 (25.03.2006 um 19:43 Uhr)
    Zitieren Zitieren Werte grösser Null  

  6. #6
    Registriert seit
    15.11.2005
    Beiträge
    89
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Sollte der Vergleich für DBD'S nicht so lauten:

    Code:
     L     DBD [AR1,P#0.0]             //Lade indirekt Wert aus DB
     L     L#0                           //Lade 0
     ==D                               //Vergleiche Wert mit 0
    Cu, nairolf
    _________________________________________
    Solls funktionieren, oder darfs auch Siemens sein?

  7. #7
    Registriert seit
    06.10.2003
    Beiträge
    3.411
    Danke
    451
    Erhielt 504 Danke für 407 Beiträge

    Standard

    Genau genommen geht es um Real und >0.0

    Code:
     
    L     DBD [AR1,P#0.0]
    L     0.000000e+000
    >R

    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  8. #8
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Zitat Zitat von nairolf
    Sollte der Vergleich für DBD'S nicht so lauten:

    Code:
     L     DBD [AR1,P#0.0]             //Lade indirekt Wert aus DB
     L     L#0                           //Lade 0
     ==D                               //Vergleiche Wert mit 0
    Cu, nairolf

    UPS! Sorry hab nicht aufgepasst.

    Mfg Godi

  9. #9
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    vom prinzip hat der onkel recht.

    aber null ist null egal welches format.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

Ähnliche Themen

  1. maximale grösser der HD eines Lifebook c1410
    Von maxi im Forum PC- und Netzwerktechnik
    Antworten: 1
    Letzter Beitrag: 14.01.2009, 10:54
  2. Antworten: 24
    Letzter Beitrag: 30.07.2008, 19:39
  3. Anzahl der beschrieben Bytes im DB ermitteln
    Von hATZEnbrECHT im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.06.2008, 01:24
  4. MPI Adresse grösser 31? Probleme?
    Von mertens2 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 27.07.2007, 17:57
  5. Antworten: 1
    Letzter Beitrag: 14.12.2005, 21:42

Lesezeichen

Berechtigungen

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