Bool-Variable zählen Wie ???

Golf2

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte 20 Bool-Variablen zählen und diesen Wert in einem DB ablegen. D.h. wenn alle 20 auf TRUE sind eine Ausgabe v. 20 , wenn 10 auf True dann Ausgabe von 10. Wenn es geht komplette AWL -Liste o.ä. durchgeben. Vielen Dank.
 
FC99 Bitsum aus der Standardbibliothek

Beschreibung

Die Funktion Anzahl der gesetzten Bits zählen (BITSUM) zählt die Anzahl der Bits, die am Eingang IN auf "1" gesetzt werden, und gibt diesen Wert als Funktionswert aus.

Parameter von FC99


Parameter Deklaration Datentyp Speicherbereich Beschreibung
EN Eingang BOOL E, A, M, D, L Der Signalzustand "1" am Freigabeeingang aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand "1", wenn die Funktion fehlerfrei ausgeführt wird.
IN Eingang DWORD E, M, D, L, P, Konstante Variable, in der die Bits gezählt werden sollen.
RET_VAL Ausgang INT A, M, D, L, P Ausgegebener Wert.
Fehlerinformation

Diese Funktion erkennt keine Fehlerbedingungen.

Beispiel

Ist der Signalzustand am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion BITSUM ausgeführt. In diesem Beispiel ist der ausgegebene Wert in MW0 = 13 (”D” in hexadezimaler Schreibweise). Hierbei handelt es sich um die Summe der auf "1" gesetzten Bits in dem Doppelwort des eingegebenen Hexadezimalwerts DW#16#12345678.

Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von ENO und A 0.0 auf "1" gesetzt.

Vielleicht hilft Dir dieser Baustein

Gruss
Audsuperuser
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
*
      U     E      0.0
      FP    M      0.0
      SPBN  end
      L     0
      T     MW    12

      L     2
      SLD   3
      LAR1  

      L     20
next: T     MW    10
      U     M [AR1,P#0.0]
      SPBN  not
      L     MW    12
      +     1
      T     MW    12
not:  +AR1  P#0.1
      L     MW    10
      LOOP  next

end:  NOP   0

zählt nach dem drücken von E0.0 einmalig die bits von M2.0 bis M4.3 (20) und legt das zähl ergebnis in MW12 ab :D
 
Zurück
Oben