# LGF_SearchMinMax (FC / 3.0.1)

Übersicht

Autor: Siemens Digital Industries

## Kurzbeschreibung

Die Funktion sucht in einem Array vom Datentyp DInt den Maximal und Minimalwert sowie den jeweiligen Index im Array.

Folgende Datentypen der Array-Elemente werden unterstützt:
Int, DInt, UInt, UDInt, USInt, SInt und Real.

### Baustein Schnittstelle

| LGF_SearchMinMax (FC) |
--- | --- | ---
Variant |  |  | variableArray |  | Ret_Val |  |  | Void
|  |  |  |  | minValue |  |  | Variant
|  |  |  |  | minValueIndex |  |  | DInt
|  |  |  |  | maxValue |  |  | Variant
|  |  |  |  | maxValueIndex |  |  | DInt
|  |  |  |  | error |  |  | Bool
|  |  |  |  | status |  |  | Word
|  |  |  |  | subfunctionStatus |  |  | Word

### Input Parameter

Bezeichner | Datentyp | Beschreibung
--- | --- | ---
variableArray | Variant | Array in dessen Feldern das Maximum und Minimum gesucht wird

### Output Parameter

Bezeichner | Datentyp | Beschreibung
--- | --- | ---
Ret_Val | Void | Void - Funktion hat keinen Rückgabewert
minValue | Variant | Gefundener Minimal Wert im Array
minValueIndex | DInt | Index des gefundenen Minimalwerts im Array. Der Startindex des Arrays plus `minValueIndex` ergibt den Arrayindex des kleinsten Wertes. Der Index beginnt mit 0.
maxValue | Variant | Gefundener Maximal Wert im Array
maxValueIndex | DInt | Index des gefundenen Maximalwerts im Array. Der Startindex des Arrays plus `maxValueIndex` ergibt den Arrayindex des kleinsten Wertes. Der Index beginnt mit 0.
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_NO_ERROR Abarbeitung ohne Fehler beendet
16#8200 | ERR_NO_ARRAY Fehler: Am Eingang `variableArray` ist der Aktualparameter kein Array.
16#8201 | ERR_WRONG_TYPE Fehler: Der Datentyp der Elemente des Arrays wird nicht unterstützt. Es werden nur die Datentypen Int, UInt, DInt, UDInt, USInt, SInt und Real unterstützt.
16#8202 | ERR_NOT_EQUAL_TYPES Fehler: Die Elemente des Arrays haben nicht den gleichen Datentyp wie die Ausgänge `minValue` und `maxValue`
16#8203 | ERR_MOVE_BLK_VARIANT Fehler: Funktionsaufruf `MOVE_BLK_VARIANT` endet mit Fehler - 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.

Über den Eingang `variableArray` wird ein Array beliebiger Größe angeschlossen. Nach einer Datentypabfrage im Baustein, werden die Elemente der Reihe nach in eine Variable des entsprechenden Typs kopiert und verglichen. Ausgegeben werden der kleinste und größte Wert sowie deren zugehöriger Index im Array.

Hinweis
  Folgende Datentypen der Array-Elemente werden unterstützt:
  Int, DInt, UInt, UDInt, USInt, SInt und Real.

Hinweis
  Bei mehreren gleichen Min- bzw. Max-Werten wird der Index des ersten Min- bzw. Max-Wertes ausgegeben.

## Änderungshistorie

Version & Datum | Änderungsbeschreibung
--- | ---
| 1.0.0 | Siemens Industry Online Support
| 19.08.2015 | First released version
| 1.0.1 | Siemens Industry Online Support
| 02.01.2017 | Upgrade: TIA Portal V14 Update 1
| 1.0.2 | Siemens Industry Online Support
| 17.08.2018 | Upgrade: TIA V15 Update 2
| 1.0.3 | Siemens Industry Online Support
| 23.11.2018 | Upgrade: TIA V15.1
| 1.1.0 | Siemens Industry Presales Support
| 08.11.2019 | Code refactoring, regions and more comments added
| 3.0.0 | Siemens Industry Support
| 23.04.2020 | Set version to V3.0.0, harmonize the version of the whole library
| 3.0.1 | Simatic Systems Support
| 09.02.2021 | Rework constants and comments Insert documentation