Attribut 'TcLinkTo' / 'TcLinkToOSO'

Die beiden Pragmas können angewendet werden, um Variablen direkt Ein- und Ausgängen anderer Prozessabbilder zuzuweisen.

Syntax:

{attribute 'TcLinkTo' := '<I/O point name>'}

Der in einfache Hochkommata eingeschlossene Platzhalter <I/O point name> muss durch den Namen des Ein- oder Ausgangs ersetzt werden.

{attribute 'TcLinkToOSO' := '<x,y,z>'I/O point name'}

x: Bit-Offset der SPS-Variablen

y: Anzahl der anzuschließenden Bits

z: Offset der Zielvariablen, auf denen diese Bits abgebildet werden sollen

Der in einfache Hochkommata eingeschlossene Platzhalter <I/O point name> muss durch den Namen des Ein- oder Ausgangs ersetzt werden.

Verlinkung allokierter Variablen eines Funktionsbausteins:

Allokierte Variablen eines Funktionsbausteins können ebenfalls mit Hilfe des Pragmas verknüpft werden. Dies geschieht für Funktionsbausteine nicht an der Deklaration der allokierten Variablen, sondern an der Deklarationsstelle der Funktionsbausteininstanz. Weitere Informationen hierzu befinden sich unten im Abschnitt „Beispiele zur Verwendung des Attributs“.

Darstellung der Verknüpfungsart:

Wird eine Variable manuell mit einem Ein- oder Ausgang verknüpft, dann erhält die zugehörige Variable im Prozessabbild ein weißes Symbol, ebenso wie der verknüpfte Kanal. Wird die Variable hingegen über das Attribut 'TcLinkTo' / 'TcLinkToOSO' verknüpft, dann ist das zugehörige Symbol blau. Bei einer nicht verknüpften Variable ist kein Symbol vorhanden.

PROGRAM MAIN
VAR
    bVarIn1    AT%I*  : BOOL;  // linked manually
 
    {attribute 'TcLinkTo' := 'TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 2 (EL1004)^Channel 2^Input'}
    bVarIn2    AT%I*  : BOOL;  // linked via attribute
 
    bVarIn3    AT%I*  : BOOL;  // not linked
 
    bVarOut1   AT%Q*  : BOOL;  // linked manually
 
    {attribute 'TcLinkTo' := 'TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 3 (EL2004)^Channel 2^Output'}
    bVarOut2   AT%Q*  : BOOL;  // linked via attribute
 
    bVarOut3   AT%Q*  : BOOL;  // not linked
END_VAR
Attribut 'TcLinkTo' / 'TcLinkToOSO' 1:

Beispiele zur Verwendung des Attributs:

PROGRAM MAIN
VAR
    nVar1          : INT; 

     {attribute 'TcLinkTo' := 'TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 5 (EL4132)^Channel1^Output'}
    // Link when using the full path of an input or output 
    nVar2   AT%Q*  : INT;
 
    {attribute 'TcLinkTo' := '[1] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 4 (EL2008)^Channel 4^Output;
                              [2] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 4 (EL2008)^Channel 5^Output'}
    aVar3   AT%Q*  : ARRAY [1..2] OF BOOL;
 
    {attribute 'TcLinkTo' := '.bIn  := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 3 (EL1008)^Channel 2^Input;
                              .bOut := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 2 (EL2008)^Channel 2^Output'}
    // Link when using function blocks (FB_Module with allocated input bIn and allocated output bOut)
    fbVar4         : FB_Module;
 
    {attribute 'TcLinkTo' := '[1].bIn  := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 2 (EL1008)^Channel 4^Input;
                              [1].bOut := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 3 (EL2008)^Channel 4^Output;
                              [2].bIn  := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 2 (EL1008)^Channel 5^Input;
                              [2].bOut := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 3 (EL2008)^Channel 5^Output'}
    aModule         : ARRAY[1..2] OF FB_Module;
 
    {attribute 'TcLinkTo' := 'TIIB(2)^Channel 5^Output'} 
    // Linking with the keyboard shortcuts
    bVar5   AT%Q*  : BOOL;
 
    {attribute 'TcLinkTo' := 'TIIB[TerminalXY]^Channel 5^Output'}
    // TerminalXY is the name of the terminal shown in the IO tree
    nVar6   AT%Q*  : INT;
 
    {attribute 'TcLinkToOSO' := '<1,2,3>TIIB(5)^Channel 2^Output'}
    // Link when using Offset/Size/Offset
    nVar7   AT%Q*  : BYTE;
 
    {attribute 'TcLinkToOSO' := '[1] := <1,2,3>TIIB(5)^Channel 2^Output;
                                 [2] := <4,5,6>TIIB(5)^Channel 3^Output'}
    aVar8   AT%Q*  : ARRAY [1..2] OF WORD;
 
    {attribute 'TcLinkTo' := '[0][0] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 2 (EL2008)^InfoData^State;
                              [0][1] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 3 (EL2008)^InfoData^State;
                              [0][2] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 4 (EL2008)^InfoData^State;
                              [1][0] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 5 (EL2008)^InfoData^State;
                              [1][1] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 6 (EL2008)^InfoData^State;
                              [1][2] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 7 (EL2008)^InfoData^State'}
    aVar9   AT%Q*  : ARRAY[0..1, 0..2] OF UINT;
 
 
    (*************************************************************************************) 
      Available from TC3.1 Build 4026 
    (*************************************************************************************) 
 
    // ARRAY info on the left is "%d..%d" and on the right side "%d..#"
    // Link info will be generate from 1 TO 4 (4 times) and from 3 TO 6 on channel side
    {attribute 'TcLinkTo' := '[1..4] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 2 (EL2008)^Channel 3..#^Output'}
    bVar10 AT %Q* : ARRAY[1..4] OF BOOL;
 
    {attribute 'TcLinkTo' := '[1..4] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 4 (EL4014)^AO Outputs Channel 1..#^Analog output'}
    bVar11 AT %Q* : ARRAY[1..4] OF INT;
 
    // Also additional syntax for EtherCAT PLC structures to PLC mappings - see "PLC" tab on EtherCAT terminals:
    // ARRAY info on the left is "%d..%d" and on the right side "%d..#" - channel index is added via "^^%d" and the value is 0-based
    {attribute 'TcLinkTo' := '[1..4] := TIID^Device 1 (EtherCAT)^Term 1 (EK1100)^Term 5 (EL2819)^^ 0..#'}
    bVar12 : ARRAY [1..16] OF MDP5001_280_700116F7;
 
END_VAR

Tabelle aller verfügbaren Tastenkombinationen:

Tastenkombination

To

TIIC

Knoten I/O-Konfiguration

TIID

Knoten I/O Konfiguration^I/O Geräte oder
Knoten I/O Konfiguration TAB "I/O Geräte"

TIRC

Knoten Echtzeit-Konfiguration

TIRT

Knoten Echtzeit-Konfiguration^Zusätzliche Tasks oder
Knoten "Echtzeit-Konfiguration TAB "Zusätzliche Tasks"

TIRS

Knoten Echtzeit-Konfiguration^Echtzeit-Einstellungen oder
Knoten "Echtzeit-Konfiguration TAB "Echtzeit-Einstellungen"

TIPC

Knoten SPS-Konfiguration

TINC

Knoten NC-Konfiguration

TICC

Knoten CNC-Konfiguration

TIAC

Knoten CAM-Konfiguration

TING

Knoten Achsen

TINT

Knoten Tabellen

TINS

Knoten SAF Task

TIIT(%d)

Klemme %d (nur für KL Bus)

TIIB(%d)

Box %d

TIIF(%d)

Gerät %d

TIIT[%s]

Klemme mit Namen %s (nur für KL Bus)

TIIB[%s]

Box mit Namen %s

TIIF[%s]

Gerät mit Namen %s