# Lampensteuerung. 9 Lampen, 5 Taster/Schaltmöglichkeiten



## world-e (12 März 2019)

Hallo zusammen,

ich habe bei mir eine Wago 750-881 verbaut. Nun möchte ich meine Wohnzimmerbeleuchtung umprogrammieren. Es sind 9 Einbaulampen (symmetrisch verteilt) in der Decke verbaut. Bisher werden alle Lampen mit einem Tastendruck eingeschaltet. Allerdings möchte ich dies nun ändern. Allerdings fehlt mir hier das Wissen, wie ich es umsetzen kann. Und zwar sollen es 5 Schaltmöglichkeiten geben.
1. obere Reihe an
2. mittlere Reihe an
3. untere Reihe an
4. wandnahe Lampen an
5. alle Lampen an

Dazu gibt es 5 Relais, mehr Relais sind auch nicht möglich, bzw. es gehen nur 5 Adern zu der Lampenverteilung. Hat mir hier jemand eine Idee bzw. sogar die Muse hier etwas zu skizzieren? Vielen Dank

Zur Verdeutlichung folgend eine Skizze


----------



## Mavorkit (12 März 2019)

Hi world-e,

Spontan würde mir jetzt ein Zähler einfallen. Den Würdest du bei einem kurzen Tastendruck weiter schalten und z.B. bei einem langen Tastendruck zurücksetzen => 0 = Aus und die Ziffern 1-5 den jeweiligen Ausgängen bzw. Relais zuordnen. Eine Auswertung für alle Schaltmöglichkeiten halte ich für zu komplex.
Alternative wäre noch die Impulse zu Zählen. Also 1x Tasten = Aus, 2x Tasten = Schaltmöglichkeit 1 usw... ist aber glaube ich nicht wirklich praxistauglich.

Mehr fällt mir jetzt spontan nicht ein bei der Grundlage 1 Taster soll 5 Schaltmöglichkeiten (bzw. eigentlich 6 mit Aus) anwählen.

Gruß

Mavorkit


----------



## oliver.tonn (12 März 2019)

Ich weiß jetzt nicht, was es da groß zu skizzieren gibt?
Du hast fünf Schalter/Taster, je nachdem ob diese 24V oder 230V liefern schliesst Du diese z.B. an eine 750-430 (bei 24V) oder zwei 753-440 (bei 230V) an. Als Ausgang nimmst Du z.B. zwei 750-515, wobei Du da auf die Stromaufnahme der Lampen achten musst.
Im Programm fragst Du nun über eine IF-Abfrage ab, welcher Schalter/Taster gedrückt wurde und schaltest die entsprechenden Relais. Hier müsstest Du Dir dann nur noch Gedanken machen, wie das Verhalten genau sein soll, z.B. wie man das Licht wieder ausschaltet und was passiert, wenn eine Reihe an ist und man nun einen anderen Schalter/Taster drückt.
Arrrgh, zu langsam getippt.
Nachfrage, hast Du bisher einen Schalter/Taster gehabt und es sollen jetzt fünf werden oder weiterhin einer?


----------



## world-e (12 März 2019)

Habe mich wohl nicht eindeutig ausgedrückt. Es stehen 5 Taster zur Verfügung, nicht nur einer. Mein Problem ist dabei, dass bei manchen Schaltmöglichkeiten mehrere Relais angesteuert werden sollen. Wenn bspw. Schaltmöglichkeit 4 aktiviert ist und man dann die untere Lampenreihe dazuschalten möchte.

Die Taster liefern 24V und gehen an die SPS-Eingangsklemme


----------



## world-e (12 März 2019)

oliver.tonn schrieb:


> Ich weiß jetzt nicht, was es da groß zu skizzieren gibt?
> Du hast fünf Schalter/Taster, je nachdem ob diese 24V oder 230V liefern schliesst Du diese z.B. an eine 750-430 (bei 24V) oder zwei 753-440 (bei 230V) an. Als Ausgang nimmst Du z.B. zwei 750-515, wobei Du da auf die Stromaufnahme der Lampen achten musst.
> Im Programm fragst Du nun über eine IF-Abfrage ab, welcher Schalter/Taster gedrückt wurde und schaltest die entsprechenden Relais. Hier müsstest Du Dir dann nur noch Gedanken machen, wie das Verhalten genau sein soll, z.B. wie man das Licht wieder ausschaltet und was passiert, wenn eine Reihe an ist und man nun einen anderen Schalter/Taster drückt.
> Arrrgh, zu langsam getippt.
> Nachfrage, hast Du bisher einen Schalter/Taster gehabt und es sollen jetzt fünf werden oder weiterhin einer?



Bisher war es ein Taster, der alle Relais einschält. Es sind bisher 8fach Taster von Jung verbaut, wovon nun 5 benutzt werden sollen.


----------



## oliver.tonn (12 März 2019)

Na dann würde mein Vorschlag ja passen.


----------



## MFreiberger (12 März 2019)

Moin world-e,

wenn ich Dich richtig verstehe, gibt es fünf Taster um fünf Schaltzustände zu erzeugen?
Dann würde ich mit jedem Taster ein anderes Bit einschalten.
Beispielsweise nimmst Du ein Byte:
Bit0 = Schaltzustand 1
Bit1 = Schaltzustand 2
Bit2 = Schaltzustand 3
Bit3 = Schaltzustand 4
Bit4 = Schaltzustand 5
Bit5 = n.v.
Bit6 = n.v.
Bit7 = n.v.

Wenn Du jetzt einen Taster drückst, prüfst Du, ob das zugehörige Bit aktiv ist.
Wenn das Bit aktiv ist => alle Bits ausschalten
Wenn das Bit nicht aktiv ist => auf das zugehörige Bit umschalten

Dazu am besten eine Flanke für jeden Taster programmieren.
Dann folgende Werte in das Byte übertragen:
0h zum ausschalten
1h für Schaltzustand 1
2h für Schaltzustand 2
4h für Schaltzustand 3
8h für Schaltzustand 4
10h für Schaltzustand 5

Dann noch die Bits für die Relais (Ausgänge) verknüpfen:

1 2 3
4 5 6
7 8 9

Schaltzustand 1:
1 2 3
- - - 
- - -

Schaltzustand 2:
- - -
4 5 6
- - -

etc.

Lampe 1 = Schaltzustände: 1,4,5
Lampe 2 = Schaltzustände: 1,4,5
Lampe 3 = Schaltzustände: 1,4,5
Lampe 4 = Schaltzustände: 2,5
Lampe 5 = Schaltzustände: 2,5
Lampe 6 = Schaltzustände: 2,4,5
Lampe 7 = Schaltzustände: 3,5
Lampe 8 = Schaltzustände: 3,5
Lampe 9 = Schaltzustände: 3,4,5



VG

MFreiberger


----------



## PN/DP (12 März 2019)

Die Funktionsbeschreibung ist unvollständig - es wird beschrieben was man einschalten können soll, aber nicht was man wie ausschalten können soll. Ich vermute es werden einfach nur 4 Stromstoßschalter (für 4 Szenen) mit zentral-Alles-Ein und zentral-Alles-Aus + 5x OR für die Relais benötigt.

Ähem, ich würde da auf keinen Fall "IF-Abfragen" verwenden, sondern "richtige" Logik-Verknüpfungen... bei "IF" kommt nachher meist nur noch Spaghetti-Programmierung raus, wenn die fehlende/nicht beschriebene Funktionalität dann noch nachprogrammiert wird.

Harald


----------



## GLT (12 März 2019)

PN/DP schrieb:


> Die Funktionsbeschreibung ist unvollständig - es wird beschrieben was man einschalten können soll, aber nicht was man wie ausschalten können soll. Ich vermute es werden einfach nur 4 Stromstoßschalter (für 4 Szenen) mit zentral-Alles-Ein und zentral-Alles-Aus + 5x OR für die Relais benötigt.


Sehe ich auch so - da man aber in Szenen keine Bestandteile für sich schaltet, wäre jedem Taster seine Ausgangsmatrix zugeordnet, d.h. ein nochmaliges drücken des selben Tasters tut nichts - Änderungen erst, wenn anderer Taster eine andere Szene abruft.

Somit könnte man das durchaus über Bitmuster/Wertigkeit auswerten u. per Fallunterscheidung die Ausgänge setzen. Bussysteme machen das ebenso.


----------



## PN/DP (12 März 2019)

Nochmal durchgelesen scheint mir "Szenen" wohl das falsche Wort für das was er evtl. vorhat. Vielleicht meint er eher "Bereichstaster" für Bereiche, die man (beliebig?) miteinander kombinieren kann?

Harald


----------



## Heinileini (12 März 2019)

Mir ist nicht geheuer, was hinter der Formulierung . . .


world-e schrieb:


> Wenn bspw. Schaltmöglichkeit 4 aktiviert ist und man dann die untere Lampenreihe dazuschalten möchte.


. . . für Fallen bzw. geheime Wünsche lauern könnten. "Dazuschalten" klingt so harmlos, aber . . .

Anbei eine LOGO-Version, die um einen 6. Taster aufgebohrt ist, mit dem die "SchaltungsMöglichkeit 6" (nur die Relais 2 und 4 eingeschaltet) realisiert ist.
Nochmalige Betätigung einer Taste schaltet aus.




Anhang anzeigen 5Taster3x3Leuchten.lsc.pdf

	

		
			
		

		
	
  (nach download ".pdf" entfernen)

Gruss, Heinileini


----------



## Heinileini (12 März 2019)

Noch eine Version.
Tasten 1 … 4: wie gehabt, sie wählen eins von vier "Mustern" (entsprechend Aufgabenstellung).
Wiederholtes Drücken derselben Taste schaltet aus.
Zusätzlich schaltet jede Betätigung einer der vier Tasten die "Invertierung" (s. Taste 5) aus.

Taste 5: löscht NICHT das mit Taste 1 … 4 gewählte "Muster", sondern invertiert es (alles, was aus war wird eingeschaltet und umgekehrt).
Wiederholte Betätigungen von Taste 5 schalten abwechselnd die Invertierung ein und aus.
Mit Taste 5 kann nur dann komplett ausgeschaltet werden, wenn komplett eingeschaltet ist (und umgekehrt).

Die Schaltung ist einfacher aufgebaut als die letzte. Sie kann sogar mehr, aber die Bedienung ist ein wenig "holpriger".




Anhang anzeigen 5Taster3x3Leuchten+.lsc.pdf


----------



## world-e (13 März 2019)

Vielen Dank schon mal für Eure Unterstützung. Ich hoffe ich kann die Tage mal Eure Ideen näher anschauen und testen. Oder sogar im LOGO! Soft


----------



## world-e (13 März 2019)

Heinileini schrieb:


> Mir ist nicht geheuer, was hinter der Formulierung . . .
> 
> . . . für Fallen bzw. geheime Wünsche lauern könnten. "Dazuschalten" klingt so harmlos, aber . . .
> 
> ...




schneller als erwartet, konnte ich das Programm testen. Danke. 

Was müsste man ändern, wenn man die einzelnen Reihen zusammen einschalten möchte? Also dass bspw. Schaltmöglichkeit 1 und 2 zusammen bzw. 2 und 3 zusammen geschaltet werden kann


----------



## PN/DP (13 März 2019)

Wenn Du Dir mal die Mühe machst, eine vollständige und widerspruchsfreie Aufgabenstellung zu formulieren und hier zu posten, dann findet sich vielleicht auch jemand der Dir das Programm ausprogrammiert so wie Du es Dir vorstellst.

Harald


----------



## world-e (13 März 2019)

PN/DP schrieb:


> Wenn Du Dir mal die Mühe machst, eine vollständige und widerspruchsfreie Aufgabenstellung zu formulieren und hier zu posten, dann findet sich vielleicht auch jemand der Dir das Programm ausprogrammiert so wie Du es Dir vorstellst.
> 
> Harald



Sorry wenn ich mich nicht eindeutig ausgedrückt habe. Toll wäre es, wenn man Schaltmöglichkeit 1-5 einzeln schalten könnten. Was man in den gezeigten Beispielen auch kann.
Aber es sollte auch möglich sein, dass Schaltmöglichkeit 1 und 2 zusammen bzw. 2 und 3 zusammen geschaltet werden kann. Sodass jeweils eine Reihe aus bleibt.


----------



## Heinileini (13 März 2019)

world-e schrieb:


> Aber es sollte auch möglich sein, dass Schaltmöglichkeit 1 und 2 zusammen bzw. 2 und 3 zusammen geschaltet werden kann. Sodass jeweils eine Reihe aus bleibt.


Guck Dir mal meine 2. Version an, bei der mit Taster 5 die Muster invertiert werden!
(Meine GlasKugel hatte mir schon Deine geheimen Wünsche signalisiert ;o)

AWL-Version mit zusätzlicher TastenVerriegelung (und sogar "AngstKlammern" in den Kommentaren!):

```
// - - - < Tasten verriegeln > - - -                       
// Taste1_verkn := Taste1 AND NOT (Taste2 OR Taste3 OR Taste4 OR Taste5)      
      U     E 0.0   Taste1
      UN    E 0.1   Taste2
      UN    E 0.2   Taste3
      UN    E 0.3   Taste4
      UN    E 0.4   Taste5
      =     M 0.0   Taste1_verkn
// Taste2_verkn := Taste2 AND NOT (Taste1 OR Taste3 OR Taste4 OR Taste5)                    
      UN    E 0.0   Taste1
      U     E 0.1   Taste2
      UN    E 0.2   Taste3
      UN    E 0.3   Taste4
      UN    E 0.4   Taste5
      =     M 0.1   Taste2_verkn
// Taste3_verkn := Taste3 AND NOT (Taste1 OR Taste2 OR Taste4 OR Taste5)                    
      UN    E 0.0   Taste1
      UN    E 0.1   Taste2
      U     E 0.2   Taste3
      UN    E 0.3   Taste4
      UN    E 0.4   Taste5
      =     M 0.2   Taste3_verkn
// Taste4_verkn := Taste4 AND NOT (Taste1 OR Taste2 OR Taste3 OR Taste5)                    
      UN    E 0.0   Taste1
      UN    E 0.1   Taste2
      UN    E 0.2   Taste3
      U     E 0.3   Taste4
      UN    E 0.4   Taste5
      =     M 0.3   Taste4_verkn
// Taste5_verkn := Taste5 AND NOT (Taste1 OR Taste2 OR Taste3 OR Taste4)                    
      UN    E 0.0   Taste1
      UN    E 0.1   Taste2
      UN    E 0.2   Taste3
      UN    E 0.3   Taste4
      U     E 0.4   Taste5
      =     M 0.4   Taste5_verkn
// - - - < Muster 1 ... 4 EIN/AUS > - - -                    
// Reihe1 := (Taste1_verkn AND NOT (FM_Taste1_verkn) XOR Reihe1) AND (NOT (Taste2_verkn OR Taste3_verkn OR Taste4_verkn))
      U     M 0.0   Taste1_verkn
      UN    M 1.0   FM_Taste1_verkn
      X     M 2.0   Reihe1
      UN    M 0.1   Taste2_verkn
      UN    M 0.2   Taste3_verkn
      UN    M 0.3   Taste4_verkn
      =     M 2.0   Reihe1
// Reihe2 := (Taste2_verkn AND NOT (FM_Taste2_verkn) XOR Reihe2) AND (NOT (Taste1_verkn OR Taste3_verkn OR Taste4_verkn))
      U     M 0.1   Taste2_verkn
      UN    M 1.1   FM_Taste2_verkn
      X     M 2.1   Reihe2
      UN    M 0.0   Taste1_verkn
      UN    M 0.2   Taste3_verkn
      UN    M 0.3   Taste4_verkn
      =     M 2.1   Reihe2
// Reihe3 := (Taste3_verkn AND NOT (FM_Taste3_verkn) XOR Reihe3) AND (NOT (Taste1_verkn OR Taste2_verkn OR Taste4_verkn))
      U     M 0.2   Taste3_verkn
      UN    M 1.2   FM_Taste3_verkn
      X     M 2.2   Reihe3
      UN    M 0.0   Taste1_verkn
      UN    M 0.1   Taste2_verkn
      UN    M 0.3   Taste4_verkn
      =     M 2.2   Reihe3
// Winkel := (Taste4_verkn AND NOT (FM_Taste4_verkn) XOR Winkel) AND (NOT (Taste1_verkn OR Taste2_verkn OR Taste3_verkn))
      U     M 0.3   Taste4_verkn
      UN    M 1.3   FM_Taste4_verkn
      X     M 2.3   Winkel
      UN    M 0.0   Taste1_verkn
      UN    M 0.1   Taste2_verkn
      UN    M 0.2   Taste3_verkn
      =     M 2.3   Winkel
// - - - < Invers (5) EIN/AUS > - - -    
// Invers := (Taste5_verkn AND NOT (FM_Taste5_verkn) XOR Invers) AND (NOT (Taste1_verkn OR Taste2_verkn OR Taste3_verkn OR Taste4_verkn))
      U     M 0.4   Taste5_verkn
      UN    M 1.4   FM_Taste5_verkn
      X     M 2.4   Invers
      UN    M 0.0   Taste1_verkn
      UN    M 0.1   Taste2_verkn
      UN    M 0.2   Taste3_verkn
      UN    M 0.3   Taste4_verkn
      =     M 2.4   Invers
// - - - < Muster & Invers auf RelaisAusgänge > - - - 
// Relais1 := (Reihe1 OR Winkel) XOR Invers
      O     M 2.0   Reihe1
      O     M 2.3   Winkel
      X     M 2.4   Invers
      =     A 0.0   Relais1
// Relais2 := Reihe2 XOR Invers
      X     M 2.1   Reihe2
      X     M 2.4   Invers
      =     A 0.1   Relais2L
// Relais3 := (Reihe2 OR Winkel) XOR Invers
      O     M 2.1   Reihe2
      O     M 2.3   Winkel
      X     M 2.4   Invers
      =     A 0.2   Relais2R
// Relais4 := Reihe3 XOR Invers
      X     M 2.2   Reihe3
      X     M 2.4   Invers
      =     A 0.3   Relais3L
// Relais5 := (Reihe3 OR Winkel) XOR Invers
      O     M 2.2   Reihe3
      O     M 2.3   Winkel
      X     M 2.4   Invers
      =     A 0.4   Relais3R
//  - - - < FlankenMerker bilden > - - - 
// FM_Taste1_verkn := Taste1_verkn
      U     M 0.0   Taste1_verkn
      =     M 1.0   FM_Taste1_verkn
// FM_Taste2_verkn := Taste2_verkn
      U     M 0.1   Taste2_verkn
      =     M 1.1   FM_Taste2_verkn
// FM_Taste3_verkn := Taste3_verkn
      U     M 0.2   Taste3_verkn
      =     M 1.2   FM_Taste3_verkn
// FM_Taste4_verkn := Taste4_verkn
      U     M 0.3   Taste4_verkn
      =     M 1.3   FM_Taste4_verkn
// FM_Taste5_verkn := Taste5_verkn
      U     M 0.4   Taste5_verkn
      =     M 1.4   FM_Taste5_verkn
```
Da sind noch TippFehler drin . . . sorry . . . Überarbeitung kommt gleich noch . . .
Edit:
Sooo, ich glaube jetzt passt es (die eigenen Fehler sehe ich einfach nicht - dafür sorgt wohl der Balken im Auge ;o).

Und noch die Simulation in Excel (2010): 
Anhang anzeigen 5Tasten3x3Leuchten+.xlsm.pdf

	

		
			
		

		
	
 (nach download ".pdf" entfernen)


----------



## Heinileini (14 März 2019)

Sooo, die Schaltung habe ich jetzt nochmal verkompliziert und die Bedienung erst recht und die Beschreibung der Bedienung artet jetzt aus.

Die Bedienung ist wie bisher (Schaltung aus #12), wenn man die Tasten 1 bis 4 nicht länger als 0,7 s drückt.
Neu ist: drückt man eine der Tasten 1 bis 4 länger als 0,7 s, dann ist die gegenseitige Auslösung unwirksam und als Folge davon wird das neu gewählte Muster dem bereits aktivierten hinzugefügt. Aus mehreren aktivierten Mustern kann man jetzt auch durch langes Betätigen der entsprechenden Taste eines gezielt herauslöschen.

So weit - so schlecht. Am besten ausprobieren, ob's noch als zumutbar empfunden wird. 
Mir reicht es jedenfalls und ich klinke mich jetzt aus diesem Projekt aus.
Eine Anregung habe ich aber noch:
Man könnte die M1 bis M5 durch 5 Ausgänge ersetzen und damit Lämpchen in den 5 Tastern ansteuern.

Anhang anzeigen 5Taster3x3Leuchten++.lsc.pdf


Gruss, Heinileini


----------



## world-e (14 März 2019)

Heinileini schrieb:


> Sooo, die Schaltung habe ich jetzt nochmal verkompliziert und die Bedienung erst recht und die Beschreibung der Bedienung artet jetzt aus.
> 
> Die Bedienung ist wie bisher (Schaltung aus #12), wenn man die Tasten 1 bis 4 nicht länger als 0,7 s drückt.
> Neu ist: drückt man eine der Tasten 1 bis 4 länger als 0,7 s, dann ist die gegenseitige Auslösung unwirksam und als Folge davon wird das neu gewählte Muster dem bereits aktivierten hinzugefügt. Aus mehreren aktivierten Mustern kann man jetzt auch durch langes Betätigen der entsprechenden Taste eines gezielt herauslöschen.
> ...




Werde ich testen, vielen Dank. Immer wieder erstaunlich, wie viel Mühe sich manche machen...


----------

