Beispiel

<< Click to Display Table of Contents >>

Navigation:  Funktionsblockbibliothek > Logik > Zähler aufwärts >

Beispiel

Previous pageReturn to chapter overviewNext page

counter_up_example

 

Der Arbiträrgenerator erzeugt einen Sinus mit Amplitude 2 und Frequenz 1 Hz. Der Ausgang des Generators ist vom Typ float. Zahlwerte kleiner gleich 0 werden zu unwahr (false). Zahlwerte größer 0 werden zu wahr (true) konvertiert (siehe Typkonvertierung). Der Zähler zählt auf steigender Flanke, d.h. beim Übergang von false nach true. Dieses Ereignis tritt genau einmal pro Sekunde zu Beginn des Sinus auf. Der Zählerwert entspricht also der Zeit in Sekunden seit Programmstart.

 

Im folgenden Beispiel wird der Eingang für den Anfangswert genutzt, um ein über Unterprogrammgrenzen fortlaufende Zählung vorzunehmen. Das Hauptprogramm führt sequentiell die Unterprogramme Step1 und Step2 aus. Nach dem Beenden von Step2 wird wieder mit Step1 begonnen.

 

Hauptprogramm

counter_up_example_2_sfc

 

Step1

counter_up_example_2_step1

Der Zähler schreibt sein Ergebnis in die globale Variable "count". Bei Neustart des Unterprogramms Step1 wird der Wert von count1 als Anfangswert genutzt. Step1 ist solange aktiv, bis der Arbiträrgenerator einen Wert größer 9 erzeugt. Dies geschieht nach 10s.

 

Step2

counter_up_example_2_step2

Step2 ist 10s aktiv und hat ansonsten keine Funktion.