Skip to main content

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.

. Spezifikation:
  • 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 oder Output 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 Flag UPDATE_IOS verwendet. Für Toplevel-Module ist es ein Fehler, wenn die bei UpdateInTask angegebene Task für das Modul nicht definiert ist.

Beispiel 19. Beispiel
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