Licht =)

Diàvolo
2007-08-16
2007-08-18
  • Diàvolo - 2007-08-16

    Hey,

    ich bin in diesem Bereich ganz neu und habe eine simple, peinliche Frage.

    Ich möchte gerne eine Lampe via codesys ein und aus machen. Ich hab das schon hinbekommen, dass die lampe bei knopfdruck angeht, aber wenn ich den knopf loslasse geht auch die Lampe aus.

    Ich habe das so geschrieben:

    Ich bräuchte einen art "set" befehl oder in der art, wie funktioniert das und wie bekomm ich das hin? =)

    Danke im Vorraus,

    Diàvolo

     
  • Oberchefe - 2007-08-16

    Erst einmal die Flanke vom Taster bilden. Entweder per fertigem Funktionsbaustein, oder aber von Hand:

    Flanke:=DE1_1 AND NOT MerkerDE1_1;
    MerkerDE1_1:=DE1_1;
    

    Dann Lampe mit der Flanke ein/ausschalten:

    If Flanke Then
    DA1_1:=Not DA1_1;
    END_IF
    

    Ansonsten Forensuche mit Stichwort "Eltako" oder "Stromstoßschalter"

     
  • Diàvolo - 2007-08-16

    Hey,

    hab das alles jetzt mal eingetippt und auch übersetzen lassen, so weit so gut, aber wenn ich das dann auf meinen I/O übertragen habe leuchtet die lampe nur wieder wenn ich durchgehend auf den schalter drücke. =(

    Forensuche hat nur meinen Theard hier ergeben....

     
  • Oberchefe - 2007-08-16

    Habe das jetzt auf der Simulation getestet, funktioniert da aber (wenn ich die fehlende Leerstelle in Codezeile

    DA1_1:= Not DA1_1; 
    

    nach dem Gleichheitszeichen reinmache).

    Kannst Du mal Dein komplettes Projekt hochladen? Vielleicht stimmt da was anderes nicht.

     
  • Pitsch52 - 2007-08-18

    Hallo Diàvolo

    Du musst das Ganze auf eine Flanke triggern, wenn Du die Lampe <toggeln> willst.</toggeln>

    Definiere im Variablen-Teil noch eine Variable <flanke:bool;></flanke:bool;>

    Dann im Code-Teil:


    Wenn der Wechsel beim Drücken des Tasters statfinden soll:

    IF Flanke = False AND DE1_1 = TRUE THEN

    IF DA1_1 = FALSE THEN

    DA1_1 := TRUE;
    

    ELSE

    DA1_1 := FALSE;
    

    END_IF

    END_IF

    Flanke := DE1_1;

    Oder ---------------------------------------------------------------------

    Wenn der Wechsel beim loslasen des Tasters statfinden soll:

    IF Flanke = False AND DE1_1 = FALSE THEN

    IF DA1_1 = FALSE THEN

    DA1_1 := TRUE;
    

    ELSE

    DA1_1 := FALSE;
    

    END_IF

    END_IF

    Flanke := NOT DE1_1;


    Natürlich musst Du entweder die Eine, oder die Andere Methode Programmieren. nicht beide zusammen.

    Viel Spass beim ausprobieren!

    Mit freundlichen Grüssen! Pitsch

     

Log in to post a comment.