Step 7 Hilfe!!!

Spucas Leicher

Level-1
Beiträge
24
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus

Ich bräuchte bitte eure Hilfe.
Ich habe zwei Taster (T1 und T2) und eine Lampe.

Wenn ich T 1 drücke soll die Lampe leuchten und nur mit T 1 wieder ausgeschaltet werden. Umgekehrt mit T2.

Bitte beachten es sind Taster keine Schalter, d.h. zweimal drücken des Taster= Lampe an, nochmal zweimal= Lampe aus.


Wäre genial, wenn mir jemand den Code schreiben könnte inklusive Erklärung bitte :)
 
Servus

Code gibts nicht fertig ohne Ansatz... zumindest von mir nicht.

Mach dir einfach 2 SR-Glieder (Taster 1 gedrückt und Taster 2 gedrückt), "Taster 1 gedrückt" setzt du nur wenn Taster 1 gedrückt wird und das SR "Taster 2 gedrückt" nicht aktiv ist. "Taster 1 gedrückt" setzt du zurück wenn Taster 1 betätigt ist und das SR "Taster 1 gedrückt" aktiv ist. Das ganze umgekehrt für Taster 2.
Dann nimmst du die 2 SR-Glieder und verschaltetst sie mit einem ODER-Glied auf deinen Lampenausgang.

Gruß ThomasM
 
Zuviel Werbung?
-> Hier kostenlos registrieren
U "U04SpID".SchulA4T7.Sig
= "U04SeqD".Seq.User.Bit7 //Bit 7 Schalter 1 zugewiesen

U "U04SpID".SchulA4T8.Sig
= "U04SeqD".Seq.User.Bit8 // Bit 8 Schalter 2 zugewiesen


U "U04SeqD".Seq.User.Bit7
UN "U04SeqD".Seq.User.Bit8
S "U04SeqD".Seq.User.Bit7
= "U04SeqD".Seq.User.Bit7 //Setzen wenn Bit 7 aktiv und Bit 8 nicht aktiv


U "U04SpID".SchulA4T7.Sig
U "U04SeqD".Seq.User.Bit7
R "U04SeqD".Seq.User.Bit7 // Rücksetzen wenn Taster 1 aktiv und Bit 7 aktiv sind





U "U04SeqD".Seq.User.Bit7
= "U04ActD".SchulA4L4.ACo // Wenn Bit 7 aktiv dann Lampe an


das wäre meine Umsetzung, zumindest für Taster 1

Was ist falsch?
 
Zuletzt bearbeitet:
Lieber TE,
eine Thema mit den Titel "Hilfe!!!" wird hier nicht gerne gesehen,
wenn jede Titelüberschrift Hilfe heißt und nur durch die Zahl der Ausrufungszeichen
unterschieden wird, können wir unsere Suchfunktion abschalten.

Ich bitte dich darum das in Zukunft zu beachten.

Hier noch mal die entsprechende Foren-Regel dazu.
§3 Angaben bei Fragen
Wähle einen aussagekräftigen Titel für dein Thema, der dein Problem kurz und präzise beschreibt.
Titel wie “Hilfe!!!“ und “Ich habe ein Problem“ werden als Verstoß gegen die Forumsregeln betrachtet.
Die anderen User können deine Gedanken nicht lesen. Schreibe also möglichst detailliert welche Hardware
und Software du verwendest. Die Chancen auf eine qualifizierte Antwort werden dadurch größer,
denn viele User habe keine Lust erst mühsam die Umstände zu klären
 
OK Denkfehler meinerseits. Meine Lösung kann nicht funktionieren, da er sich im selben Zyklus sofort wieder SR zurücksetzt. Du könntest die beiden Taster beim Setzen auf eine negative Flanke abfragen, dann geht die Lampe aber erst beim Loslassen des Tasters an.

Gruß ThomasM
 
Die beschriebene Funktion ist die eines "Stromstoss-Schalters".
Vielleicht auch einfach mal die Foren-Suche mit dem Stichwort probieren ...
 
kommt darauf an in welche Sprach du das realisierst :) in FUP geht das sehr gut mit dem genannten Stromstoss-Schalter

in SCL geht es recht schnell mit zwei if-schleifen...waere meine Favorisierte Loesung

R_TRIG();
R_TRIG.CLK:= taster1;

if R_TRIG.Q then
lampe1:= TRUE;
end_if;

if R_TRIG.Q and lampe1 then
lampe1:= FALSE;
end_if;

in AWL kannst du das FUP-Bild eines Stromstoss-Schalters einfach umsetzen und es geht
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
kommt darauf an in welche Sprach du das realisierst :) in FUP geht das sehr gut mit dem genannten Stromstoss-Schalter
Ist noch verbesserungswürdig.
Code:
[COLOR=#ff0000]//Annahme Taster > 1; Lampe = 0[/COLOR]


if R_TRIG.Q then
lampe1:= TRUE;			[COLOR=#ff0000]//R_TRIG.Q wird 1[/COLOR]
end_if;


if R_TRIG.Q and lampe1 then	[COLOR=#ff0000]//R_TRIG.Q nach wie vor 1, Lampe ist auch 1[/COLOR]
lampe1:= FALSE;			[COLOR=#ff0000]//Lampe wird 0[/COLOR]
end_if;
Ich würd auch SCL die XOR-Variante bevorzugen.
 
Zuletzt bearbeitet:
in SCL geht es recht schnell mit zwei if-schleifen...waere meine Favorisierte Loesung

Code:
R_TRIG();
R_TRIG.CLK:= taster1;

if R_TRIG.Q then
   lampe1:= TRUE;
end_if;

if R_TRIG.Q and lampe1 then
   lampe1:= FALSE;
end_if;
Die Lampe dürfte nie angehen!

Wenn R_TRIG.Q TRUE ist, wird als 1. das erste IF durchlaufen und lampe1 auf TRUE gesetzt.
Anschließend wird auch das 2. IF durchlaufen, da ja R_TRIG.Q immer noch und lampe1 mittlerweile TRUE ist.
lampe1 wird also sofort wieder ausgeschalten.
Wenn müsste mit ELSIF gearbeitet werden. Aber ein XOR dürfte auch in SCL einfacher als das inflationäre IF sein:
Code:
R_TRIG();
R_TRIG.CLK:= taster1;

lampe1 := lampe1 XOR R_TRIG.Q;



PS: Da freut man sich doch über prominente Unterstützung -> oder nicht Ronin?
:ROFLMAO:
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde 2 Stromstoß-Schalter (SS) parallel schalten, welche nur bedient werden können, wenn der jeweils andere SS AUS ist oder der eigene SS EIN ist (Also: T1 UND (NICHT SS2 ODER SS1) ...)

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bisheriges Ergebnis:

U "U04SpID".SchulA4T7.Sig
UN "U04SeqD".Seq.User.Bit8
S "U04SeqD".Seq.User.Bit7



UN "U04SpID".SchulA4T7.Sig
U "U04SeqD".Seq.User.Bit7
R "U04SeqD".Seq.User.Bit7


U "U04SpID".SchulA4T8.Sig
UN "U04SeqD".Seq.User.Bit7
S "U04SeqD".Seq.User.Bit8




UN "U04SpID".SchulA4T8.Sig
U "U04SeqD".Seq.User.Bit8
R "U04SeqD".Seq.User.Bit8


U "U04SeqD".Seq.User.Bit7
O "U04SeqD".Seq.User.Bit8
= "U04ActD".SchulA4L4.ACo

Lampe geht aber beim zweiten Mal Tasterdrücken wieder aus. Wie verhindere ich das?
Bitte in AWL :)
 
Lampe geht aber beim zweiten Mal Tasterdrücken wieder aus. Wie verhindere ich das?
Benutzt Du rastende Tastschalter anstatt normale Taster? :confused: Laut Deinem Code müßte die Lampe schon beim Loslassen des Tasters wieder ausgehen.
Dein Code hat keinerlei Flankenerkennung.

Wenn ich T 1 drücke soll die Lampe leuchten und nur mit T 1 wieder ausgeschaltet werden. Umgekehrt mit T2.

Bitte beachten es sind Taster keine Schalter, d.h. zweimal drücken des Taster= Lampe an, nochmal zweimal= Lampe aus.
Bist Du sicher, daß Du die Aufgabenstellung hier korrekt aufgeschrieben hast? Wer denkt sich sowas aus - warum soll der Taster jeweils zweimal gedrückt werden?

Harald
 
Lampe geht schon beim ,,Loslassen´´ des Tasters wieder aus.( Habe mich falsch ausgedrückt) Ich hätte aber gerne, dass sie beim Loslassen anbleibt und bei erneutem Drücken und Loslassen ausgeht.
Wo muss ich welche Flanken setzen?

Aufgabe: Wird das Licht von T1 eingeschaltet so kann es nur von T1 auch wieder ausgeschaltet werden. Umgekehrt ist es auch mit T2
 
Zuletzt bearbeitet:
Zurück
Oben