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:

Voraussetzungen

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);
Variablen-Mappings verwalten 1:

ConsumeMappingInfo überschreibt alle bestehenden Mappings. Das vollständige Mapping-Set muss bei jedem Aufruf übergeben werden.