Eine EL6695 EtherCAT-Bridge konfigurieren
Die EL6695 ist eine EtherCAT-Bridge-Klemme für die Kommunikation zwischen zwei EtherCAT-Mastern. Sie ermöglicht den bidirektionalen Datenaustausch zwischen zwei unabhängigen EtherCAT-Strängen. Nach dem Anlegen der IO-Variablen wird die Konfiguration über einen cmdCreateConfiguration-Befehl per ConsumeXml abgeschlossen.
Voraussetzungen
- Eine EL6695-Klemme ist in der EtherCAT-Konfiguration vorhanden.
- TwinCAT-Solution ist im Config-Modus.

// nodePathList: list of all TreeItem paths — e.g. built via ProduceXml on TIID
foreach (string pathName in nodePathList)
{
if (pathName.Contains("EL6695"))
{
ITcSmTreeItem termEL6695 = sysManager.LookupTreeItem(pathName);
ITcSmTreeItem ioInputs = sysManager.LookupTreeItem(pathName + @"^IO Inputs");
ITcSmTreeItem ioOutputs = sysManager.LookupTreeItem(pathName + @"^IO Outputs");
// Create IO variables — order: 3, 2, 1 (param=0 inserts at the front)
ioInputs.CreateChild("InputVar3", 0, null, "BYTE");
ioInputs.CreateChild("InputVar2", 0, null, "BYTE");
ioInputs.CreateChild("InputVar1", 0, null, "BYTE");
ioOutputs.CreateChild("OutputVar2", 0, null, "BYTE");
ioOutputs.CreateChild("OutputVar1", 0, null, "BYTE");
// Create configuration (SelectItem + cmdCreateConfiguration)
termEL6695.ConsumeXml("<SelectItem/>");
termEL6695.ConsumeXml(
@"<TreeItem><Xml><AutomationInterface>
<cmdCreateConfiguration/>
</AutomationInterface></Xml></TreeItem>");
// Read back current configuration and reapply
string strXml = termEL6695.ProduceXml();
termEL6695.ConsumeXml(strXml);
}
}Der Ablauf folgt einer festen Reihenfolge:
- Variablen anlegen,
- SelectItem aufrufen,
- cmdCreateConfiguration ausführen,
- ProduceXml/ConsumeXml zum Finalisieren.
Das <SelectItem></SelectItem> entspricht dem manuellen Selektieren der Klemme in der TwinCAT-Oberfläche und ist notwendig, damit der cmdCreateConfiguration-Befehl greift. cmdCreateConfiguration wird von einem Command in der Feldbus-Extension verarbeitet, der die Bridge-Konfiguration (neu) generiert.
![]() | Der Parameter SubType in CreateChild kontrolliert, wo die Variable eingefügt wird (0 = am Anfang; 1 = am Ende). |
