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.

VAR_INPUT

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

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

PORT: Die Portnummer des SPS-Laufzeitsystems zu dem die Symbolvariable gehört. Das erste SPS-Laufzeitsystem besitzt die Portnummer 801.

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

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

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

VAR_OUTPUT

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

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

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

ERRID: Liefert bei einem gesetzten ERR-Ausgang die ADS-Fehlernummer.

SymInfo: Struktur mit zusätzlichen Informationen zu der Symbolvariablen.

 

Beispiel für einen Aufruf in FUP

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 2:

Online-Ansicht:

PLC_ReadSymInfoByName 3:

 

Die erhaltenen Daten haben folgenden 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

TwinCAT v2.7.0

PC or CX (x86)

TcPlcUtilities.Lib; Standard.Lib; PLCSystem.Lib; TcPLCAds.Lib; PLCHelper.Lib;

TwinCAT v2.8.0

PC or CX (x86)

TcUtilities.Lib

TwinCAT v2.10.0 Build >= 1301

CX (ARM)