GET_REF_FROM_VARNAME-Baustein
Kurz-Information
Name | GET_REF_FROM_VARNAME |
---|---|
→POE-Typ | →Funktion |
Kategorie | IEC-Baustein, MemoryEnh, Baustein mit interner Fehlerdiagnose |
Konform zur →IEC-Norm |
|
Grafische Schnittstelle |
|
Verfügbar ab |
|
Funktionalität
Der Baustein liefert die →Referenz auf eine →Variable, deren Instanzpfad am Eingang NAME
in Großbuchstaben eingegeben wird.
Es wird empfohlen, den GET_REF_FROM_VARNAME
-Baustein für die anzufordernde Variable nur einmal aufzurufen. Einerseits kann das Zeitverhalten bei der Anforderung unvorhersehbar sein, andererseits kann das Ermitteln der Referenz einen längeren Zeitraum in Anspruch nehmen.
Einschränkungen für die Verwendung:
- Die angeforderte Variable muss mit einem elementaren Datentyp, →abgeleiteten Datentyp, →strukturierten Datentyp oder →ARRAY-Datentyp deklariert sein. Der Basisdatentyp des ARRAY-Datentyp muss ein elementarer Datentyp sein.
Bei den elementaren Datentypen handelt es sich um diese Datentypen:REAL
,LREAL
,USINT
,UINT
,UDINT
,ULINT
,SINT
,INT
,DINT
,LINT
,TIME
,BOOL
,BYTE
,WORD
,DWORD
,LWORD
,STRING
,CHAR
,
,DATE_AND_TIME
DATE
oderTIME_OF_DAY
- Für die angeforderte Variable muss ein Instanzpfad vorhanden sein. Das bedeutet, dass die folgenden Variablen nicht angefordert werden können:
- Variablen in →Funktionen
- →Ein-/Ausgangsvariablen (
VAR_IN_OUT
)
- Die angeforderte Variable muss aus jeder Stelle der Anwendung beschreibbar sein (d.h., innerhalb und außerhalb der POE, in der die Variable deklariert ist). Das bedeutet, dass die folgenden Variablen nicht angefordert werden können:
- Variablen mit dem Schlüsselwort
CONSTANT
- →Eingangsvariablen (
VAR_INPUT
) - →Ausgangsvariablen (
VAR_OUTPUT
)
- Variablen mit dem Schlüsselwort
- Der Datentyp der Referenz muss mit dem Datentyp der angeforderten Variable übereinstimmen. Bei
STRING
-Variablen muss auch die Länge übereinstimmen. - Es ist nur zulässig, den Aufruf des Bausteins auf der rechten Seite des Zuweisungsoperators "
:=
" für →Zuweisungen auf eine Referenz-Variable zu verwenden.
Eingänge, Ausgänge, Ergebniswert
Bezeichner | →Datentyp | Beschreibung | |
---|---|---|---|
Eingänge: | NAME | STRING | Instanzpfad der Variable (in Großbuchstaben) |
Ausgänge: | LEN | UINT | Länge (= Speichergröße) der Variable (in Bytes) oder |
STATUS | USINT | Status der Operation (Ergebniscode):
| |
Ergebniswert: | – | →Referenz auf einen elementaren Datentyp, abgeleiteten Datentyp, strukturierten Datentyp oder ARRAY-Datentyp Bei den elementaren Datentypen handelt es sich um diese Datentypen: | typisierte Referenz auf die angeforderte Variable oder NULL |
Der Eingang EN
und der Ausgang ENO
sind für den →Aufruf des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN
und zum Ausgang ENO
.
Interne Fehlerdiagnose für Baustein
Der Baustein prüft, ob eine der oben genannten Einschränkungen verletzt wird. In einem solchen Fehlerfall wird der Ausgang ENO
des Bausteins auf den Wert FALSE
(oder eine Entsprechung) zurückgesetzt. Zusätzlich liefert der Ausgang STATUS
den entsprechenden Ergebniscode (siehe die vorhergehende Tabelle unter STATUS
), der Ausgang LEN
den Wert 0
und der Baustein selbst liefert NULL
(als Ergebniswert).
Beispiel für Verwendung im ST-Editor
PROGRAM DocumentationExamples VAR iExampleGetRefFromVarname : ExampleGetRefFromVarname; END_VAR iExampleGetRefFromVarname(); END_PROGRAM FUNCTION_BLOCK ExampleGetRefFromVarname VAR requestedVar : INT; reference : REF_TO INT; CheckSize : UINT; CheckState : USINT; CheckENO : BOOL; END_VAR IF reference = NULL THEN reference := GET_REF_FROM_VARNAME(NAME := 'DOCUMENTATIONEXAMPLES.IEXAMPLEGETREFFROMVARNAME.REQUESTEDVAR', LEN => CheckSize, STATUS => CheckState, ENO => CheckENO); END_IF; IF reference <> NULL THEN reference^ := 42; END_IF; ENO := requestedVar = 42; END_FUNCTION_BLOCK
Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.