Variablen-Mappings verwalten
Variablen-Mappings verbinden PLC-Ein-/Ausgangsvariablen mit I/O-Gegenstücken, NC-Achsen oder TcCOM-Objekten. Das Automation Interface bietet vier Operationen:
- Einzeln verknüpfen per
LinkVariablesaufITcSysManager - Einzeln trennen per
UnlinkVariablesaufITcSysManager - Alle Mappings exportieren/importieren per
ProduceMappingInfo/ConsumeMappingInfoaufITcSysManager2 - Alle Mappings löschen per
ClearMappingInfoaufITcSysManager3
Voraussetzungen
- TwinCAT XAE ist installiert und gestartet.
- Eine DTE-Verbindung zur Zielinstanz ist aktiv.
ITcSysManagerist in einem STA-Thread initialisiert.- Eine TwinCAT-Solution mit PLC-Projekt und I/O-Konfiguration ist geöffnet.
Einzelne Variable verknüpfen (LinkVariables)
Beide Pfade werden als vollständige Baumpfade übergeben. Die Reihenfolge der Parameter ist source, destination.
C#
string source = "TIPC^PlcProj^PlcProj Instance^PlcTask Inputs^bIn";
string destination = "TIID^EtherCAT^EK1100^EL1004^Channel 1^Input";
systemManager.LinkVariables(source, destination);PowerShell:
$source = "TIPC^PlcProj^PlcProj Instance^PlcTask Inputs^bIn"
$destination = "TIID^EtherCAT^EK1100^EL1004^Channel 1^Input"
$systemManager.LinkVariables($source, $destination)Einzelne Variable trennen (UnlinkVariables)
C#:
systemManager.UnlinkVariables(source, destination);
PowerShell:
$systemManager.UnlinkVariables($source, $destination)Alle Mappings exportieren und importieren (ProduceMappingInfo / ConsumeMappingInfo)
ProduceMappingInfo liefert alle aktuellen Mappings als XML. ConsumeMappingInfo setzt die Mappings neu und überschreibt dabei alle vorhandenen. Das vollständige Mapping-Set muss übergeben werden. Beide Methoden erfordern ITcSysManager2.
C#:
ITcSysManager2 systemManager2 = (ITcSysManager2)systemManager;
string mappingInfo = systemManager2.ProduceMappingInfo();
systemManager2.ConsumeMappingInfo(mappingInfo);PowerShell:
$mappingInfo = $systemManager.ProduceMappingInfo()
$systemManager.ConsumeMappingInfo($mappingInfo)Alle Mappings löschen (ClearMappingInfo)
ClearMappingInfo entfernt alle Mappings der Solution. Die Methode erfordert ITcSysManager3.
C#:
ITcSysManager3 sysMan3 = (ITcSysManager3)systemManager;
sysMan3.ClearMappingInfo();PowerShell:
$systemManager.ClearMappingInfo()XML-basierte Mappings (ConsumeMappingInfo mit VarLinks-XML)
Mappings lassen sich direkt als VarLinks-XML übergeben. Der OwnerA-Knoten enthält den Pfad zum sendenden Element, OwnerB den zum empfangenden. Jeder Link benennt die jeweiligen Variablen relativ zu ihren Eltern.
C#:
ITcSysManager3 sysMan3 = (ITcSysManager3)sysManager;
// Read existing mappings
string existingMappings = sysMan3.ProduceMappingInfo();
// Set new mappings (provide all mappings completely)
string mappingXml = @"<VarLinks>
<OwnerA Name=""TIPC^PLC1^PLC1 Instance"">
<OwnerB Name=""TIID^EtherCAT Master^EL2008"">
<Link VarA=""Outputs^bOutput1"" VarB=""Channel 1^Output""/>
<Link VarA=""Outputs^bOutput2"" VarB=""Channel 2^Output""/>
</OwnerB>
</OwnerA>
</VarLinks>";
sysMan3.ConsumeMappingInfo(mappingXml);
![]() |
|
