Timer-Funktionalität

Die #TIMER-Funktionalität ist für Echtzeit-Zyklen verfügbar. Die gemessenen Zeiten werden in den Echtzeit-Variablen V.RTG.TIMER[] abgelegt. Die Echtzeit-Timer sind verschieden von den Dekoder-Timern.

Programmierbeispiel

prg_example

#TIMER-Funktionalität

; Variablen ausgeben

$FOR P1 = 0, 4, 1

#MSG SAVE EXCLUSIVE ["V.RTG.TIMER[%d] = %f", P1, V.RTG.TIMER[P1]]

$ENDFOR

; Echtzeit-Zyklus definieren

#RT CYCLE [ID = 17 SCOPE = PROG]

  $IF ONCE 1 < 2

    #TIMER START SYN [ID = 0] ; Timer 0 starten

    #TIMER START SYN [ID = 2] ; Timer 2 starten

  $ENDIF

#RT CYCLE END

#FLUSH WAIT

; etwas warten

#TIME 1.5

; Echtzeit-Zyklus definieren

#RT CYCLE [ID = 18 SCOPE = PROG]

  $IF ONCE 1 < 2

    #TIMER STOP SYN [ID = 0] ; Timer 0 stoppen

    #TIMER READ SYN [ID = 0] ; Timer 0 auslesen

    #TIMER READ SYN [ID = 2] ; Timer 2 auslesen, ohne stoppen

  $ENDIF

#RT CYCLE END

#FLUSH WAIT

; Variablen ausgeben

$FOR P1 = 0, 4, 1

  #MSG SAVE EXCLUSIVE ["V.RTG.TIMER[%d] = %f", P1, V.RTG.TIMER[P1]]

$ENDFOR

; Hauptprogramm beenden

M30

Achtung

attention

Es sind nur synchrone #TIMER-Befehle erlaubt. Alle #TIMER-Befehle in Echtzeit-Zyklen müssen mit dem Schlüsselwort SYN als synchron markiert werden.