Bitsummierer Microwin S7-200

Zuviel Werbung?
-> Hier kostenlos registrieren
BITSUM

Hallo Hamlet,

müsste so gehen. Habs nur jetzt mit Parametern gemacht. Die letzte CPU hats nicht unterstützt.

Code:
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=BITSUM
// 2005 by André Räppel
// [url]www.sps-concept.de[/url]
VAR_INPUT
IN:BYTE;	// Eingangsvariable fuer Zaehlung
END_VAR
VAR_OUTPUT
OUT:INT;	// Anzahl gesetzter Bits
END_VAR
VAR
tmp_byte:BYTE;	// temp. Byte fuer Zaehlung
tmp_anzahl:INT;	// temp. Anzahl gesetzter Bits
END_VAR
BEGIN
Network 1 // Init Anzahl
LD     SM0.0
MOVW   0, LW4
Network 2 // IN auf temp schieben
LD     SM0.0
MOVB   LB0, LB3
Network 3 // Sprungmarke fuer Ruecksprung Zaehlung
LBL    1
Network 4 // Vergleich auf 0 -> Ende
LDB=   LB3, 0
JMP    2
Network 5 // 1 Stelle nach rechts schieben
LD     SM0.0
SRB    LB3, 1
Network 6 // Anzahl erhoehen wenn ausgeschobenes Bit = 1
LD     SM1.1
+I     +1, LW4
Network 7 // Ruecksprung -> naechstes Bit
LD     SM0.0
JMP    1
Network 8 // Ende Zaehlen
LBL    2
Network 9 // Anzahl ausgeben
LD     SM0.0
MOVW   LW4, LW1
END_SUBROUTINE_BLOCK

MfG
André Räppel
 
Zurück
Oben