PLC_ReadSymInfoByName

PLC_ReadSymInfoByName 1:

Mit dem Funktionsbaustein PLC_ReadSymInfoByName können zusätzliche Informationen über eine SPS-Symbolvariable (z.B. Datentypbezeichnung, Index-Group, Index-Offset, Kommentar...) anhand des Symbolnamens ausgelesen werden. Nach einer erfolgreichen Ausführung liegen die Daten in der Datenstruktur SymInfo vom Typ: SYMINFOSTRUCT zur Verfügung. Die maximale Länge von dem Symbolnamen, der an den Funktionsbaustein als Parameter übergeben wird ist auf 255 Zeichen begrenzt.

PLC_ReadSymInfoByName 2: Eingänge

VAR_INPUT
    NETID    : T_AmsNetId;
    PORT     : T_AmsPort;
    SYMNAME  : T_MaxString;
    START    : BOOL;
    TMOUT    : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR

Name

Typ

Beschreibung

NETID

T_AmsNetID

Hier kann die Netzwerkadresse des TwinCAT-Rechners angegeben werden, auf dem Funktion ausgeführt werden soll. Für den lokalen Rechner kann auch ein Leerstring angegeben werden.

PORT

T_AmsPort

Die Portnummer des SPS-Laufzeitsystems zu dem die Symbolvariable gehört.

SYMNAME

T_MaxString

Der Symbolname der SPS-Variablen deren Informationen gelesen werden sollen (max. 255 Zeichen, inklusive des gesamten Pfades z. B. 'MAIN.INIT_TASK.VARINT' ).

START

BOOL

Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.

TMOUT

TIME

Timeout-Zeit, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.

PLC_ReadSymInfoByName 3: Ausgänge

VAR_OUTPUT
    BUSY     : BOOL;
    ERR      : BOOL;
    ERRID    : UDINT;
    SymInfo  : SYMINFOSTRUCT;
END_VAR

Name

Typ

Beschreibung

BUSY

BOOL

Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

ERR

BOOL

Sollte ein Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der BUSY-Ausgang zurückgesetzt wurde.

ERRID

ADS-Fehlernummer

Liefert bei einem gesetzten ERR-Ausgang den Fehlercode.

SymInfo

SYMINFOSTRUCT

Struktur mit zusätzlichen Informationen zu der Symbolvariablen.

Beispiel:

PROGRAM MAIN
VAR
    PLC_ReadSymInfoByName1  : PLC_ReadSymInfoByName;
    bStart AT%QX0.5         : BOOL; (*Starts FB execution*)
    bBusy                   : BOOL;
    bError                  : BOOL;
    iErrorId                : UDINT;
    SymInfo                 : SYMINFOSTRUCT;(*Structure with sombol information*)
END_VAR
PLC_ReadSymInfoByName 4:

Online-Ansicht:

PLC_ReadSymInfoByName 5:

Die erhaltenen Daten haben folgende Bedeutung:

symEntryLen = 16#43: Der Eintrag in der Symboltabelle hat eine tatsächliche Größe von 67 Byte;

idxGroup = 16#F031: Es handelt es sich um eine Variable aus dem SPS-Prozessabbild der physikalischen Ausgänge;

idxOffset = 16#5: Die Variable liegt auf dem Byteoffset Null und dem Bitoffset 5;

byteSize = 16#1: Der Variablenwert belegt einen Byte im Speicher;

adsDataType = ADST_BIT: Die Ads-Datentyp-Id;

symDataType = BOOL: Die Datentypbezeichnung in der SPS;

symComment = 'STARTS FB EXECUTION': Kommentar, den der Benutzer in der Zeile der Variablendefinition hinzugefügt hat.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (x86, x64, Arm®)

Tc2_Utilities (System)