Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: Scl ton

  1. #1
    Registriert seit
    01.05.2007
    Beiträge
    100
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Kollegen,

    kann mir jemand erklären warum beim unten stehenden Programm der Timer nur läuft so lange bstart betätigt ist? Eigentlich habe ich doch den Timer auf True gesetzt.

    Sorry bin Anfänger in SCL

    FUNCTION_BLOCK FB2

    VAR_TEMP
    // temporäre Variablen

    END_VAR
    VAR
    iSchrittnummer:INT;
    tWait_Time:TON;
    END_VAR

    VAR_INPUT

    bStart:BOOL;
    bReset:BOOL;
    bKamera_Output_1:BOOL;
    bKamera_Output_2:BOOL;
    bKamera_Output_3:BOOL;

    END_VAR

    VAR_OUTPUT

    bSelect:BOOL;
    bTrigger:BOOL;

    END_VAR

    BEGIN

    // Schrittkette in Grundstellung bringen

    IF bReset AND iSchrittnummer <> 0 THEN
    iSchrittnummer:=0;
    tWait_Time(IN:=False);
    END_IF;


    IF bStart THEN
    tWait_Time(IN:=TRUE,PT:=T#5s);
    END_IF;


    IF tWait_Time.Q then
    iSchrittnummer:=10;
    tWait_Time(IN:=False);
    END_IF;


    END_FUNCTION_BLOCK
    Zitieren Zitieren Scl ton  

  2. #2
    Registriert seit
    04.07.2007
    Beiträge
    147
    Danke
    6
    Erhielt 13 Danke für 13 Beiträge

    Standard

    Du darfst
    Code:
    tWait_Time(IN:=TRUE,PT:=T#5s);
    nur einmal aufrufen. Für "IN:=TRUE" solltest du statt mit TRUE mit einer Variablen verknüpfen. Also z.B.
    Code:
    VAR
    tWait_Time:TON;
    StartTimer:bool;
    END_VAR
    BEGIN
    tWait_Time(IN:=StartTimer,PT:=T#5s);
     
    if iSchrittnummer:=0;
    StartTimer:=false;
    END_IF;
     
     
    IF bStart THEN
    StartTimer:=true;
    END_IF;

  3. #3
    Registriert seit
    19.10.2007
    Ort
    far far away
    Beiträge
    478
    Danke
    114
    Erhielt 136 Danke für 95 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du rufst doch den Timer nur auf wenn bstart True ist. Nimm einfach das "IF bstart THEN...END_IF" weg und laß nur den Timer stehen.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •