TakeHighestValue (Höchster Wert)

Dieser Baustein gehört zum Paket „Free – Take (Nimm).“

Paket-Preis: 0,00€

Kurzbeschreibung

Diese Methode findet den höchsten Wert aus einer Liste von Eingabewerten. Die Berechnung wird nur durchgeführt, wenn die Methode aktiviert ist, und alle Eingabewerte gültig sind. Der höchste Wert wird anschließend als Ergebnis ausgegeben, und der Prozess sowie eventuelle Fehler werden protokolliert.

Besonderheit

  • Dynamische Anpassung der Eingänge:
    Die Anzahl der Eingangsgrößen kann flexibel zwischen 2 und 50 festgelegt werden, um mit unterschiedlichen Anzahlen von Werten zu arbeiten.
  • Datentypwahl:
    Der Typ der Eingabewerte (z.B. int, float, double) kann über den Eingang Type spezifiziert werden, sodass die Methode vielseitig auf verschiedene Zahlenformate angepasst werden kann.
  • Aktivierungssteuerung:
    Der Prozess wird nur ausgeführt, wenn der Eingang Activate aktiviert ist, was eine präzise Steuerung der Berechnung ermöglicht.
  • Fehlerprotokollierung:
    Fehlende Werte bei den Eingängen werden im Log erfasst, und Fehler in der Berechnung werden ebenfalls im Log festgehalten.
  • Grenzen und Validierungen:
    Es sind mindestens 2 und maximal 50 Eingabewerte erforderlich. Zudem müssen alle Eingaben gültige Werte aufweisen, damit die Berechnung durchgeführt wird.

Die Methode TakeHighestValue sucht den höchsten Wert aus einer Gruppe von Eingängen. Sie wird über den Eingang Activate aktiviert, der festlegt, ob der Prozess ausgeführt werden soll. Eine flexible Anzahl von Eingängen (NumberOfInputs) ermöglicht die Anpassung an unterschiedlich große Gruppen von Werten, die zwischen 2 und 50 variieren können. Jeder Eingang muss einen gültigen Wert aufweisen, da die Berechnung bei fehlenden Werten abgebrochen wird und eine Fehlermeldung im Log erzeugt.

Der Datentyp der Eingabewerte wird über den Parameter Type festgelegt. Unterstützte Typen sind short, ushort, int, uint, long, ulong, float und double. Die Methode überprüft diesen Typen und initialisiert nur, wenn ein gültiger Typ angegeben wurde.

Wenn alle Werte bereit sind, iteriert die Methode über die Eingänge und sucht den höchsten Wert. Dieser höchste Wert wird dann als Ergebnis im Ausgang Output ausgegeben. Die Protokollierung umfasst die Initialisierung, das Setzen des Wertes im Ergebnis und eventuelle Fehler während der Berechnung. Falls die Methode deaktiviert wird, wird dies ebenfalls im Log festgehalten.

  • Activate (bool):
    Steuerung, ob die Berechnung ausgeführt werden soll. Muss auf true gesetzt sein, um die Berechnung zu starten.
  • NumberOfInputs (int):
    Anzahl der Eingabewerte, zwischen 2 und 50.
  • Inputs (list<any>): 
    Die Werte, aus denen der höchste Wert gesucht wird. Jeder Wert muss dem festgelegten Typ entsprechen und gültig sein.
  • Type (string):
    Bestimmt den Datentyp der Eingabewerte. Unterstützt short, ushort, int, uint, long, ulong, float und double.
  • Output (beliebiger Typ):
    Der höchste Wert aus der Liste der Eingabewerte.
  • LogExecute (string):
    Ein Protokoll, das Fehler während der Ausführung speichert und anzeigt.

Beschreibung:

Diese Konfiguration sucht den höchsten Wert aus einer Gruppe von 5 Ganzzahlen.

  • Eingabe:
    • Activate: true
    • NumberOfInputs: 5
    • Inputs: [10, 50, 30, 70, 20]
    • Type: int
  • Ausgabe:
    • Output: 70
    • LogExecute: Protokolliert den Ablauf und zeigt Set value: 70.

Beschreibung:

Ein Testlauf, bei dem ein Wert in der Eingabe fehlt.

  • Eingabe:
    • Activate: true
    • NumberOfInputs: 4
    • Inputs: [10, null, 30, 40]
    • Type: int
  • Ausgabe:
    • Output: Kein Ergebnis, da ein Wert fehlt.
    • LogExecute: Protokolliert die Fehlermeldung: 1 has no value.
Was passiert, wenn nicht alle Eingabewerte gesetzt sind?

Wenn ein Eingabewert fehlt, wird die Berechnung abgebrochen und eine Fehlermeldung im Log angezeigt.

Kann ich andere Typen als Zahlen verwenden?

Nein, nur numerische Typen wie int, double etc. sind erlaubt. Andere Typen führen zur Ausgabe eines Fehlers.

Warum ist der Ausgang Output leer, obwohl Activate auf true steht?

Dies kann passieren, wenn nicht alle Eingabewerte gesetzt sind oder der Typ in Type nicht gültig ist.

  • Version 3.0.10
    • First Release

Baustein-Support

Wenn Sie X1-Logik-Baustein-Support benötigen, senden Sie uns bitte zusätzlich den Log (LogExecute und LogSchedule, welcher als Ausgang des Bausteins ausgegeben wird) und eine detaillierte Beschreibung des Problems zu!