# Wie kann man das Programm vereinfachen?



## Heibo (17 Februar 2014)

Hallo, ich habe schon längere Zeit nichts mehr programmiert und würde mich gerne wieder einarbeiten. Ich habe mir die alten unterlagen aus meiner Schulzeit genommen und habe folgende Aufgabe. 


   In Ihrem Heimatort soll die Weltmeisterschaft der Würfelspieler ausgetragen werden. Deshalb werden Sie gebeten, kurzfristig eine Großanzeige zu entwickeln. 

  Aus der Sicht der Zuschauer soll folgender Ablauf stattfinden:
  Nachdem ein Wettkämpfer seinen Würfel geworfen hat, zeigt er eine bestimmte Augenzahl an. Damit die Zuschauer den Wettkampf gut verfolgen können, wird diese Augenzahl auf einer Großanzeige originalgetreu angezeigt. Dazu wird durch einen Schiedsrichter die Augenzahl über drei Schalter eingestellt. Die Schalter haben die Wertigkeiten 1, 2 und 4. Angezeigt wird jeweils das allgemein bekannte Würfelbil. 

 Die Aufgabe besteht darin, die komplette Steuerung der "Würfelanzeige" zu in einer voll parametrierbaren FC1 zu entwickeln, damit viele Mitspieler problemlos berücksichtigt werden können. 



Es soll eine Anzeige programmiert werden. Es gibt die Leuchten a,b,c,d,e,f,g und die Schalter S1 S2 S4. Aufgabe ist es die leuchten je nach Schalterstellung leuchten zu lassen. 

      |||S4 S2 S1    a b c d e f  g
1||1   1   1||||     0 0 0 1 0 0 0
2||1   1   0|||| 1 0 0 0 0 0 1      
3||1   0   1|||| 0 0 1 1 1 0 0 
4||1   0   0|||| 1 0 1 0 1 0 1
5||0   1   1|||| 1 0 1 1 1 0 1
6||0   1   0|||| 1 1 1 0 1 1 1

Wie würdet ihr hier vorgehen? Was mir schon mal aufgefallen ist, ist dass a und g, b und f, c und e gleich sind. Also kann man gfe einfach mit in die Netzwerke von dem jeweiligen Partner stecken.

Die Belegung der Schalter ist von mir festgelegt und die Anzeige ist ein Würfel der anstatt Augen, Lampen hat 

o---o
o-o-o
o---o


----------



## ducati (17 Februar 2014)

Heibo schrieb:


> Die Schalter haben die Wertigkeiten 1, 2 und 4. Angezeigt wird jeweils das allgemein bekannte Würfelbild.
> ...
> Es gibt die Leuchten a,b,c,d,e,f,g und die Schalter S1 S2 S4. Aufgabe ist es die leuchten je nach Schalterstellung leuchten zu lassen.
> 
> ...



Irgendwie finde ich die Wahrheitstabelle komisch. passt irgendwie nicht zum Dual->7-Segment, was ich vermutet hätte. Passt irgendwie nicht zur Aufgabenstellung.

Falls die wirklich so aussieht, musst Du die stur runterprogrammieren. 

Gruß.


----------



## Heibo (17 Februar 2014)

ducati schrieb:


> Irgendwie finde ich die Wahrheitstabelle komisch. passt irgendwie nicht zum Dual->7-Segment, was ich vermutet hätte. Passt irgendwie nicht zur Aufgabenstellung.
> 
> Falls die wirklich so aussieht, musst Du die stur runterprogrammieren.
> 
> Gruß.



Das sind 7 Lampen die wie ein Würfel angeordnet sind. Sie Zeigen also die Augen des Würfels.


----------



## ducati (17 Februar 2014)

Heibo schrieb:


> Das sind 7 Lampen die wie ein Würfel angeordnet sind. Sie Zeigen also die Augen des Würfels.



ok,

dann passt aber die Wertigkeit der Schalter noch nicht

Gruß.


----------



## Ralle (17 Februar 2014)

Das schon eine schöne Zuordnungstabelle vorhanden ist, würde ich in AWL eine Sprungliste verwenden oder in ST eine Case-Anweisung.
Man kann das natürlich auch schön mit UND/Oder-Verknüpfungen und mit einer Vereinfachung der Logiktabelle nach boolschen Logikregeln machen (das wollen die Aufgabensteller vielleicht sogar), aber das macht es eigentlich nicht unbedingt einfacher und besser lesbar.

@ducati
Kommt ja immer darauf an, welche Lampe wo sitz und welche Schalterstellung welchen Wert repräsentiert, paßt schon denke ich, es muß ja nicht mathematisch mit dem dualen System gemacht sein.


----------



## PN/DP (17 Februar 2014)

Das ist ja auch keine 7-Segment-Anzeige sondern vermutlich ein "Würfel" mit 6 Punkten (6 Leuchten). EDIT: 7 Punkte/Leuchten
Irgendein Elektriker oder Lehrer hat die Schalter halt so angeschlossen, vielleicht masseschaltend oder damit es schwerer wird...

In welcher Programmiersprache für welche SPS soll denn die Lösung dieser Hausaufgabe sein?
Man könnte z.B. so vorgehen:


```
//temporäre BOOL-Variablen #E1, #E2, #E3, #E4, #E5, #E6

//6 Schalterstellungen zu 6 BOOL entschlüsseln
#E1 := S4 AND S2 AND S1 ;
#E2 := S4 AND S2 AND NOT(S1) ;
...
#E6 := NOT(S4) AND S2 AND NOT(S1) ;

//angeben bei welchen Schalterstellungen die Ausgänge leuchten sollen
a := #E2 OR #E4 OR #E5 OR #E6 ;
b := ...
...
e := c ;
f := b ;
g := a ;
```

Harald


----------



## ducati (17 Februar 2014)

Heibo schrieb:


> Die Schalter haben die Wertigkeiten 1, 2 und 4.
> 
> 
> ```
> ...



Hmm, für mich passt die Aussage nicht zusammen...

Oder hab ich nen Knoten im Kopf?

Gruß.


----------



## PN/DP (17 Februar 2014)

S4, S2, S1 = negierter BCD-Code 0..5

Harald


----------



## ducati (17 Februar 2014)

jo, naja nehmen wir's so hin  Negiert ist klar, aber die erste Zeile wäre dann 0. passt halt nicht zu der Aussage mit der Wertigkeit 1,2,4 ...

Gruß.


----------



## Heibo (17 Februar 2014)

ducati schrieb:


> jo, naja nehmen wir's so hin  Negiert ist klar, aber die erste Zeile wäre dann 0. passt halt nicht zu der Aussage mit der Wertigkeit 1,2,4 ...
> 
> Gruß.



Also wenn S1 S2 S4 eingeschaltet sind dann soll das eine Würfel mit einem Auge darstellen. S1 low und S2,S4 high ist dass ein Zwei auf dem Würfel usw.


----------



## ducati (17 Februar 2014)

Heibo schrieb:


> Die Belegung der Schalter ist von mir festgelegt



hast Du die Wahrheitstabelle erstellt? Dann wäre sie falsch. weil sie nicht zu der Aufgabenstellung: 



> Die Schalter haben die Wertigkeiten 1, 2 und 4.


passt.

Gruß.

PS: ich würd auch noch die weiteren Stellungen 0 und 7 definieren.


----------



## PN/DP (17 Februar 2014)

Mann, der TE soll KURZFRISTIG eine Großanzeige für die Weltmeisterschaften der Würfelspieler entwickeln und hat jetzt keinen anderen Schalter... 

Geht es bei dieser Hausaufgabe denn nicht eigentlich mehr ums Erkennen und Anwenden des Auswerte-Prinzips der Schalttabelle als um eine korrekte Codierung des Drehschalters?

Wenn er sein Programm so aufbaut wie von mir in #6 vorgeschlagen, dann kann er mit wenig Aufwand das Programm an sonstwelche Codierungen anpassen.

Ich mache mal seine Tabelle etwas übersichtlicher:

```
E |S4 S2 S1 | a b c d e f g
--+---------+--------------
1 | 1  1  1 | 0 0 0 1 0 0 0
2 | 1  1  0 | 1 0 0 0 0 0 1 
3 | 1  0  1 | 0 0 1 1 1 0 0 
4 | 1  0  0 | 1 0 1 0 1 0 1
5 | 0  1  1 | 1 0 1 1 1 0 1
6 | 0  1  0 | 1 1 1 0 1 1 1


 -------
| a---e |
| b-d-f |
| c---g |
 -------
```

Übrigens steht immer noch die Frage: für welche SPS in welcher Programmiersprache wird die Lösung gewünscht?
Ich empfehle KOP oder FUP für diese Aufgabe.

Harald


----------



## Heibo (17 Februar 2014)

Heibo schrieb:


> Also wenn S1 S2 S4 eingeschaltet sind dann soll das eine Würfel mit einem Auge darstellen. S1 low und S2,S4 high ist dass ein Zwei auf dem Würfel usw.



Wichtig die Tabelle habe ich angelegt. Das kann man so machen wie man das möchte.


----------



## Heibo (17 Februar 2014)

In FUP aber ich habe die Tabelle selber gemacht. Aber jetzt wo ihr das mit der Wertigkeit angesprochen habt glaube ich, dass ich das Falsch gemacht habe.

Hier mal meine Tabelle

E |S4 S2 S1 | a b c d e f g
--+---------+--------------
1 | 0  0  1 | 0 0 0 1 0 0 0
2 | 0  1  0 | 1 0 0 0 0 0 1 
3 | 0  1  1 | 0 0 1 1 1 0 0 
4 | 1  0  0 | 1 0 1 0 1 0 1
5 | 1  0  1 | 1 0 1 1 1 0 1
6 | 1  1  0 | 1 1 1 0 1 1 1

Ich denke so ist es besser. Ich habe nicht daran gedacht, dass die Schalter eine Wertigkeit haben.


----------



## M-Ott (17 Februar 2014)

Zuerst einmal solltest Du für die 3 die gleichen Ecken benutzen, wie für die zwei, dann lässt sich schon viel vereinfachen.


----------



## M-Ott (17 Februar 2014)

Das gibt 13 Zeilen AWL.


----------



## ducati (17 Februar 2014)

PN/DP schrieb:


> Geht es bei dieser Hausaufgabe denn nicht eigentlich mehr ums Erkennen und Anwenden des Auswerte-Prinzips der Schalttabelle als um eine korrekte Codierung des Drehschalters?



Also wenn ich damals in Steuerungstechnik aus der Aufgabenstellung die falsche Wahrheitstabelle entwickelt hätte, hätte ich garantiert keine 1 mehr gekrigt 

Und heute besteht mindestens die Hälfte meiner Arbeit darin, aus teilweise unvollständigen und widersprüchlichen Angaben, herauszufinden, was das Programm überhaupt sinnvollerweise machen soll. 

Also von daher ist das schon praxisbezogen, auf der Wahrheitstabelle rumzuhacken 

Gruß.

PS: und sinnvollerweise macht man dass, bevor man anfängt zu programmieren


----------



## PN/DP (17 Februar 2014)

ducati schrieb:


> Also von daher ist das schon praxisbezogen, auf der Wahrheitstabelle rumzuhacken
> 
> Gruß.
> 
> PS: und sinnvollerweise macht man dass, bevor man anfängt zu programmieren


OK, ich hatte zuerst angenommen, die Wahrheitstabelle wäre in der Aufgabenstellung vorgegeben.
Jetzt sehe ich, daß der TE die selber erstellt - dann natürlich sollte man schon drauf achten, daß sie "logisch" aufgebaut ist:
- alle 3 Schalter aus (=0) --> alles dunkel
- S1, S2, S4 nach Wertigkeit geschaltet 1..6 --> Würfelbilder 1..6
- alle 3 Schalter ein (=7) --> Lampentest, alle 7 Lampen ein




M-Ott schrieb:


> Zuerst einmal solltest Du für die 3 die gleichen Ecken benutzen, wie für die zwei, dann lässt sich schon viel vereinfachen.


Ich komm grad nicht drauf, bei welchem Programmalgorithmus man "viel" vereinfachen könnte wenn die 2 die gleichen Ecken benutzt wie die 3 (spart Karnaugh tatsächlich so viel?), doch ich finde es für die Großanzeige sogar sehr vorteilhaft, wenn die 2 deutlich anders aussieht als die 3 (dann könnte man sogar noch Zahlen unterscheiden, wenn 1 (Eck-)Lampe kaputt wäre).




M-Ott schrieb:


> Das gibt 13 Zeilen AWL.


Da bin ich aber neugierig, wie Du auf 13 Zeilen kommst - das geht doch bestimmt nicht mehr symbolisch, irgendeine tricky Abkürzung ist da bestimmt drinnen, oder? Gib doch mal einen Tip in welche Richtung ...

Wenn unsymbolische Tricks erlaubt sind, dann brauche ich nur 7 oder 10 AWL-Operationen für den Encoder und da ist es egal wie die 2 aussieht.

```
L     #IN                         //Eingangsbyte: 0=dunkel / 1..6=Würfel / 7=Lampentest
      UW    W#16#7                      //IN auf 0..7 begrenzen / Bits ausblenden
      SLD   3                           //0..7 --> P#0.0 .. P#7.0
      LAR1  
      AUF   "DB123"                     //DB mit der Encodier-Tabelle ab DBB0
      L     DBB [AR1,P#0.0]             //(P#0.0: ggf den Tabellenanfang anpassen)
      T     #OUT                        //Ausgangsbyte: .0=a .1=b .. .6=g
```

Oder ohne vorbereitete Encodertabelle:

```
//Encoder-Tabelle in TEMP erstellen
      L     DW#16#0008411C              //Lampenmuster 0..3
      T     LD     0
      L     DW#16#555D777F              //Lampenmuster 4..7
      T     LD     4

//Bitmuster Tabelle[#IN] auslesen
      L     #IN                         //Eingangsbyte: 0=dunkel / 1..6=Würfel / 7=Lampentest
      UW    W#16#7                      //IN auf 0..7 begrenzen / Bits ausblenden
      SLD   3                           //0..7 --> P#0.0 .. P#7.0
      LAR1  
      L     LB [AR1,P#0.0]              // entpricht L Tabelle[#IN]
      T     #OUT                        //.0=a .1=b .. .6=g
```

Da der TE aber gerne FUP möchte, sollte man das Programm nur mit sauberen symbolischen Bitverknüpfungen ausführen, ggf. läßt die Wahrheitstabelle noch einiges minimieren.
Ohne Nachdenken würde ich wie in #6 gezeigt zuerst zeilenweise die Schalter S1/S2/S4 zu 6 (oder 7) Zwischenwerten (E1..E6) decodieren und dann spaltenweise die Ausgangs-Ver"oder"ung machen. Macht ca. 13 oder 14 Netzwerke oder 3 weniger, wenn man die Zuweisungen für a+g, b+f und c+e jeweils in einem Netzwerk zusammenfasst.

Harald


----------



## hucki (17 Februar 2014)

PN/DP schrieb:


> M-Ott schrieb:
> 
> 
> > Zuerst einmal solltest Du für die 3 die gleichen Ecken benutzen, wie für die zwei, dann lässt sich schon viel vereinfachen.
> ...


Gerade für FUP/KOP würde das die Sache sehr vereinfachen:

Das Auge in der Mitte (d) leuchtet immer, wenn die Wertigkeit 1 betätigt ist.
Die Augen Links Unten (c) und Rechts Oben (e) leuchten, wenn die Wertigkeiten 2 oder 4 betätigt sind.
Die Augen Links Oben (a) und Rechts Unten (g) leuchten, wenn die Wertigkeit 4 betätigt ist.
Die Augen Links Mitte (b) und Rechts Mitte (f) leuchten, wenn die Wertigkeiten 2 und 4 betätigt sind.

Macht doch 4 schöne FUP- bzw. KOP-Netzwerke.


PS:


PN/DP schrieb:


> M-Ott schrieb:
> 
> 
> > Das gibt 13 Zeilen AWL.
> ...


Nein, alles blitzsaubere UND- bzw. ODER- sowie die Zuweisungszeilen in 4 Netzwerken. Nichts anderes. Nicht mal Klammern oder NOPs für's FUP/KOP sind nötig.
 .....[Ende PS]


Bei Unterscheidung der Anzeige-Richtung zw. 2 und 3 wird's bei reiner Logik dann etwas mehr.
PPS: Werden dann 4 UND-/ODER-Zeilen mehr. Aber immer noch absolut wartungsfreundlich!.....[[Ende PPS]


Aber letzendlich hängt es auch davon ab, was überhaupt mit der Aufgabe trainiert werden soll:
- Das Erkennen von Logiken
- Das Benutzen von Vergleichern und Übertragen von Bytewerten
- In AWL das Benutzen von Sprunglisten
?


----------



## 190B (17 Februar 2014)

hucki schrieb:


> Gerade für FUP/KOP würde das die Sache sehr vereinfachen:
> 
> Das Auge in der Mitte (d) leuchtet immer, wenn die Wertigkeit 1 betätigt ist.
> ?



Du meinst bestimmt, wenn die Wertigkeit Ungerade ist (sprich 1 oder 3 oder 5).


----------



## hucki (17 Februar 2014)

190B schrieb:


> Du meinst bestimmt, wenn die Wertigkeit Ungerade ist (sprich 1 oder 3 oder 5).


Nö, ich meinte es genau so, wie ich's geschrieben habe.
Das macht nämlich das Netzwerk dafür so einfach. Nicht den Gesamtwert prüfen, sondern nur ob die 1 dabei ist:
1 = *1*
3 = *1* + 2
5 = *1* + 4


----------



## M-Ott (18 Februar 2014)

PN/DP schrieb:


> Da bin ich aber neugierig, wie Du auf 13 Zeilen kommst - das geht doch bestimmt nicht mehr symbolisch, irgendeine tricky Abkürzung ist da bestimmt drinnen, oder? Gib doch mal einen Tip in welche Richtung ...


Genau so:


hucki schrieb:


> Gerade für FUP/KOP würde das die Sache sehr vereinfachen:
> Das Auge in der Mitte (d) leuchtet immer, wenn die Wertigkeit 1 betätigt ist.
> Die Augen Links Unten (c) und Rechts Oben (e) leuchten, wenn die Wertigkeiten 2 oder 4 betätigt sind.
> Die Augen Links Oben (a) und Rechts Unten (g) leuchten, wenn die Wertigkeit 4 betätigt ist.
> Die Augen Links Mitte (b) und Rechts Mitte (f) leuchten, wenn die Wertigkeiten 2 und 4 betätigt sind.


Ergibt...


hucki schrieb:


> ... 4 schöne FUP- bzw. KOP-Netzwerke.


... oder 13 Zeilen AWL.


----------



## M-Ott (18 Februar 2014)

@Harald:
Ich will die Lösung jetzt hier nicht posten, aber ich lasse sie Dir gerne per PN zukommen. Alles astrein in KOP/FUP darstellbar, alles einfachste symbolische Binärlogik, nichts indirektes, keine Sprünge oder sonstiger Firlefanz.


----------



## PN/DP (18 Februar 2014)

@Michael
Brauchste mir nicht mehr zeigen. Ich glaube dir. Hucki hat es ja 1:1 beschrieben (Dein zweites Zitat).
Manchmal sieht man den Wald vor lauter Bäumen nicht  Ich hätte mir die Wahrheitstabelle auch mal ansehen sollen und nicht nur lesbar umgestalten.

Harald


----------



## Gunter Mund (6 März 2014)

Ich muss sagen, dass ich die letzten drei Seiten hoch interessant fand. Man kann den Thread fast als Gruppenstudie auffassen. Jeder denkt für sich, aber durch den Austausch wird jede individuelle Lösung immer wieder in den Kontext der anderen gerückt.


----------



## bugatti66 (7 März 2014)

Hi,
solche Art Aufgaben habe ich auch mal in einem Buch gefunden.
Die dort erwünschten Lösungen haben überhaupt nichts mit der Praxis zu tuen.
Ich würde das auch mit indirekter Adressierung lösen. (wie im Beitrag #18 )
Ist auch viel verständlicher als, wenn auch noch so wenige, Binär-Verknüpfungen.

edit: Beitrag 18 und nicht 1


----------



## hucki (7 März 2014)

bugatti66 schrieb:


> Ich würde das auch mit indirekter Adressierung lösen. (wie im Beitrag #1 )



In Beitrag #1 steht doch nur die Frage?




bugatti66 schrieb:


> Ist auch viel verständlicher als, wenn auch noch so wenige, Binär-Verknüpfungen.


Vlt. solltest Du mal wieder raus gehen, wenn für Dich indirekte Adressierungen schon verständlicher sind, als einfache Verknüpfungen (ohne Klammern oder sonstigen Schnickschnack!).


----------



## bugatti66 (7 März 2014)

Entschuldigung , Beitrag #18 von PN/DP
was meinst Du mit raus gehen?


----------



## hucki (7 März 2014)

Unter Menschen, halt weg vom PC.



Der Code von Harald ist zwar gut, aber ich bin mir sicher, das selbst er die einfachen Verknüpfungen bevorzugen würde.
Man programmiert ja meist nicht nur für sich.
Und das ist m.M.n die wirklich hohe Kunst - wenn möglich einfacher, allgemein (nicht nur für Profi-Programmierer) verständlicher Code.


PS: Ich vermute, auch deswegen schreiben soviele Automotiv-Firmen die Verwendung von KOP vor.


----------



## bugatti66 (8 März 2014)

Also diese Aufgaben waren eigentlich mal dazu da, um die http://de.wikipedia.org/wiki/Karnaugh-Veitch-Diagramm oder auch KVS-Diagramme zur "Vereinfachung" von logischen Verknüpfungen zu üben.
Das war vielleicht sinnvoll zu einer Zeit, als es noch keine SPS gab.
Heute hat man genug Speicher und braucht nichts mehr "vereinfachen". Ich würde anstatt "vereinfachen" aber lieber reduzieren sagen, da man bei dem reduzierten Programm nicht mehr so* einfach* erkennen kann was eigentlich gemacht wird.
Beispiele dafür gibt es in "Automatisieren mit SPS - Übersichten und Übungsaufgaben" von Wellenreuther und Zastrow Aufgabe 2.5 (7-Segment-Anzeige) und die Lösungen sind auch in dem Buch.

Eine etwas zeitgemäßere Lösung ist in "SPS-Grundkurs mit SIMATIC S7" von Kaftan Aufgabe 12.1 (7-Segment-Anzeige). Hier gibt es auch Lösungen ab Seite 290 wird zuerst für jede mögliche BCD-Zahl ein Merkerbit erzeugt durch UND-Verknüpfung der BCD-Zahlen-Bits, und in einem zweiten Teil werden die Merkerbits ODER-verknüpft um die entsprechenden Ausgangsbits anzusteuern. 

Bis zu mir im Elfenbeinturm  (LOL) ist eigentlich immer nur gedrungen, dass es keine Elektriker mehr gäbe, die auf SPS-Programmierung umgeschult würden, sondern alle hätten schon in der Realschule Pascal gelernt und müßten das nur noch in die blöde SPS rein kriegen.

edit : vereinfachen -> reduzieren


----------



## hucki (8 März 2014)

bugatti66 schrieb:


> ... dass es keine Elektriker mehr gäbe, die auf SPS-Programmierung umgeschult würden, sondern alle hätten schon in der Realschule Pascal gelernt und müßten das nur noch in die blöde SPS rein kriegen.


Hier ich!
Bin zwar ein Dino, aber noch nicht ausgestorben.



Ich denke, das Problem kennt die Großzahl aller Instandhalter, die auch SPSen warten müssen:
Weil genügend Performance zur Verfügung steht, wird von den Programmierern schnell vergessen, die Netzwerke einfach zu halten.

Daher finde ich solche Aufgaben auch keineswegs überholt. Eher im Gegenteil. Sowas sollte mehr vermittelt werden.
Wird doch im Matheunterricht auch gemacht - die große Aufgabe, in möglichst kleine, leicht verdauliche Häppchen zerlegen.


----------



## bugatti66 (9 März 2014)

Hi,
ja Dinos und Leute mit über 200 Danke meinte ich nicht, sondern Frischlinge, die jetzt noch Elektriker sind, aber in Zukunft SPS-Programmierung verstehen wollen. Gibt es die noch?

Bezüglich meinen Ausführungen zu der Aufgabe haben wir uns auch noch nicht ganz verstanden.
Das liegt wohl daran, dass ich die Lösung vom Buch von Kaftan hier nicht eingestellt habe.
Darf ich wohl auch nicht?
Aber dort wird genau das Prinzip gemacht, dass du beschreibst, die Aufgabe in 2 Teilaufgaben zerlegen und dann ausprogrammieren. Die beiden Teilaufgaben habe ich beschrieben:
1. ... zuerst für jede mögliche BCD-Zahl ein  Merkerbit erzeugt durch UND-Verknüpfung der BCD-Zahlen-Bits, 
2. und in  einem zweiten Teil werden die Merkerbits ODER-verknüpft um die  entsprechenden Ausgangsbits anzusteuern.


----------

