Skip to main content

Untersektion: Parameter

Die Sektion Parameter mit den Untersektionen SetParameter und AddParameter dient dazu, Parameter von Geräten editieren oder hinzufügen zu können. Damit soll es ermöglicht werden, gewisse Einstellungen von Geräten (beispielsweise Zykluszeiten) durch den Gerätegenerator mit zu erzeugen.

SEC DeviceGenerator                                      //optional: yes, modifier: [UPDATE]
    SEC Parameters : <parameter name>                    //optional: yes, modifier: [UPDATE]
            SEC SetParameter : <parameter name>              //optional: yes, modifier: [UPDATE]
                    ParameterID := <parameterID name>;           //optional: no, type: literal/string
                    ElemPath := <elempath name>;                 //optional: no, type: literal/string
                    ConnectorID := <connector ID>;               //optional: yes, type: literal/string
                    Value := <value name>;                       //optional: no, type: literal/string
                    ChildIndex := <device ID>;
                    Download := <boolean value>                // opional: yes, type: boolean
            END_SEC
            SEC AddParameter : <parameter name>              //optional: yes, modifier: [UPDATE]
                    ParameterID := <parameterID name>;           //optional: no, type: literal/string
                    ParameterName := <parameter name>;           //optional: no, type: literal/string
                    ParameterType := <parameter type>;           //optional: no, type: literal/string
                    ChannelType := <channel type>;               //optional: yes, type: enum
                    ConnectorID := <connector ID>;               //optional: yes, type: literal/string
                    ChildIndex := <device ID>;
            END_SEC
    END_SEC
END_SEC
. Spezifikation:
  • Der Abschnitt Parameters besitzt ein Target, mit dem die DeviceID des Zielgeräts angegeben wird, dessen Parameter editiert werden sollen. Das Zielgerät wird zunächst in den moduleigenen Geräten und dann in deren Elternhistorie gesucht. Ziel können auch Wildcard-Geräte oder andere Geräte sein, wobei davon ausgegangen wird, dass diese die entsprechenden Parameter besitzen und zu ihnen die entsprechenden Parameter hinzugefügt werden können. Wenn das Ziel nicht gefunden werden kann, wird bei den Generierungs-Checks eine Warnung ausgegeben.

  • Die Targets der Abschnitte SetParameter und AddParameter geben die ID der jeweiligen Sektion an, haben sonst aber keine weitere Verwendung.

. Spezifikation Sektion SetParameter:
  • ParameterID gibt die ParameterID des Parameters des Gerätes an, der modifiziert werden soll.

  • ElemPath gibt das genaue Element des Parameters an, das dann tatsächlich verändert wird.

  • ConnectorID gibt optional den Connector des Gerätes an, unter dessen HostParameterSet die Parameter-ID zu suchen ist. Wenn keine ConnectorID angegeben wird, dann wird die ParameterID unter dem DeviceParameterSet gesucht.

  • Value gibt den Wert an, der dem Element des spezifizierten Parameters zugewiesen werden soll. Dieser Wert muss zum Typ des Elements passen. Dieser Wert kann auch ein Ausdruck der Form [paramID] + 2*MODULE_SLOT_INDEX sein. Dabei entspricht [paramID] einer Target-ID eines Parameters, so dass [paramID] durch den Wert eines Parameters ersetzt wird. Das Schlüsselwort MODULE_SLOT_INDEX wird durch den Slot-Index ersetzt, den eine Modulinstanz des definierten Modultyps nach dem Einfügen hätte.

  • Wenn der Parameter im entsprechenden Zielgerät nicht gefunden werden kann, werden beim Generierungs-Check entsprechende Warnungen ausgegeben.

  • ChildIndex definiert das untergeordnete Gerät, unter dem der Parameter hinzugefügt oder gesetzt wird. Gibt es dieses untergeordnetes Gerät mit dem spezifischen Index nicht, wird während des Generatorlaufs eine Warnung erzeugt.

  • Download : Optionaler Eintrag. Wenn dieser Eintrag den Wert FALSE hat, wird der Parameter nicht auf das Gerät heruntergeladen. Das ist beispielsweise für die Deaktivierung von CheckVendorId bei CAN-Geräten sinnvoll.

. Spezifikation Sektion AddParameter:
  • ParameterID enthält die neue ID des hinzuzufügenden Parameters. Diese muss eindeutig unter den anderen ParameterIDs des Ziel-Gerätes sein.

  • ConnectorID gibt optional den Connector des Devices an, unter dessen HostParameterSet die Parameter-ID hinzugefügt werden soll. Wenn keine Connector-ID angegeben wird, wird die Parameter-ID unter dem DeviceParameterSet hinzugefügt.

  • ParameterName gibt den Namen an unter dem der Parameter zum Zielgerät hinzugefügt werden soll.

  • ParameterType definiert den Typen des Parameters, der zum Zielgerät hinzugefügt werden soll. Dieser Typ wird als IEC-Typ-Bezeichnung mit Typ-Präfix angegeben, so dass beispielsweise std:bool einen booleschen Parameter erzeugen würde.

  • Wenn der Parameter nicht hinzugefügt werden kann, wird beim Generierungs-Check eine entsprechende Warnung ausgegeben.

  • ChannelType definiert den Typ des Kanals. Mögliche Werte sind NONE, INPUT, OUTPUT und OUTPUTREADONLY.

  • ChildIndex definiert das untergeordnete Gerät, unter dem der Parameter hinzugefügt oder gesetzt wird. Gibt es dieses untergeordnetes Gerät mit dem spezifischen Index nicht, wird während des Generatorlaufs eine Warnung erzeugt.

Die beiden Sektionen AddParameter und SetParameter können kombiniert werden um beispielsweise einen Parameter zu einem Gerät hinzuzufügen und ihm gleichzeitig einen Wert zuzuweisen.

Beispiel 35. Beispiel
        SEC Parameters : Buskoppler1
                SEC AddParameter : ExpertSettings
                        ParameterID := '805306368';
                        ConnectorID := '1';
                        ParameterName := 'ExpertSettings';
                        ParameterType := 'std:int';
                        ChannelType := OUTPUT;
                END_SEC
                SEC SetParameter : ExpertSettings
                        ParameterID := '805306368';
                        ElemPath := '';
                        ConnectorID := '1';
                        Value := dwParameterOffset + 2 * MODULE_SLOT_INDEX;
                END_SEC
        END_SEC