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_SECDetails über die Syntax der Definitionstypen sind im Kapitel Syntax der Moduldeklaration beschrieben.
Das Target des Abschnitts
Parammuss den Parameter eindeutig identifizieren.Die Definition
Variableist ein Eingangs-Instanzpfad relativ zum Modul-Funktionsbaustein. In dieser Variable wird der Parameterwert gespeichert, ihr Typ gibt den Parametertyp vor. WennVariabledeklariert ist, muss der ParameterVariableTypenicht definiert sein und wird ignoriert.Der Parameter
VariableTypebeschreibt den IEC-Typ der Variablen. WennVariableTypedeklariert ist, über die DefinitionVariableaber keine tatsächlich existierende FB-Variable angegeben wurde, muss die DefinitionDefaultvorhanden sein. Dieser Wert muss zum TypVariableTypepassen.Die Parameter
NameundDescsind 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
Defaultermö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
Grouperlaubt die Parameter in Gruppen zu gliedern. Jede Gruppe wird dann als eigene Registerkarte im Moduleditor unter Parameter angezeigt.Mit dem optionalen Parameter
MustBeSetkann 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.
SEC Parameters
SEC Param : InParam1
Variable := xIn1;
VariableTyp := BOOL;
Name := TL.Input1_Name;
Desc := TL.Input1_Desc;
END_SEC
END_SECDie 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_TYPEDeklaration 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.