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

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/add.svg nicht in IEC-Norm vorgesehen

Grafische Schnittstelle

images/download/thumbnails/414781820/GET_REF_FROM_VARNAME-version-1-modificationdate-1535026964277-api-v2.png

Verfügbar ab

  • Version 1.42.0 (für logi.CAD 3) und Version 2.3.1701 von logi.RTS – Anfangsvariante: elementare Datentypen für angeforderderte Variable und Ergebniswert

  • Version 1.51.0 (für logi.CAD 3) und Version 3.0.7 von logi.RTS – Erweiterung: strukturierter Datentyp, ARRAY-Datentyp für angeforderte Variable und Ergebniswert

  • Version 1.58.0 (für logi.CAD 3) und Version 3.1.1 von logi.RTS – Erweiterung: abgeleiteter Datentyp angeforderte Variable und Ergebniswert
    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Dieser Baustein wird nur für die integrierte SPS unterstützt.

  • Version 1.109.0 (für logi.CAD 3) und Version 3.19.0 von logi.RTS
    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Dieser Baustein wird nur für die integrierte SPS und die Plattformen WindowsX86 und LinuxX86 unterstützt.

  • Version 3.2.3 (für Bibliothek Standard) und Version 4.12.0 von logi.RTS – Erweiterung: Ergebniscode 16#83 für VAR_IN_OUT (statt 16#81)
    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Dieser Baustein wird nur für die integrierte SPS und die Plattformen WindowsX86 und LinuxX86 unterstützt.

  • Version 3.2.6 (für Bibliothek Standard) und Version 5.11.0 von logi.RTS – Erweiterung: unterstützte →Eingangsvariablen (VAR_INPUT) und →Ausgangsvariablen (VAR_OUTPUT)
    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Dieser Baustein wird nur für die integrierte SPS und die Plattformen WindowsX86 und LinuxX86 unterstützt.

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 oder TIME_OF_DAY

  • Für die angeforderte Variable muss ein Instanzpfad vorhanden sein. Das bedeutet, dass Variablen in →Funktionen nicht angefordert werden können.

  • Die folgenden Variablen können nicht angefordert werden:

  • 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)
Als Trennzeichen ist . zu verwenden.

Ausgänge:

LEN

UINT

Länge (= Speichergröße) der Variable (in Bytes) oder 0

STATUS

USINT

Status der Operation (Ergebniscode):

  • 16#00: erfolgreiche Operation

  • 16#80: Der Dienst ist nicht verfügbar.

  • 16#81: Die Variable wurde nicht gefunden.

  • 16#83: ungültiger Variablen-Abschnitt VAR_IN_OUT

  • 16#84: ungültiger Zugriff auf CONSTANT

  • 16#85: Der Datentyp stimmt nicht überein.

  • 16#86: Die Größe stimmt nicht überein.

Ergebniswert:

→Referenz auf einen elementaren Datentyp, abgeleiteten Datentyp, strukturierten Datentyp oder ARRAY-Datentyp
(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 oder TIME_OF_DAY

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

Verwendungsbeispiel des GET_REF_FROM_VARNAME-Bausteins
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.