Lampe tasten

andy11

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich auf einen Taster drücke soll die Lampe einschalten und wenn ich nochmal draufdrücke soll sie wieder ausgehen

Wie in aller Welt kann man sowas mit Logik realisieren??
Wie kann man das ohne Timer machen?

Das ganze möchte ich in Kop machen in B&R Automation Studio
 
Kurz in ST
Code:
Taster AT%I* :BOOL;
Licht AT%Q* :BOOL;
Flanke: R_Trig;

Flanke(CLK:=Taster);
IF Flanke.Q THEN 
    Licht:=NOT Licht;
END_IF
Mit dem Trigger R_Trig detektierst du steigende Flanken von deinem Taster. Wenn der Taster gedrückt wird, negierst du einfach den Zustand deiner Lampe. AN => AUS .... AUS=>AN
Dadurch das nur die Flanke ausgewertet wird, schaltet dein Licht nicht ständig an und aus wenn der Taster gedrückt gehalten wird.
Man muss ihn erst loslassen und neu drücken.



Sorry, hab überlesen das du die Logik in KOP realisieren willst :oops:
 
Zuletzt bearbeitet:
ich habe es so wie im folgenden Bild versucht mit dem ABB Programm zu lösen aber es scheint nicht zu funktionieren.
 

Anhänge

  • test.JPG
    test.JPG
    46,9 KB · Aufrufe: 29
was macht das XOR?
ich versteh das ganze nicht, in B&R muss man da nur ein p oder n Kontakt hingeben, wieso sind 2 KOP's so unterschiedlich?
 
was macht das XOR?
ich versteh das ganze nicht, in B&R muss man da nur ein p oder n Kontakt hingeben, wieso sind 2 KOP's so unterschiedlich?

Mein Beispiel im Bild ist eh unschön auch wenn es seltsamerweise Funktioniert (ich habe mit KOP nicht viel am Hut). Das XOR sollte lieber in ein eigenes Netzwerk darunter verfrachtet werden.


Nun zu Deiner Frage XOR ist eine Exklusiv oder der Ausgang eines XORs ist nur dann TRUE wenn Exakt ein Eingang True ist. Wenn mehr oder weniger Eingänge True sind ist der Ausgang False.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe es so wie im folgenden Bild versucht mit dem ABB Programm zu lösen aber es scheint nicht zu funktionieren.
Logisch, die Lampe bleibt immer aus. Warum programmierst Du nicht einfach so wie man es Dir vorschlägt?
Und damit Du nicht dumm sterben mußt, erklären wir mal kurz warum es nicht funktioniert:
Im zweiten Netzwerk wird bei der steigenden Flanke des Tasters die Lampe eingeschaltet falls sie noch aus ist. Jetzt kommt aber das dritte Netzwerk zum Zuge, hier wird wieder der Taster abgefragt, die Lampe wurde aber eins drüber eingeschaltet, demzufolge ist die Bedingung auch wahr und die Lampe wird gleich wieder ausgeschaltet. Nicht umsonst habe ich im obigen Vorschlag einen Hilfsmerker verwendet. Er hat zur Aufgabe sich zu merken daß die Lampe eben noch aus war und demzufolge wird in meinem Beispiel die Lampe eingeschaltet und bleibt ein.
Der Hilfsmerker für den Taster macht im Prinzip nichts anderes als Deine Funktionen zur Flankenbildung, nur daß es diese nicht unbedingt so bei jedem Hersteller gibt.
 
ok danke dir einmal da hast du recht, ich bin aber auch dann selber draufkommen, jetzt habe ich aber sowas ähnliches wie du gemacht funktioniert aber trotzdem nicht, was mache ich aber falsch``??
 

Anhänge

  • test.JPG
    test.JPG
    46,6 KB · Aufrufe: 22
Wie wäre es wenn Du mal ganz einfach die Lösung von Oberchefe nach malen würdest?

Alternativ hätte ich auch noch eine Lösung im Anhang die man auch nach malen kann.
 

Anhänge

  • Stromstoss2.jpg
    Stromstoss2.jpg
    24,3 KB · Aufrufe: 18
Zuviel Werbung?
-> Hier kostenlos registrieren
das Problem ist, dass ich ja schon eine Idee habe und ich nur ungern über anderer Lösungen zugreife, da ich später im Job auch auf mich selbst gestellt bin, jetzt ist noch meine Lernphase, ich bin jetzt zwar schon 4.HTL aber bisher habe ich nur in FUP programmiert und dieses Kop macht mich echt fertig, also bitte helft mir mit meiner Idee und bitte erklärts ihr Spezialisten wieso es nicht so hinhaut wie es sollte

lg andy
 
das Problem ist, dass ich ja schon eine Idee habe und ich nur ungern über anderer Lösungen zugreife...

Warum Deine Lösung nicht funktioniert ist mir schon klar. Nur wie soll ich Dir das erklären?

Wenn Dein Netzwerk 2 den Zustand hat das der Ausgang gesetzt wird ist die Bedingung eben automatisch (einen Zyklus später) auch im Netzwerk 3 erfüllt die den Ausgang wieder zurücksetzt.
 
Zuletzt bearbeitet:
Wenn Dein Netzwerk 2 den Zustand hat das der Ausgang gesetzt wird ist die Bedingung eben automatisch auch im Netzwerk 3 erfüllt die den Ausgang wieder zurücksetzt.
Nein das stimmt nicht, denn ich setze ja Zustand zurück, somit kann die erfüllung der Bedinguing im 3ten Netzwerk nicht geschehen

aber es funzt trotzdem nicht

lg andy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
erklärts ihr Spezialisten wieso es nicht so hinhaut wie es sollte

Ganz einfach,
nehmen wir mal an der Ausgang war vorher aus, mit dem Taster wird in NW1 "Zustand" auf 1 gesetzt, in NW2 gibt es folglich eine steigende Flanke, der Ausgang wird auf 1 gesetzt, das Bit Zustand zu 0. Jetzt kommen wir in NW3, "Zustand" ist jetzt 0, der Rest wird nicht abgearbeitet.
Zweiter Programmdurchlauf, Taster immer noch gedrückt. In NW1 wird Zustand wieder zu 1. In NW2 passiert nichts (der Ausgang von R_TRIG wird zu 0 da der Eingangspfad im vorhergehenden Durchlauf bereits 1 war).
Jetzt kommt aber NW2. Da war im vorhergehenden Durchlauf das Bit "Zustand" 0, daher wird mit R_TRIG eine steigende Flanke gesetzt, der Ausgang ist ja mittlerweile 1 und wird daher wieder auf 0 gesetzt. Wird der Taster jetzt losgelassen bleibt der Ausgang aus.
 
Nein das stimmt nicht, denn ich setze ja Zustand zurück, somit kann die erfüllung der Bedinguing im 3ten Netzwerk nicht geschehen

aber es funzt trotzdem nicht

lg andy
Ich habe den Fehler in der Beschreibung auch bemerkt und vorhin schon einen Zyklus später ergänzt.

Das Netzwerk 3 ist deshalb erfüllt weil Dein Taster ja die Variable "Zustand" wieder setzt.

Wenn man Dein Beispiel anpasst das es geht hat es nicht mehr viel mit dem Ansatz zu tun.

Siehe Anhang mit Lösung 3, 4 oder 5?
 

Anhänge

  • StromstossX.jpg
    StromstossX.jpg
    16,9 KB · Aufrufe: 13
das hast du fantastisch erklärt und jetzt weiß ich auch was du meinst.
Jedoch haben wir das im Werkstättenlabor !sehhr! ähnlich gelöst und mit dem selben denkansatz, das kann doch nicht so falsch sein was ich gemacht hab, da fehlt bstimmt nur eine Kleinigkeit, aber ich schau mir mal eure Beispiele an obwohl ich komme mit Ideen anderer wie schon gesagt nicht gut zurecht
danke euch
 
Zurück
Oben