PLC_ReadSymInfoByName
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 ein String mit der Netzwerkadresse des TwinCAT-Rechners angegeben werden, auf dem Funktion ausgeführt werden soll (Typ: T_AmsNetID). Für den lokalen Rechner kann auch ein Leerstring angegeben werden.
PORT: Die Portnummer des SPS-Laufzeitsystems zu dem die Symbolvariable gehört (Typ: T_AmsPort).
SYMNAME: Der Symbolname der SPS-Variablen deren Informationen gelesen werden sollen (Typ: T_MaxString, 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 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 (Typ: SYMINFOSTRUCT).
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
Online-Ansicht:
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) |