Skip to main content

Sektion: Parameters

In dieser Sektion werden die Parameter definiert, die später in den Parametern der Modulinstanz parametriert werden können.

SEC Parameters                               //optional: yes, modifier: [UPDATE]
    SEC Param : <parameter identifier>         //optional: yes, modifier [HIDE,UPDATE]
            Variable := <variable name>;         //optional: yes, type: InstancePath
            VariableType := <data type>          //optional: yes, type: @JG???IEC-Typ
            Name := <parameter name>;            //optional: no, type: text
            Desc := <parameter description>;     //optional: no, type: text
            Group := <parameter group name>      //optional: yes, type: text
            MustBeSet := TRUE/FALSE              //optional: yes, type: BoolFlag
            Default := <default value>;          //optional: yes, type: LiteralOrConstant
            Max := <max value>;                  //Optional: yes, type: LiteralOrConstant
            Min := <min value>;                  //Optional: yes, type: LiteralOrConstant
    END_SEC
END_SEC

Details über die Syntax der Definitionstypen sind im Kapitel Syntax der Moduldeklaration beschrieben.

. Spezifikation:
  • Das Target des Abschnitts Param muss den Parameter eindeutig identifizieren.

  • Die Definition Variable ist ein Eingangs-Instanzpfad relativ zum Modul-Funktionsbaustein. In dieser Variable wird der Parameterwert gespeichert, ihr Typ gibt den Parametertyp vor. Wenn Variable deklariert ist, muss der Parameter VariableType nicht definiert sein und wird ignoriert.

  • Der Parameter VariableType beschreibt den IEC-Typ der Variablen. Wenn VariableType deklariert ist, über die Definition Variable aber keine tatsächlich existierende FB-Variable angegeben wurde, muss die Definition Default vorhanden sein. Dieser Wert muss zum Typ VariableType passen.

  • Die Parameter Name und Desc sind Strings und werden in einer Textliste definiert.

  • Modulparameter können Basistypen oder Enumerationen sein, keine Strukturinstanzen oder Arrays.

  • Parametervariablen müssen Initialisierungswerte haben, die im Deklarationsteil des Funktionsbausteins definiert sind.

  • Der optionale Parameter Default ermöglicht das Überschreiben des Initialisierungswerts. Für den Initialisierungsausdruck und für den Standardwert sind Literale und Konstanten des korrekten Typs zulässig. Dazu zählen auch Bibliotheksparameter.

  • Der optionale Parameter Group erlaubt die Parameter in Gruppen zu gliedern. Jede Gruppe wird dann als eigene Registerkarte im Moduleditor unter Parameter angezeigt.

  • Mit dem optionalen Parameter MustBeSet kann der Anwender gezwungen werden, einen Parameter im Moduleditor zu setzen. Wird der Parameter nicht gesetzt, erscheint eine Fehlermeldung.

  • Die Definitionen Min und Max legen die minimalen und maximalen Werte fest, innerhalb der sich ein Parameterwert bewegen muss. Die Überprüfung dieser Grenzwerte kann nur stattfinden, wenn die Variable des Parameters ein numerischer Typ oder ein Zeitpunkt ist. In den anderen Fällen können diese Definition nicht verwendet werden und führen bereits beim Scannen zu Fehlern.

Beispiel 20. Beispiel
SEC Parameters
        SEC Param : InParam1
                Variable := xIn1;
                VariableTyp := BOOL;
                Name := TL.Input1_Name;
                Desc := TL.Input1_Desc;
        END_SEC
END_SEC

Die Variable xIn1 muss im Deklarationsteil des Funktionbausteins definiert werden:xIn1 : BOOL := FALSE ;



Initialisierungswerte

Als Initialisierungsausdruck gilt der Ausdruck, der den Wert der Variablen bei der Initialisierung der Daten bestimmt. Bei einfachen Variablen des FB ist das immer der Ausdruck rechts von der Variablendeklaration:

iVar : INT := 17 ;  // Initialisierungswert: 17

Bei Variablen in Strukturen kann auch die Initialisierung der Struktur ausschlaggebend sein:

TYPE s : STRUCT
        i1 : INT := 7 ;
        r1 : REAL := 5 ;
END_STRUCT END_TYPE

Deklaration im Modul-FB:

structVar : s := (i1 := 2, r1 := 0.0) ;

In diesem Fall ist der Initialisierungsausdruck, der den Wert von structVar.i1 bestimmt 2 (und nicht 7).

Bei verschachtelten Strukturen müssen alle Initialisierungen auf dem Pfad vom Modul-FB bis zur Variable berücksichtigt werden. Es gewinnt die äußerste Initialisierung, die der Variable einen Wert zuweist.