Hoi,
IK ben bezig met een programma. Het werkt bijna alleen moet ik nog een programma maken dat van decimaal naar bianir moet, alleen weet ik niet hoe. ik kan het zo doen
IF getal=0
THEN r0:=false; r1:=false; r2:=false; r3:=false; r4:=false; r5:=false; r6:=false;
ELSIF getal=1
THEN r0:=true; r1:=false; r2:=false; r3:=false; r4:=false; r5:=false; r6:=false;
maar dat moet ik tot 127 doen en dat is me toch iets teveel. En ik weet zeker dat het op een andere manier kan maar niet welke. Kunnen jullie me helpen.
Ferry
Ferry.......
kijk eens naar de waardes van de verschillende bit's in een binair getal en wat ze voorstellen
0 1 2 3 4 5 6 7
1 2 4 8 16 32 64 128
2^0 2^1 2^2 2^3 2^4 2^5 2^6 2^7 ( machtsverheffen)
if getal-128 => 0 then bit 7=1 : getal is getal-128
etc etc.
op deze manier kun je zelf wel verder iets verzinnen denk ik
suc6 Ferry......
DUs je dacht hier aan:
DIt werkt niet maar ik weet niet waarom kunnen jullie mij het zeggen.
IF count_roll-64<=0
THEN r6:=true;
count_roll:=count_roll-64;
END_IF;
IF (count_roll-32)<=0
THEN r5:=true;
count_roll:=count_roll-32;
END_IF;
IF count_roll-16<=0
THEN r4:=true;
count_roll:=count_roll-16;
END_IF;
IF count_roll-8<=0
THEN r3:=true;
count_roll:=count_roll-8;
END_IF;
IF count_roll-4<=0
THEN r2:=true;
count_roll:=count_roll-4;
END_IF;
IF count_roll6-2<=0
THEN r1:=true;
count_roll:=count_roll-2;
END_IF;
IF count_roll-1<=0
THEN r0:=true;
count_roll:=count_roll-1;
Stel getal = x
delen getal = getal /2 => getal met Rest y
Shift right Rest
zolang getal > 0 goto delen
end
Shift Reg bevat het reslutaat
VB neem 115
115 / 2 = 57 rest 1
57 / 2 = 28 rest 1
28 / 2 = 14 rest 0
14 / 2 = 7 rest 0
7 / 2 = 3 rest 1
3 / 2 = 1 rest 1
1 / 2 = 0 rest 1
bovenste bit is het LSB ( Least significant bit )
Dus kantel het resultaat 90 graden naar rechts en voila
115 = 1 1 1 0 0 1 1
binair, hexadecimaal, integer, ... zijn maar representaties van het FORMAAT.
kan je plctje niet getal.0 getal.1 getal.2 ... verwerken in het programma ?
graag reactie WELKE plc je juist gebruikt ?
in Modicon is dat MBIT en SENS dus met andere plc moet dat perfect lukken.
in Siemens moet het ook op die manier lukken al weet ik niet direct meer hoe 
met een microcontroller, bv AVR, gaat het ook op die manier dus het lijkt men nogal raar dat je moet gaan berekeningen maken, al is vorig antwoord wel de basis van de digitale en binaire logica en eigenlijk zou je die moet kennen (shame on you)
Op 10 juli 2007 19:16:11 schreef Peter112:
Wat voor merk en soort PLC hebben we het hier over ?In BV Simatic S7 is hier statement ITB voor.
ITB is integer to BCD conversie.
Een integer is al een binair getal: als je een integer in een MW laad kun je eenvoudig de losse merkers bekijken en zien dat je al gewoon binair hebt.
Dus: wat is het probleem nou helemaal? Dit is bij alle PLC's nl al zo volgens mij.
Op 22 juli 2007 20:18:30 schreef GJ_:
[...]
ITB is integer to BCD conversie.
Een integer is al een binair getal: als je een integer in een MW laad kun je eenvoudig de losse merkers bekijken en zien dat je al gewoon binair hebt.Dus: wat is het probleem nou helemaal? Dit is bij alle PLC's nl al zo volgens mij.
ik heb het idee dat de vraagstelling wat gewijzigd is, als ik de boel terug lees.