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.
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. WennVariable
deklariert ist, muss der ParameterVariableType
nicht definiert sein und wird ignoriert.Der Parameter
VariableType
beschreibt den IEC-Typ der Variablen. WennVariableType
deklariert ist, über die DefinitionVariable
aber keine tatsächlich existierende FB-Variable angegeben wurde, muss die DefinitionDefault
vorhanden sein. Dieser Wert muss zum TypVariableType
passen.Die Parameter
Name
undDesc
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.
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.