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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Variabel einen Wert für bestimmte Zeit zuweisen

  1. #1
    Registriert seit
    30.04.2013
    Beiträge
    38
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich würde gerne einer Variablen einen Wert für eine bestimmt Zeit zuweisen.

    So das diese Variable immer zwichen TRUE und FALSE hin und her schlatet.

    Damit möchte ich in meiner Visualisierung ein blinken erzeugen.

    Ist dieses möglich? Gibt es vielleicht noch einfachere Wege dieses umzusetzten?

    Ich arbeite mit TwinCat3.1 und benutzte die ST-Sprache.

    Meine bisherigen verusche sind immer in einer Endlosschleife gescheitert.

    Über Vorschläge freue ich mich sehr.

    Danke.
    Zitieren Zitieren Variabel einen Wert für bestimmte Zeit zuweisen  

  2. #2
    Registriert seit
    08.01.2007
    Beiträge
    54
    Danke
    1
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Lampe:= not Lampe ;
    oder verzögert
    timer:ton;
    timer(in:= not timer.q,pt:=t#250ms);
    If timer.q then
    lampe:=not Lampe;
    End_if

  3. #3
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Oder einen Zähler in Abhängigkeit inkrementieren und die Variable am Ende negieren. Je nach Zykluszeit ergibt sich die Blinkzeit.

    Beispiel für 1 Sekunde On/Off bei 10ms Zykluszeit:
    Code:
    counter := counter+1;
    IF counter >= 100 THEN
      counter := 0;
      Lampe := NOT Lampe;
    END_IF

  4. #4
    Registriert seit
    13.08.2011
    Beiträge
    341
    Danke
    21
    Erhielt 47 Danke für 42 Beiträge

    Standard

    Gibts bei TwinCat keine Taktmerker, sowie bei Step7?
    Gruss der Fuss!!!

    +|----,,----:
    ------R----| Widerstand ist zwecklos!!!
    -|----''----:

  5. #5
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    749
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Zitat Zitat von fuss Beitrag anzeigen
    Gibts bei TwinCat keine Taktmerker, sowie bei Step7?
    Nein, TwinCat wendet sich an Programmierer, die das selbst können.

  6. #6
    Registriert seit
    13.08.2011
    Beiträge
    341
    Danke
    21
    Erhielt 47 Danke für 42 Beiträge

    Standard

    Na dann werde ich das Thema mal aufmerksam verfolgen damit ich vielleicht auch mal mit TwinCat programmieren darf!
    Gruss der Fuss!!!

    +|----,,----:
    ------R----| Widerstand ist zwecklos!!!
    -|----''----:

  7. #7
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Ich habe mir einen FB gebastelt der auch asynchrones Blinken (Ein und Aus-Zeit sind unterschiedl) kann.

    Code:
    FUNCTION_BLOCK FB_Blinker
    VAR_INPUT
    	tTein	:TIME := t#500ms;
    	tTaus	:TIME := t#500ms;
    	bStart	:BOOL;
    END_VAR
    VAR_OUTPUT
    	bSignal	:BOOL;
    END_VAR
    VAR
    	nSchritt	:INT;
    	WarteTimer	:TON;
    END_VAR
    
    
    IF NOT bStart THEN nSchritt := 0; END_IF
    
    CASE nSchritt OF
    
    	0:	(*Blinker Aus*)
    		bSignal := FALSE;
    		WarteTimer.IN := FALSE;
    		IF bStart THEN nSchritt := 1; END_IF
    
    	1:	(*Blinksignal ein*)
    		WarteTimer.PT := tTein;
    		WarteTimer.IN := TRUE;
    		bSignal := TRUE;
    		IF WarteTimer.Q THEN
    			WarteTimer.IN := FALSE;
    			nSchritt := 2;
    		END_IF
    
    	2:	(*Blinksignal aus*)
    		WarteTimer.PT := tTaus;
    		WarteTimer.IN := TRUE;
    		bSignal := FALSE;
    		IF WarteTimer.Q THEN
    			WarteTimer.IN := FALSE;
    			nSchritt := 1;
    		END_IF
    END_CASE
    
    WarteTimer();
    Normales Blinken finde ich langweilig. Ich mags lieber Blitzlampenstyle

  8. #8
    Registriert seit
    30.04.2013
    Beiträge
    38
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank für die Antworten ihr habt mir sehr geholfen. Danke.

  9. #9
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Dann stelle ich meinen Universalblinker auch noch zur Disposition:

    Code:
    FUNCTION_BLOCK FB_Blinker
    VAR_INPUT
    	IN: BOOL;
    	PT_ON: TIME := t#500ms;
    	PT_OFF: TIME := t#500ms;
    END_VAR
    VAR_OUTPUT
    	Q : BOOL;	(* Pulse Output *)
    END_VAR
    VAR
    	ton1: TON;
    	ton2: TON;
    END_VAR
    -----------------------------------------
    
    ton1(IN := IN AND NOT ton2.Q, PT := PT_OFF);
    ton2(IN := ton1.Q, PT :=PT_ON);
    
    Q := ton1.Q;

  10. Folgende 2 Benutzer sagen Danke zu trinitaucher für den nützlichen Beitrag:

    hucki (04.09.2013),PN/DP (04.09.2013)

  11. #10
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    749
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Na, wenn heute alle die Code-Spendierhosen anhaben, beteilige ich mich auch noch.
    Code:
    FUNCTION_BLOCK fblBlink;
    VAR_INPUT
       inpTHig:TIME;
       inpTLow:TIME;
       inpSet:BOOL;
       inpReset:BOOL;
    END_VAR
    VAR_OUTPUT
       outBlink:BOOL;
    END_VAR
    VAR
       varTimer:TON;
    END_VAR
    
    IF outBlink
    THEN
       varTimer.PT:=inpTHig;
    ELSE
       varTimer.PT:=inpTLow;
    END_IF
    varTimer(IN:=NOT (varTimer.Q OR inpSet OR inpReset));
    IF varTimer.Q
    THEN
       outBlink:=NOT outBlink;
    ELSIF inpSet XOR inpReset
    THEN
       outBlink:=inpSet;
    END_IF
    Allerdings unter Vorbehalt, da aus dem Gedächtnis abgeschrieben.

Ähnliche Themen

  1. Eine bestimmte Zeit von einer Tageszeit abziehen
    Von jürgen g im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 25.11.2012, 01:04
  2. Antworten: 9
    Letzter Beitrag: 12.03.2012, 16:43
  3. Antworten: 3
    Letzter Beitrag: 21.01.2011, 22:06
  4. Antworten: 8
    Letzter Beitrag: 06.11.2007, 02:09
  5. Antworten: 0
    Letzter Beitrag: 22.03.2005, 12:48

Lesezeichen

Berechtigungen

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