# LGF_SawTooth (FB / V3.0.1)

Autor: Siemens Digital Industries

## Kurzbeschreibung

Diese Funktion generiert einen sägezahnförmigen Signalverlauf. Jeder Sägezahn besteht aus einer definierten Anzahl an Schritten (Inkrementen).

Hinweis
  VERALTETE FUNKTION
  Bitte updaten und nutzen sie zukünftig den FB mit dem Namen `LGF_CountRisInDWord`!
  Diese Funktion wird nicht weiter gepflegt!

### Baustein Schnittstelle

| LGF_SawTooth (FB) |
--- | --- | ---
Int |  |  | startValue |  | value |  |  | Int
Time |  |  | timeRange |  |  |  |  |
Int |  |  | incrementRange |  |  |  |  |
Int |  |  | numberSteps |  |  |  |  |
Bool |  |  | endlessSteps |  |  |  |  |
Bool |  |  | reset |  |  |  |  |

### Input Parameter

Bezeichner | Datentyp | Default Wert | Beschreibung
--- | --- | --- | ---
startValue | Int | 0 | Startwert bei dem das Signal beginnt.
timeRange | Time | T#0s | Zeit nach der der Ausgangsparameter `value` inkrementiert wird
incrementRange | Int | 0 | Größe des Sprunges von einem Inkrement auf den nächsten.
numberSteps | Int | 0 | Anzahl der Inkremente pro Sägezahn. (Im Falle eines endlosen Sägezahnsignales ist die Angabe nicht nötig).
endlessSteps | Bool | FALSE | Angabe ob ein endloses Sägezahnsignal generiert werden soll. `TRUE` - Aktiviert, `FALSE` - Deaktiviert
reset | Bool | FALSE | Sägezahn beginnt wieder beim Startwert `startValue`.

### Output Parameter

Bezeichner | Datentyp | Beschreibung
--- | --- | ---
value | Int | Aktueller Wert des Sägezahnsignales.

## Funktionsbeschreibung

HINWEIS
  Beachten Sie, dass Änderungen an den Eingangsparametern erst mit `reset` wirksam werden.

Der Baustein berechnet die Werte für einen sägezahnförmigen Signalverlauf, die am Ausgangsparameter `value` ausgegeben werden. Das Signal beginnt mit dem Startwert `startValue` und wird nach jedem Ablauf des Zeitintervalls `timeRange` mit dem Wert `increment` addiert. Der Wert kann auch negativ sein.

Ist die Variable `endlessSteps` auf `FALSE` gesetzt, wird die Anzahl der Addiervorgänge gezählt. Überschreitet diese den Wert `numberSteps` wird der Ausgangsparameter `value` wieder auf den Startwert gesetzt. Ein neuer Sägezahn beginnt.

Ist die Variable `endlessSteps` auf `TRUE` gesetzt, wird - einmalig beginnend bei `startValue` - ununterbrochen der Wert `increment` aufaddiert. Wenn der maximale positive INT-Wertebereich (32767) des Ausgangsparameters `value` überschritten wird, wechselt `value` in den maximalen negativen INT-Wertebereich (-32768) und wird weiter aufaddiert.

HINWEIS
  Die Dauer eines Sägezahns bei `endlessSteps` auf `FALSE` berechnet sich wie folgt:
  Dauer = #timeRange * (#numberSteps + 1)

## Änderungshistorie

Version & Datum | Änderungsbeschreibung
--- | ---
| 01.00.00 | Siemens Industry Online Support
| 19.08.2015 | First released version
| 01.00.01 | Siemens Industry Online Support
| 02.11.2015 | Bug fix
| 01.00.02 | Siemens Industry Online Support
| 02.01.2017 | Upgrade: TIA Portal V14 Update 1
| 01.00.03 | Siemens Industry Online Support
| 17.08.2018 | Upgrade: TIA V15 Update 2
| 01.00.04 | Siemens Industry Online Support
| 23.11.2018 | Upgrade: TIA V15.1
| 01.00.10 | Simatic Systems Support
| 23.09.2019 | Code refactoring, regions and more comments added
| 03.00.01 | Simatic Systems Support
| 15.02.2021 | Insert documentation