Sektion: IO
In dieser Sektion werden die Eingänge und Ausgänge definiert. Alle definierten Eingänge und Ausgänge sind im E/As verbinden verfügbar.
SEC IO //optional: yes, modifier: [UPDATE] SEC Input : <input identifier> //optional: yes, modifier [HIDE,UPDATE] Variable := <variable name>; //optional: no, type: InstancePath Name := <name>; //optional: no, type: text Desc := <description>; //optional: no, type: text UpdateInTask := <task name>; //optional: yes, type: TaskRef END_SEC SEC Output : <output identifier> //optional: yes, modifier [HIDE,UPDATE] Variable := <variable name>; //optional: no, type: InstancePath Name := <name>; //optional: no, type: text Desc := <description>; //optional: no, type: text UpdateInTask := <task name>; //optional: yes, type: TaskRef END_SEC END_SEC
Für Details zur Syntax der Definitionstypen siehe: Syntax der Moduldeklaration beschrieben.
Variable
ist der Instanzpfad einer Eingangsvariablen (Input) oder Ausgangsvariable (Output).Alle Komponenten des Pfads dürfen für Eingänge nur Eingangsvariablen sein (oder lokale Variablen bei Strukturen). Genauso dürfen die Komponenten des Pfads für Ausgänge nur Ausgangsvariablen sein (oder lokale Variablen bei Strukturen). Die Variable muss entweder einen primitiven Typ oder einen Enum-Typ haben.
Dieselbe Variable kann gleichzeitig Parameter und Ein-/Ausgang sein. Dieselbe Variable darf nicht von zwei verschiedenen E/As verwendet werden.
Das Target eines
Input
oderOutput
Abschnitts muss den Eingang oder Ausgang eindeutig identifizieren. (Groß-Kleinschreibung wird nicht unterschieden.)Der Parameter
UpdateInTask
beschreibt die Task zum Aktualisieren der E/As. Wenn diese Definition fehlt, dann wird die Task mit dem FlagUPDATE_IOS
verwendet. Für Toplevel-Module ist es ein Fehler, wenn die beiUpdateInTask
angegebene Task für das Modul nicht definiert ist.
SEC Io SEC Input : uiTemperature Variable := uiTemperature ; Name := TL_WeatherStation.NAME_iTemperature ; Desc := TL_WeatherStation.DESC_iTemperature ; UpdateInTask := Standard_Task : Medium; END_SEC SEC Output : uiLigh Variable := uiLightnessSouth ; Name := TL_WeatherStation.NAME_uiLightnessSouth ; Desc := TL_WeatherStation.DESC_uiLightnessSouth ; UpdateInTask := Standard_Task : Medium; END_SEC END_S