L I 0.0
XO I 0.1
XO I 0.2
XO I 0.3
= Q 0.0
Aber was mach ich wenn ich jetzt beispielsweise 100 Schalter hätte. Kann man das einfacher lösen oder bräuchte ich theoretisch 100 UNDs ?
Wenn die Eingänge zusammenhängen, kannst du eine Schleife machen und über Pointer indirekt adressieren und die Anzahl der Bits welche 1 sind zählen.
O Ex1
O Ex2
O Ex3
O Ex4
O Ex5
= Ay
L #IN_WORD //alle Bits (Ex1-Ex5) liegen hier drin, nicht benutzte Bit sind 0!
DTR
L DW#16#7FFFFF
UD
L L#0
<>D
R Ay
Ein XOR liefert eine 0, wenn die Anzahl der gesetzten Bits gerade ist und eine 1, wenn diese ungerade ist. Die Lampe würde somit bei 1, 3, 5 gesetzten Bits an sein.
L P#0.0 //Pointer mit Anfangsadresse laden (E0.0)
LAR1
L 0 //Zaehler mit 0 vorbelegen
T #Zaehler
L 100 //Anzahl zu pruefender Eingaenge
Next: T #LoopCounter //Schleifenbeginn
U E [AR1,P#0.0]
SPBN M0
L #Zaehler //Wenn Eingang aktiv, dann Zaehler um 1 nach oben
L 1
+I
T #Zaehler
M0: NOP 0
L P#0.1 //Zeiger um 1 Bit nach oben
+AR1
L #LoopCounter
LOOP Next //Schleifenende
//Anzahl aktiver Eingaenge pruefen, wenn 1, dann Ausgang aktiv
L #Zaehler
L 1
==I
= A 5.0
Nö, in dem Falle lieber diese Version (aber natürlich abgewandelt) von thomas2.1, die ist durchaus tricky: http://www.sps-forum.de/showthread.php?t=30043&highlight=Mantisse
Also wie du die Mantissen Spielerei bei 100bit durchziehen willst zeigst mir mal. Und LESBAR ist das dann auch nicht mehr, gehört m.E. eher in die "dirty tricks" Kiste. Gruß von Andy
Da geht es halt nicht in einem Rutsch und es müssen mehrere Teile separat bearbeitet werden. Und die Ergebnisse in ein Wort geschrieben und dieses wieder in einem Vergleich untersucht werden.Und warum die Mantissen-Spielerei bei 100 Bits scheitern soll erschließt sich mir auch nicht.
FUNCTION FC 3 : VOID
TITLE =
VERSION : 0.1
BEGIN
NETWORK
TITLE =
CALL "BITSUM" (
IN := ED 0,
RET_VAL := MW 100);
NOP 0;
NETWORK
TITLE =
CALL "BITSUM" (
IN := ED 4,
RET_VAL := MW 102);
NOP 0;
NETWORK
TITLE =
L MW 100;
L MW 102;
+I ;
T MW 104;
NOP 0;
NETWORK
TITLE =
L MW 104;
L 1;
==I ;
= A 124.0;
END_FUNCTION
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?