# Siemens Logo Auswertung von Tastkombinationen an einem Eingang



## Daimonion (15 November 2012)

Hallo

Bei einem kleinen Logoprojekt stehe ich gerade mal wieder auf dem Schlauch und bekomme keine vernünftige Sequenz hin. 

Folgende Aufgabenstellung. Ich habe einen Taster der einen Eingang am Logo bedient. 
Nun soll im Logo je nachdem was für eine Impulsfolge kommt, eine bestimmte Aktion ausgelöst werden. Als Tastenimpulse hab ich mir 4 Sequenzen ausgedacht.

1. 1x kurz Tasten
2. 2x kurz Tasten
3. 2s lang Taster drücken
4. 4s lang Taster drücken

 Zuerst wollte ich mir mal im Logo diese Impulse auf Merker legen. Mit den Zeitimpulsen hab ich da weniger ein Problem. Einfach 2 Timer, wobei der 4s Timer den 2s Timer deaktiviert.
Mit den Tastimpulsen hab ich da schon mehr Probleme. Hab mir zuerst alle möglichen verfügbaren Bausteine angeschaut aber das war alles nicht so das was ich wollte. 
Letzenendes, und das ist auch der derzeitige Stand, wollte ich die Flanken mittels eines "NAND mit Flankenauswertung"-Baustein versuchen, der laut Beschreibung für einen CPU Zyklus "1" ist. Aber irgendwie will das auch wieder nicht. 
Hab dann das Bit vom NAND Baustein an ein SR Baustein gehangen und weiterhin das Bit vom NAND Baustein, in Verbindung mit einem Bit vom SR Baustein an einen weiteren SR Baustein gehangen. So eine Art Schieberegister. Aber irgendwie funktioniert das nicht mit dem 1 Zyklus. Ich hab da mal ein Beispiel angehangen. 

Könnt ihr mir eine Hilfestellung geben, was ich in dem Beispiel falsch gemacht habe, oder alternativ einen anderen Lösungsvorschlag geben?

Danke im Voraus

Grüße
Daimonion

Anhang anzeigen Hannes_Logo_V2.zip


----------



## hucki (16 November 2012)

Ich würd' das so lösen:




Ist sowohl bei den Kurztastcodes als auch bei den Langzeitern erweiterbar.


----------



## Daimonion (16 November 2012)

Danke Hucki für dein Beispiel. So im schnellen drüberfliegen genau das was ich brauche. Ich schau es mir die Tage mal genauer an und passe es ggfls. noch an. 

Dank dir auf jeden Fall mal!!

Grüße
Daimonion


----------



## hucki (16 November 2012)

Hier noch 'ne Variante, wo die Langzeitcodes sofort nach dem Loslassen ausgegeben werden und die Verzögerung nur bei den Kurztastcodes aktiv ist.
Zum Test/Zeigen hab' ich mal noch den Kurztastcode 3x kurz eingefügt.
Die Langzeiter sind ja einfacher einzufügen.


----------



## Daimonion (24 September 2013)

So, ich hol, das Thema nochmal hoch, da ich noch nicht ganz fertig bin mit dem Programm. 

Hucki, durch deine Ideen konnte ich mittlerweile eine Lösung für mich erarbeiten die für mich zufriedenstellend ist. 

Allerdings hab ich gerade ein ganz anders gelagertes Problem. 

Wenn ich im Kontaktplan (Ladder) bin und die Simulation anstoßen will, dann sagt mir die Software, dass einige Kontakte nicht mit der Stromschiene verbunden sind. Aha, soweit okay.
Durch diverses ausprobieren und die testweise Konvertierung und den Funktionsplan (ich arbeite normalerweise im Ladder) hab ich dann zwei Blöcke (T0014 und T0016) ausgemacht, die in der Tat in der Luft hängen. Problematisch ist, dass ich sie nur im Funktionsplan sehe und nicht im Kontaktplan, wo ich programmiert habe, und auch die ganze Formatierung habe. 

Wenn ich mir alle Blöcke (Strg+G) im Kontaktplan anzeigen lasse, dann sehe ich auch die beiden nicht genutzen Timer, aber ich kann diese weder löschen noch werden sie angezeigt. Gibt es einen Weg die nicht verwendeten Blöcke im Kontaktplan zu löschen oder muss ich den Umweg über den Funktionsplan nehmen (Konvertierung in FBD, löschen der Blöcke und wieder zurück in Ladder konvertieren) und dann meine Formatierung wieder komplett durch hin und herschieben der Elemente wiederherstellen?


Danke schon mal für die Tipps

Daimonion


----------



## hucki (25 September 2013)

Daimonion schrieb:


> Wenn ich mir alle Blöcke (Strg+G) im Kontaktplan anzeigen lasse, dann sehe ich auch die beiden nicht genutzen Timer, aber ich kann diese weder löschen noch werden sie angezeigt. Gibt es einen Weg die nicht verwendeten Blöcke im Kontaktplan zu löschen


Bei Strg+G kannst Du die Blöcke nicht anspringen? Würdest Du das Projekt hier mal hochladen?


Ansonsten mach' mal ein 2. neues leeres Projekt auf. Dann markierst Du in Deinem jetzigen Projekt mit der Mausauswahl (Kasten aufziehen, nicht Strg+A!) alle Bausteine mit den Verbindungen dazwischen, aber nicht die Stromschiene. Dann kopieren und in das neue Projekt einfügen. Zum Schluß noch die Verbindungen zur Stromschiene wieder herstellen und abspeichern. PS: Wenn Verweise in den Bausteinen verwendet werden, müssen die auch erneuert werden. Die kopiert LOGO!-Soft leider nicht mit!

Ist m.M.n. der schönere Weg, als über die Konvertierung. Da ist immer alles durcheinander.


----------



## HrWechler (25 September 2013)

Ich würde die Bauteile auch einmal kopieren. Ich hatte es selber schon einmal, dass die Schaltung wohl nicht okay wahr. Ich habe hin und her "probiert" und dann alles 1zu1 nachgebaut und dann ging es wieder. Dabei wollte ich nur vom PC zum Notebook wechseln. Wenn es nicht klappt, dann einfach einmal hochladen.


----------



## Daimonion (27 September 2013)

Hucki, ja genau. Ich sehe die Blöcke, aber wenn ich sie markiere, springt er sie nicht an. Ich hab das Projekt mal angehangen, da könnt ihr selber mal schauen. Ich werde demnächst deine 2. Variante probieren. Hört sich vielversprechend an. 

Grüße

Anhang anzeigen Hannes_V3.zip


----------



## hucki (28 September 2013)

hucki schrieb:


> Ansonsten mach' mal ein 2. neues leeres Projekt auf. Dann markierst Du in Deinem jetzigen Projekt mit der Mausauswahl (Kasten aufziehen, nicht Strg+A!) alle Bausteine mit den Verbindungen dazwischen, aber nicht die Stromschiene. Dann kopieren und in das neue Projekt einfügen. Zum Schluß noch die Verbindungen zur Stromschiene wieder herstellen und abspeichern.





Daimonion schrieb:


> Ich werde demnächst deine 2. Variante probieren. Hört sich vielversprechend an.


Und vor allem, es funktioniert. 
Es war aber auch der einzige Lösungsweg, den ich für Dein Problem gefunden habe (wenn man von dem Konvertierungsgewurschtel absieht). 

Was bei Deinem Projekt schwierig ist (bzw. war) - einige Bezeichnungen sind zu dicht an der Stromschiene platziert und so nur schwer mit dem Selektierrahmen zu erfassen, ohne auch die Stromschiene und/oder die Verbindungen zu ihr mit zu selektieren.Wenn diese Verbindungen mitselektiert und kopiert werden, schlägt das Einfügen dann fehl. Meiner Erfahrung nach entstehen genau dabei solch unsicht- und nicht selektierbare Bausteine, wie sie in Deinem Projekt vorhanden sind. Wenn also mal ein Einfügen fehl schlägt, das Einfügen sofort mit der Funktion Rückgängig (Strg+Z) ungeschehen machen, auch wenn ja scheinbar gar nichts gemacht wurde!Nur dann werden diese Bausteine wieder aus dem Projekt entfernt.

Ich hab' Dir mal die Arbeit abgenommen und auch gleich noch die Bausteine vernünftig angeordnet. Außerdem waren einige Verbindungen nicht sauber erstellt, wenn mehrere Bausteine sich vorhergehende ODER-Verknüpfungen geteilt haben. Das war an den fehlenden Verknüpfungsknoten zu erkennen, obwohl eine Verbindung vorhanden war, und sollte jetzt behoben sein. Ursache dafür ist meistens, das einige Verknüpfungen der ODER-Baugruppe zum 1. Baustein und einige zum 2. geführt wurden. Es sollte immer erst die komplette ODER-Baugruppe auf den 1. Baustein verknüpft werden und dann abschließend erst weitere Bausteine zusätzlich damit verknüpft werden.


----------



## Daimonion (6 Oktober 2013)

Danke dir für deine Mühe. *thumbsUp* Wäre gar nicht nötig gewesen. 

Wenn wir aber schon mal bei der Manöverkritik sind. Siehst du noch Verbesserungen in der Funktionalität? Ich weiß das kann jetzt schwierig werden, da du ja nicht weißt was alles genau so sein sollte, wie es ist, aber ich denke die Hauoptaufgabe besteht darin zu separieren wann wie oft ein Taster gedrückt wurde und daraus dann die entsprechenden Merker zu generieren, die dann die Schrittketten mit den Lichtabfolgen steuern. 

Aktuell ist vielleicht 40% des Schaltumfanges implementiert. Es kommt noch 1 (2) Tasterkreise hinzu (die wo wieder erkannt werden soll, wie oft was gedrückt wurde) und 1(2) Schrittketten, die dann die Lichtabfolgen generieren. Ausgangsgruppen kommen mind. noch 2 dazu. Die erste für die jetzige 2. Schrittkette und dann nochmal für die weiteren noch zu programmierenden Schrittketten. 



Grüße
Daimonion


----------



## hucki (6 Oktober 2013)

Daimonion schrieb:


> Wenn wir aber schon mal bei der Manöverkritik sind. Siehst du noch Verbesserungen in der Funktionalität? Ich weiß das kann jetzt schwierig werden, da du ja nicht weißt was alles genau so sein sollte, ...


Ehrlich gesagt, hab' ich mir die Funktionalität überhaupt nicht angesehen, da ich ja in der Tat nicht weiß, was wann passieren soll.


Prinzipiell solltest Du vor allem in den Laufwegen nicht zu viele Codes integrieren, damit auch Gäste ihren Weg z.B. zur Toilette beleuchtet finden, ohne erst eine BA an jedem Lichtschalter lesen zu müssen. Weniger ist manchmal mehr.

Ich würde immer kurze Tastendrücke (wie gewohnt) für das einfache Lichtschalten einer bestimmten einzelnen Leuchte/Gruppe verwenden, während lange Tastendrücke Räume oder größere Gruppen bzw. Szenen komplett auf einmal schalten.

Wie auch immer, das Konzept sollte bei allen Schaltern möglichst gleich sein und sich dem Benutzer intuitiv erschließen.



PS: Hab' gerade noch mal schnell in Dein Programm rein gesehen -> die Ein- und Ausgänge sind m.M.n. momentan etwas wild benutzt. Aber da fehlen mir dann wahrscheinlich doch die Hintergrundinformationen.


----------



## Daimonion (6 Oktober 2013)

hucki schrieb:


> Prinzipiell solltest Du vor allem in den Laufwegen nicht zu viele Codes integrieren, damit auch Gäste ihren Weg z.B. zur Toilette beleuchtet finden, ohne erst eine BA an jedem Lichtschalter lesen zu müssen. Weniger ist manchmal mehr.
> 
> Ich würde immer kurze Tastendrücke (wie gewohnt) für das einfache Lichtschalten einer bestimmten einzelnen Leuchte/Gruppe verwenden, während lange Tastendrücke Räume oder größere Gruppen bzw. Szenen komplett auf einmal schalten.



Ja das sehe ich genau so. Erst mal nen kurzer Druck, so dass Licht angeht, und wenn man dann was spezielles will, kann man sich auch Gedanken machen. 




hucki schrieb:


> Wie auch immer, das Konzept sollte bei allen Schaltern möglichst gleich sein und sich dem Benutzer intuitiv erschließen.
> 
> PS: Hab' gerade noch mal schnell in Dein Programm rein gesehen -> die Ein- und Ausgänge sind m.M.n. momentan etwas wild benutzt. Aber da fehlen mir dann wahrscheinlich doch die Hintergrundinformationen.



Ich hab mir dazu auch direkt eine Excel File angelegt, worin man erkennt, welche Lichtszenen wann geschalten werden. Daraus sieht man dann dass die einfachen Tastzyklen überall gleich sind. Die Anordung der Ein- und Ausgänge ist in der Tat durch die gewachsene Struktur so. Vielleicht mach ich das in einer späteren Version nochmal sauber. Jetzt muss es erst mal von der Funktionalität her fertig werden. 

Danke dir für deine Antwort!

Grüße
Daimonion


----------



## hucki (6 Oktober 2013)

Daimonion schrieb:


> Ich hab mir dazu auch direkt eine Excel File angelegt, worin man erkennt, welche Lichtszenen wann geschalten werden. Daraus sieht man dann dass die einfachen Tastzyklen überall gleich sind.


Darf man das mal sehen?
Bin doch so neugierig.



Muss Dein Programm eigentlich unbedingt in KOP/LAD sein? Ich programmier zwar bei 'ner ausgewachsenen SPS auch lieber darin, allerdings finde ich bei der LOGO!, das man FUP/FBD gerade bei Deinen verschiedenen Räumen besser in die einzelnen Funktionen gruppieren kann.


----------



## Daimonion (9 Oktober 2013)

Klar darfst du gerne sehen. 

Ich brauch zwar auch immer wieder etwas Zeit bis ich in dem Sheet drin bin, aber letztendlich bekomme ich es immer wieder mit Hilfe der Vorstellung der Räumlichkeiten (die dir ja dann fehlt) hin.


Ich hab meine letzte SPS vor ein paar Jahren programmiert und damals die "großen" Maschinensteuerungsprogramme auch alle in KOP programmiert. Daher habe ich bei der Logo hier schneller wieder im KOP reingefunden.
Du hast aber Recht, dass man hier durchaus Vorteile hätte wenn man FUP nimmt. 

 Na ja jetzt ist das Kind, was die Wahl der Oberfläche angeht, eh schon ins Wasser gefallen. Bin hoffentlich bald fertig. 

Grüße


----------



## Drexta (10 März 2019)

hucki schrieb:


> Hier noch 'ne Variante, wo die Langzeitcodes sofort nach dem Loslassen ausgegeben werden und die Verzögerung nur bei den Kurztastcodes aktiv ist.
> Zum Test/Zeigen hab' ich mal noch den Kurztastcode 3x kurz eingefügt.
> Die Langzeiter sind ja einfacher einzufügen.




Hallo hucki,

ich versuche mich auch gerade an deiner Codetaster Variante. Leider ist es bei mir so das der Ausgang Q1 sofort angeht auch wenn ich keinen Taster gedrückt habe. Alles andere funktioniert wunderbar.

Nur würde ich es gerne so haben:
1x kurz tasten = Q1 an
1x kurz tasten = alles aus
2x kurz tasten = Q2 an
3x kurz tasten = Q3 an
1x lang tasten = Q4 an
1x länger tasten = Q5 an

Ist das überhaupt möglich?

Danke und Gruß


----------



## hucki (10 März 2019)

Drexta schrieb:


> Hallo hucki,
> 
> ich versuche mich auch gerade an deiner Codetaster Variante. Leider ist es bei mir so das der Ausgang Q1 sofort angeht auch wenn ich keinen Taster gedrückt habe. Alles andere funktioniert wunderbar.
> 
> ...


Prinzipiell ist es sicher möglich, das umzusetzen. Halt 'ne Frage des Aufwands.
Ob diese Bedienung noch intuitiv ist, sei mal dahin gestellt.


Ich selbst hab' momentan (für Dich leider) allerdings keine Muße, mich mit der Umsetzung zu beschäftigen.
Sorry.


----------



## Drexta (10 März 2019)

Danke für die Antwort.

Ich frage mich aber was die ursprüngliche Schaltung bezwecken soll wenn der Ausgang Q1 dauerhaft an ist.

Meiner Meinung nach macht nur das von mir erwähnt Konzept wirklich Sinn. Ich möchte das ganze mit einer Rollo Schaltung verbinden. 

Oder habe ich da einen Denkfehler 🤔🤔


----------



## hucki (10 März 2019)

Drexta schrieb:


> Ich frage mich aber was die ursprüngliche Schaltung bezwecken soll wenn der Ausgang Q1 dauerhaft an ist.


Q1 ist ja nicht dauerhaft an.

Wenn 2x oder 3x kurz bzw. 1x oder 2x lang getastet wird, wechselt das HIGH zu Ausgang Q2 - Q5.
Einer der Ausgäng ist also nach der Wahl immer an, aber nicht immer Q1.

Was der TE damals weiter damit anstellen wollte, hat er ja nicht explizit erkärt. (Ist allerdings auch schon 'ne Weile her.)
In Deinem Fall könnte man vielleicht z.B. Stromstoßschalter anstelle der Qs nachschalten.
 Und eine fallende Flanke an dem von Q1 löst dann auch an den anderen vieren einen Reset aus.



Und wer weiß, ob ich heutzutage nicht auch auf einen anderen Lösungsweg kommen würde.


----------



## hucki (10 März 2019)

hucki schrieb:


> Ich selbst hab' momentan (für Dich leider) allerdings keine Muße, mich mit der Umsetzung zu beschäftigen.
> Sorry.


Sie überkam mich doch.



hucki schrieb:


> Und wer weiß, ob ich heutzutage nicht auch auf einen anderen Lösungsweg kommen würde.





Drexta schrieb:


> Nur würde ich es gerne so haben:
> 1x kurz tasten = Q1 an
> 1x kurz tasten = alles aus
> 2x kurz tasten = Q2 an
> ...


So würde ich Deine Anforderung wahrscheinlich heutzutage lösen:







Ich hab' alle Codes immer als Toggle ausgeführt.
Ansonsten müsste bei Q2-5 der Trg-Eingang des jeweiligen Stromstoßschaltes auf S umgelegt werden.



Probleme bei solchen Sachen:
Der Bediener sieht bei Kurztastungen nicht, ob eine Tastung erkannt wurde oder nicht und drückt daher eventuell zu oft/wenig.
Bei den Langtastungen sieht man dagegen den Zeitablauf nicht und das Zeitgefühl ist dafür doch sehr individuell.

Deshalb würde ich persönlich höchstens zwischen kurz und lang unterscheiden.


----------



## Drexta (10 März 2019)

Hallo,

Danke. Daraus bastel ich mir mal ein UDF. 

Ja das stimmt, nur denke ich das man es besser einschätzen kann ob ich zwei oder dreimal getippt habe, als wenn ich 2 sec oder 4 sec drücke.

Am Ende wird es sich eh in der Praxis zeigen. Im Grunde ist es wichtig das unsere Hausbewohner damit klar kommen und nicht irgendwelche Gäste.

Folgende Funktionen würde realisieren wollen:

1. Rollo ganz runter
2. Rollo Stopp
3. Rollo zwischen Position (Sonnenschutz)
4. Zentral Rollo runter

Das ganze dann in Kombi mit einem kurz lang Tasten Kombi.


----------



## hucki (10 März 2019)

Drexta schrieb:


> Daraus bastel ich mir mal ein UDF.


Vorsicht mit dem Merker!

Beim 2. Einfügen des UDF wählt die Logo!Soft den nächst freien Merker, sofern der im UDF schon belegt ist (also spätestens beim 2. Einfügen).
Das kann auch ein Sondermerker sein und u.U. unerwünschte Effekte hervorrufen. Im Zweifelsfall also die Sondermerker vorher in die Schaltung einfügen, damit sie nicht verfügbar sind.


----------



## Drexta (10 März 2019)

Danke, nur das Problem ist das ich im UDF keine Sondermerker einbauen kann 🤔


----------



## hucki (10 März 2019)

Drexta schrieb:


> Danke, nur das Problem ist das ich im UDF keine Sondermerker einbauen kann


Die sollen ja auch nicht in den UDF sondern in die Hauptschaltung, damit der UDF beim Einfügen in die Hauptschaltung diese nicht verwenden kann.
Da passt die Logo!Soft bis dato nicht auf, dass diese nicht verwendet werden.


Das größere Problem für Dich sind vermutlich die max. 4 möglichen Ausgänge für UDFs.
Könntest vielleicht in 2 UDFs auftrennen. Z.B. Kurz- und Langcodes.


----------



## Heinileini (10 März 2019)

Drexta schrieb:


> Danke, nur das Problem ist das ich im UDF keine Sondermerker einbauen kann


Es war nicht die Rede davon, die SonderMerker IM UDF einzubauen!
Sie müssen irgendwo "verbraten" werden, damit sie zu dem Zeitpunkt, wenn das UDF in der Schaltung eingebaut wird, nicht zur Verfügung stehen. Danach kannst Du sie wieder entfernen oder anderweitig verwenden.


----------

