Anzahl daten grösser null ermitteln

uz71

Level-1
Beiträge
100
Reaktionspunkte
0
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
 
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Daten grösse rnull

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
 
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
 
Werte grösser Null

Danke für die schnelle Antwort.
Funktioniert prima
Gruss
uz
 
Zuletzt bearbeitet:
nairolf schrieb:
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! :rolleyes: Sorry hab nicht aufgepasst.

Mfg Godi
 
Zurück
Oben