logische schakeling

Jul 10, 2005 11 Replies

Hallo iedereen, Ik wil een schakeling maken met logische blokken met de LOGO Siemens (info zie -->



formatting link
)



Ik wil het volgende 2 dingen bereiken op zo'n eenvoudig mogelijke manier.


1°-vraag
3 ingangen beschikbaar en 1 uitgang. De uitgang moet hoog worden wanneer 1 van de 3 ingangen hoog staat, in alle andere gevallen moet de uitgang laag zijn.


2° vraag:



3 ingangen beschikbaar en 1 uitgang. De uitgang moet hoog worden wanneer 2 van de 3 ingangen hoog staan, in alle andere gevallen moet de uitgang laag zijn.


Help iemand mij ? ik kom niet tot een oplossing met gebruik van de XOF-blokken.


Gilbert


formatting link

Zover kom ik. Het klopt wel, maaaarrrr ik weet niet of het de meest efficiente methode is. Met een PIC controller kun je misschien een netter resultaat creeeren.

Oh en sorry voor de lelijk niet-electronische icoontjes :-P

(info

manier.

alle

alle

2de schakeling: bijna goed, maar bij drie ingangen hoog is de uitgang hoog.
Thanks, Frank. (remove 'q' and 'invalid' when replying by email)

Gilbert:

Vanwege 'in alle andere gevallen' neem ik aan dat je beDoelt: als precies e1n van de 3 ingangen hoog staat:

i1 i2 i3 | o -- -- -- + - 0 0 0 | 0 0 0 1 | 1 0 1 0 | 1 0 1 1 | 0 -- -- -- + - 1 0 0 | 1 1 0 1 | 0 1 1 0 | 0 1 1 1 | 0

ofwel:

NOT(i1) AND NOT(i2) AND i3 OR NOT(i1) AND i2 AND NOT(i3) OR i1 AND NOT(i2) AND NOT(i3)

i1 i2 i3 | o -- -- -- + - 0 0 0 | 0 0 0 1 | 0 0 1 0 | 0 0 1 1 | 1 -- -- -- + - 1 0 0 | 0 1 0 1 | 1 1 1 0 | 1 1 1 1 | 0

De eindkolom is (van onder naar boven) 0110.1000, dat is meteen ook een complete beschrijving, dus het zou handig zijn als die LOGO je die rechtstreeks liet invoeren.

NOT(i1) AND i2 AND i3 OR i1 AND NOT(i2) AND i3 OR i1 AND i2 AND NOT(i3)

Affijn, Ruud
[SNIP]

Y is de uitgang, A B C zijn de ingangen en ' wil not zeggen

Y1 = AB'C' + A'BC' + A'B'C

Y2 = ABC' + AB'C + A'BC

Beide vergelijkingen zijn niet te verenigvoudigen volgens mij. Normaal als er een optimalisatie mogelijk is voor de architectuur van dat siemens ding dan zal je programmeer opgeving dat wel voor jou doen.

Bart

Bart Vanbrabant http://eaccelerator.net - accelerate you're server PGP fingerprint: 093C BB84 17F6 3AA6 6D5E FC4F 84E1 FED1 E426 64D1

Gebruik het OR-blokje van slide 15 uit de PDF, is de meest gemakkelijke oplossing. (x OR y OR z)

Letterlijke interpretatie van je probleem levert het volgende: x!y!z OR y!z!x OR z!x!y (waarbij ! -> NOT)

x AND (y OR Z) OR (y AND z)

Bovenstaande problemen, kan je niet alleen oplossen met alleen XOR-operaties ook niet in combinatie met een NOT-operatie.

Francis Henninger

Ik ben er ondertussen zelf uitgekomen, en denk niet dat ik nog kan vereenvoudigen Mocht er toch iemand een eenvoudiger oplossing hebben met de mogelijkheden van de LOGO dan is deze steeds welkom

mijn oplossing in blokvorm staat hier (beide oplossingen)

formatting link

of in ladderschema (uitgang hoog bij 1 ingang)

formatting link

of in ladderschema (uitgang hoog bij 2 ingangen)

formatting link

Ik was effe op het verkeerde been gezet door gebruik te maken van de XOR module's.

Alvast bedankt voor jullie reaktie's

Gilbert

Nee, want dan is de uitgang ook hoog als er 2 of 3 uitgangen hoog zijn.

(x XOR y) XOR z is volgens mij de gewenste oplossing (uitgaande van de XOR-gate met 2 inputs op blz. 17).

Hier heb je hetzelfde probleem: als x, y en z allemaal hoog zijn krijg je in jouw schakeling ook hoog als output.

((x AND y) XOR (x AND z)) XOR (y AND z)

Verder knoeien met NOT's e.d. is inderdaad helemaal niet nodig. Het zou wel gaan, maar waarom moeilijk doen...

Mvg, JeroenV

Deze werkt ook niet, als alle drie de inputs hoog zijn. Je krijgt dan de volgende 'vergelijking': (1 XOR 1) XOR 1 = 0 XOR 1 = 1

Werkt ook niet, zie bovenstaand.

Het vervelende is dat hij specifieke gevallen, en dat vergeet je snel als je wat aan het herschrijven bent ;-)

Francis Henninger

Dr.Ruud:

Ben je verplicht om steeds 4 inputs aan te geven, dan wordt het:

OR( AND(NOT(i1), NOT(i2), i3, 1) , AND(NOT(i1), i2, NOT(i3), 1) , AND(i1, NOT(i2), NOT(i3), 1) , 0)

OR( AND(NOT(i1), i2, i3, 1) , AND(i1, NOT(i2), i3, 1) , AND(i1, i2, NOT(i3), 1) , 0)

Affijn, Ruud

Dr.Ruud:

Met een XOR:

OR( AND( NOT(i1), XOR(x2, x3) ) , AND( i1, NOR(x2, x3) ) )

Dus 6 blokken (als je de NOT als blok rekent).

Kan ook nog zo:

NOR( AND(x1, x2), AND(x2, x3), AND(x1, x3) )

Want het moet niet zo zijn dat er willekeurig twee inputs de waarde 1 hebben. Dus 4 blokken.

OR( AND( NOT(i1), AND(i2, i3) ) , AND( i1, XOR(i2, i3) ) )

Weer 6 blokken.

Kan ook nog zo:

NOR( NOR(x1, x2), NOR(x2, x3), NOR(x1, x3), AND(x1, x2, x3) )

Want het moet niet zo zijn dat er willekeurig twee inputs de waarde 0 hebben, maar ze mogen ook niet allemaal 1 zijn. Dus 5 blokken.

Affijn, Ruud

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required