Taster

JonnyFlash
2011-06-08
2011-06-08
  • JonnyFlash - 2011-06-08

    Hallo zusammen, ich bin totaler Anfänger in der SPS programmierung, und suche schon seit ein paar Tagen im Forum und auch in anderern Foren nach der Programmierung eines Tasters.

    Ich weiß dass man das mit der Flankenerkennung macht, allerdings nicht richtig wie!

    Ein Motor soll in die eine Richtung drehen, wenn und solange ein Schalter gedrückt ist.
    Er soll in die andere Richtung drehen, wenn und solange ein anderer Schalter gedrückt ist.

    Hier der CODE:

    VAR_INPUT
    Taster_links: BOOL;
    Taster_rechts: BOOL;
    END_VAR

    VAR
    linksrum: R_TRIG;
    rechtsrum: R_TRIG;
    stellsignal: REAL;
    endanschlag_links: REAL;
    endanschlag_rechts: REAL;
    END_VAR

    linksrum.Q(CLK:=Taster_links)
    IF linksrum.Q THEN
    stellsignal:= endposition_links;
    END_IF;

    rechtsrum.Q(CLK:=Taster_rechts)
    If rechtsrum.Q THEN
    stellsignal:= endposition_rechts;
    END_IF;

    Ich hoffe meine Frage und der Code sind verständlich.
    Wenn was unklar ist bitte schreiben, ich werde das dann weiter ausführen!

     
  • Schuero - 2011-06-08

    Hallo.

    Wenn ich das richtig verstanden habe, soll der Motor nur so lange laufen, wie der Taster gedrückt wurde.
    Dann könnte man das locker ohne Trigger realisieren.

    Bsp.

    Hier der CODE:

    VAR_INPUT
    Taster_links: BOOL;
    Taster_rechts: BOOL;
    END_VAR

    VAR_Output
    stellsignal_Linksrum;
    stellsignal_Rechtsrum;
    END_VAR

    (Erst mal alles FALSE setzen)
    stellsignal_Linksrum:= FALSE;
    stellsignal_Rechtsrum:= FALSE;

    IF (Taster_links and NOT Taster_rechts) THEN
    stellsignal_Linksrum:= TRUE;
    stellsignal_Rechtsrum:= FALSE;
    END_IF;

    If (NOT Taster_links and Taster_rechts) THEN
    stellsignal_Linksrum:= FALSE;
    stellsignal_Rechtsrum:= TRUE;
    END_IF;

    Gruß Schuero

     

Log in to post a comment.