# LGF_CosinusCI (FB / 3.0.2)

Übersicht

Autor: Siemens Industry Support

## Kurzbeschreibung

Diese Funktion generiert einen Cosinus förmigen Signalverlauf. Er verwendet dazu den Zeittakt des aufrufenden Cyclic Interrupt OB.

### Baustein Schnittstelle

| LGF_CosinusCI (FB) |
--- | --- | ---
Real |  |  | amplitude |  | value |  |  | Real
Real |  |  | offset |  | error |  |  | Bool
UDInt |  |  | periode |  | status |  |  | Word
Real |  |  | phaseShift |  | subFunctionStatus |  |  | Word
OB_CYCLIC |  |  | callOB |  |  |  |  |
Bool |  |  | reset |  |  |  |  |

### Input Parameter

Bezeichner | Datentyp | Default Wert | Beschreibung
--- | --- | --- | ---
amplitude | Real | 1.0 | Amplitude des Signalverlaufs.
offset | Real | 0.0 | Verschiebung des Signalverlaufs in Y-Richtung.
periode | UDInt | 1000 | Periodendauer des Signalverlaufs in [ms]
phaseShift | Real | 0.0 | Phasenverschiebung in [ms]
callOB | OB_CYCLIC | --- | Aufrufender Weckalarm-OB (Cyclic Interrupt OB)
reset | Bool | FALSE | Rücksetzen des Signalverlaufs.

### Output Parameter

Bezeichner | Datentyp | Beschreibung
--- | --- | ---
value | Real | Aktueller Wert des Cosinus Signales.
error | Bool | FALSE: Kein Fehler TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten
status | Word | 16#0000-16#7FFF: Status des FB 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle)
subFunctionStatus | Word | Status oder Rückgabewert von aufgerufenen FB's / FC's und Systemfunktionen

### Status & Error Meldungen

Code / Wert | Bezeichner / Beschreibung
--- | ---
16#0000 | STATUS_FINISHED_NO_ERROR Status: Abarbeitung ohne Fehler beendet
16#8600 | ERR_OB_UNAVAILABLE Fehler: OB am Eingang `callOB` ist nicht projektiert / vorhanden. Verschalten Sie am Eingang `callOB` den Konstanten Namen eines projektierten Weckalarm-OB.
16#8601 | ERR_QRY_CINT Fehler in Anweisung `QRY_CINT` - weitere Infos in `subFunctionStatus`

## Funktionsbeschreibung

Hinweis
  In `subFunctionStatus` wird der Status von aufgerufenen Anweisungen ausgegeben. Der Ausgangswert in `status` gibt in diesem Fall an, welche Anweisung den Fehler verursacht hat. Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Der Baustein berechnet die Werte für einen Cosinus förmigen Signalverlauf, die am Ausgangsparameter `value` ausgegeben werden.

Die Amplitude `amplitude`, die Verschiebung in Y-Richtung `offset`, die Periodendauer `periode` (in `ms`) und die Phasenverschiebung `phaseShift` (in `ms`) können an den Eingangsparametern vorgegeben werden.

Mit dem Eingangsparameter `reset` wird der Signalverlauf zurückgesetzt. Am Ausgangsparameter `value` wird der Wert `0` ausgegeben, solange `reset` auf `TRUE` gesetzt ist.

Der Baustein muss in einem Weckalarm-OB (Cyclic Interrupt OB) aufgerufen werden. Der Zeittakt des aufrufenden Weckalarm-OB wird im FB mit der Anweisung `QRY_CINT` ermittelt. Dazu muss am Eingangsparameter `callOB` der Konstanten Name des aufrufenden Weckalarm-OB verschaltet werden.

Die Anzahl der berechneten Werte des Signalverlaufs pro Periodendauer errechnet sich folgendermaßen:

Anzahl Werte = \frac{Periodendauer}{Zeittakt Weckalarm-OB}

Hinweis
  Um einen kontinuierlichen Signalverlauf der Kurve zu erhalten, sollte der Zeittakt des aufrufen Weckalarm-OB in Abhängigkeit von der Periodendauer nicht zu groß gewählt werden.

Die folgende Abbildung zeigt den Signalverlauf der berechneten Werte.

## Änderungshistorie

Version & Datum | Änderungsbeschreibung
--- | ---
| 1.0.0 | Siemens Industry Online Support
| 03.07.2018 | First released version
| 1.0.1 | Siemens Industry Online Support
| 17.08.2018 | Upgrade: TIA V15 Update 2
| 1.0.2 | Siemens Industry Online Support
| 23.11.2018 | Upgrade: TIA V15.1
| 1.0.3 | Simatic Systems Support
| 26.09.2019 | Code refactoring, regions and more comments added phase shift availability added
| 3.0.0 | Simatic Systems Support
| 23.04.2020 | Set version to V3.0.0, harmonize the version of the whole library
| 3.0.1 | Simatic Systems Support
| 15.02.2021 | Insert documentation
| 3.0.2 | Simatic Systems Support
| 15.12.2023 | Fix callculation of 'phaseShift'