Bool'sche Probleme
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Bool'sche Probleme
Ich hab eine Steuerung programmiert, die schon recht fein macht was sie tun soll, nur an einer Stelle Mist produziert. Nachdem ich mir jetzt ueberall Variablen eingebaut habe, um den Status zu debuggen, sehe ich auch warum: ein EXOR liefert eine 1, obwohl alle seine Eingaenge ebenfalls 1 sind (siehe Screenshot).
Das war so natuerlich icht gedacht. In meiner Verzweiflung habe ich die Logik neu gezeichnet, da dem grafischen Editor wohl nicht zu trauen ist -> gleiches Ergebnis.
Haette jemand einen Tipp, was ich uebersehe oder falsch verstehe?
Gruesse, Thomas
Das war so natuerlich icht gedacht. In meiner Verzweiflung habe ich die Logik neu gezeichnet, da dem grafischen Editor wohl nicht zu trauen ist -> gleiches Ergebnis.
Haette jemand einen Tipp, was ich uebersehe oder falsch verstehe?
Gruesse, Thomas
Re: Bool'sche Probleme
Hallo Thomas,
ich wüsste nicht, wie ein XOR Operator mit drei Operanden definiert sein soll. Welche Wahrheitswerttabelle würdest du denn erwarten? Ich kann mir vorstellen, dass das intern womöglich als (A XOR B) XOR C definiert ist. Dann evaluiert der Ausdruck in der Klammer zu false und das Gesamtergebnis ist true.
Viele Grüße
David
ich wüsste nicht, wie ein XOR Operator mit drei Operanden definiert sein soll. Welche Wahrheitswerttabelle würdest du denn erwarten? Ich kann mir vorstellen, dass das intern womöglich als (A XOR B) XOR C definiert ist. Dann evaluiert der Ausdruck in der Klammer zu false und das Gesamtergebnis ist true.
Viele Grüße
David
Re: Bool'sche Probleme
"Exklusives ODER" bedeutet: Ausgang = 1, wenn genau EIN Eingang (und nur EIN Eingang) = 1. Wenn mehr als Eingang = 1 ist oder wenn kein Eingang = 1 ist, dann ist der Ausgang = 0.
Oder siehe z.B. auch hier: https://www.elektronik-kompendium.de/pu ... r/exor.htm
Ich denke in RoboPro kann man nicht umsonst ein EXOR mit bel. vielen Eingaengen waehlen.
Oder siehe z.B. auch hier: https://www.elektronik-kompendium.de/pu ... r/exor.htm
Ich denke in RoboPro kann man nicht umsonst ein EXOR mit bel. vielen Eingaengen waehlen.
Re: Bool'sche Probleme
Ich weiß schon was ein XOR-Gatter ist
Den XOR-Operator kenne ich deshalb nur als binären Operator, siehe auch Wikipedia. Macht auch Sinn, da die Kontravalenz aus der Aussagenlogik ebenfalls genau zwei Aussagen betrachtet.
Eine GENAU EINS Beziehung zwischen mehr als zwei Eingängen (Operanden) kannst du z.B. durch Addieren der Werte und anschließendes Vergleichen gegen 1 realisieren, sofern deine Variablen jeweils Werte in {0,1} annehmen.
Letztlich sind auch die AND und OR Operatoren mit mehr als zwei Eingängen in RoboPro nichts anders als Kurzschreibweisen für (((A AND B) AND C) ...), denn auch diese Operatoren sind jeweils binär.
Den XOR-Operator kenne ich deshalb nur als binären Operator, siehe auch Wikipedia. Macht auch Sinn, da die Kontravalenz aus der Aussagenlogik ebenfalls genau zwei Aussagen betrachtet.
Eine GENAU EINS Beziehung zwischen mehr als zwei Eingängen (Operanden) kannst du z.B. durch Addieren der Werte und anschließendes Vergleichen gegen 1 realisieren, sofern deine Variablen jeweils Werte in {0,1} annehmen.
Diesen Schluss halte ich für gewagt: Nur weil in RoboPro etwas existiert, heißt das nicht, dass es im Allgemeinen sinnvoll ist.
Letztlich sind auch die AND und OR Operatoren mit mehr als zwei Eingängen in RoboPro nichts anders als Kurzschreibweisen für (((A AND B) AND C) ...), denn auch diese Operatoren sind jeweils binär.
Re: Bool'sche Probleme
Offensichtlich hast du den Link nochmals geändert, während ich gepostet habe. Entspricht die Tabelle auf der Elektronik-Kompendium Seite (nicht ITWissen.info) nicht genau dem, was RoboPro ausgibt?
Re: Bool'sche Probleme
Ja, das Verhalten, dass in der Tabelle widergegeben ist, ist dsa, da ich gerne haette. Das interessante ist doch aber was unter der Tabelle steht: das dieses Verhalten einer Aneinanderkettung von EXORs entspricht und das Ergebnis nicht logisch ist. Und eben so scheint es in RoboPro auch umgesetzt zu sein, analog AND und OR: ein EXOR mit n>2 Eingaengen entspricht einer Hintereinanderschaltung von n-1 EXOR-Gattern mit 2 Eingaengen. Und dadurch ergibt sich eben, dass wenn alle Eingaenge 1 sind, der Ausgang auch 1 ist. Was nicht gerade "exklusiv" ist
- steffalk
- ft:pedia-Herausgeber
- Beiträge: 1869
- Registriert: 01 Nov 2010, 16:41
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Bool'sche Probleme
Tach auch!
Zu XOR = "genau ein Eingang 1" vs. XOR = (XOR zwischen a und b) XOR (c) hatten wir schon mal was:
viewtopic.php?f=21&t=2505&p=15827
Gruß,
Stefan
Zu XOR = "genau ein Eingang 1" vs. XOR = (XOR zwischen a und b) XOR (c) hatten wir schon mal was:
viewtopic.php?f=21&t=2505&p=15827
Gruß,
Stefan
Re: Bool'sche Probleme
Danke fuer den Link. Habe nach EXOR gesucht, statt XOR, daher hatte ich ihn nicht gefunden. Bestaeatigt aber letztendlich alles bisher geschriebene. Wir leben bei RoboPro damit, dass bei einem XOR mit n Eingaengen der Ausgang dann 1 wird, wenn entweder nur ein Eingang 1 ist oder alle Eingaenge 1 sind. In meinem Fall spart mir das sogar einen AND-Baustein