ENI-Datei auf ein (Simulations-)Gerät importieren und exportieren

Eine ENI-Datei, EtherCAT Network Information, ist eine XML-Datei, die eine vollständige EtherCAT-Topologie beschreibt. Sie enthält alle Slaves mit ihren Adressen und Prozessdaten und wird in der Regel aus einer bestehenden TwinCAT-Konfiguration exportiert. Durch den Import auf einem Simulationsgerät lässt sich eine EtherCAT-Topologie ohne reale Hardware nachbilden. Das ist für Tests und Entwicklung nützlich, wenn die physische Anlage nicht zur Verfügung steht.

Beide Richtungen werden über ConsumeXml gesteuert: der Export auf dem EtherCAT-Master mit dem Element ExportConfigurationFile, der Import auf dem Simulationsgerät mit ImportConfigurationFile.

Voraussetzungen

ENI-Datei aus einer bestehenden Konfiguration exportieren

In der TwinCAT-Oberfläche wird die ENI-Datei am EtherCAT-Master über den Reiter EtherCAT mit der Schaltfläche Export Konfigurationsdatei… erzeugt. Im Automation Interface entspricht dem ein ConsumeXml-Aufruf auf dem Master-Knoten mit dem Element ExportConfigurationFile. Der Elementinhalt ist der Zielpfad der zu schreibenden Datei.

C# Beispiel

ITcSmTreeItem ecMaster = sysManager.LookupTreeItem(@"TIID^EtherCAT Master");

// Export ENI configuration file
ecMaster.ConsumeXml(
@"<TreeItem><EtherCAT><ExportConfigurationFile>" +
@"C:\Projects\EtherCATConfig.xml" +
@"</ExportConfigurationFile></EtherCAT></TreeItem>"
);

PowerShell Beispiel

$ecMaster = $sysManager.LookupTreeItem("TIID^EtherCAT Master")

# Export ENI configuration file
$ecMaster.ConsumeXml("<TreeItem><EtherCAT><ExportConfigurationFile>C:\Projects\EtherCATConfig.xml</ExportConfigurationFile></EtherCAT></TreeItem>")
ENI-Datei auf ein (Simulations-)Gerät importieren und exportieren 1:

Der Export wird auf dem Knoten des EtherCAT-Masters ausgeführt, nicht auf einem Slave. Wie beim Import muss der Dateipfad ein vollständiger absoluter Pfad sein.

ENI-Datei auf einem Simulationsgerät importieren

Zuerst wird unter dem I/O-Knoten TIID ein EtherCAT-Simulationsgerät mit SubType 144 angelegt. Anschließend wird die ENI-Datei über ConsumeXml mit dem Element ImportConfigurationFile geladen. Nach dem Import erscheinen alle in der Datei beschriebenen Slaves als konfigurierte Geräte unter dem Simulationsgerät, identisch zur Originalkonfiguration einschließlich Adressen und PDO-Mapping.

C# Beispiel

Zuerst wird unter dem I/O-Knoten TIID ein EtherCAT-Simulationsgerät mit SubType 144 angelegt. Anschließend wird die ENI-Datei über ConsumeXml mit dem Element ImportConfigurationFile geladen. Nach dem Import erscheinen alle in der Datei beschriebenen Slaves als konfigurierte Geräte unter dem Simulationsgerät, identisch zur Originalkonfiguration einschließlich Adressen und PDO-Mapping.

ITcSmTreeItem ioNode = sysManager.LookupTreeItem("TIID");

// Create EtherCAT simulation device (SubType 144)
ITcSmTreeItem ecSimDevice = ioNode.CreateChild("EtherCAT_Sim", 144);

// Import ENI configuration file
ecSimDevice.ConsumeXml(
    @"<TreeItem><EtherCAT><ImportConfigurationFile>" +
    @"C:\Projects\EtherCATConfig.xml" +
    @"</ImportConfigurationFile></EtherCAT></TreeItem>"
);

PowerShell Beispiel

$ioNode = $sysManager.LookupTreeItem("TIID")

# Create EtherCAT simulation device (SubType 144)
$ecSimDevice = $ioNode.CreateChild("EtherCAT_Sim", 144)

# Import ENI configuration file
$ecSimDevice.ConsumeXml("<TreeItem><EtherCAT><ImportConfigurationFile>C:\Projects\EtherCATConfig.xml</ImportConfigurationFile></EtherCAT></TreeItem>")
ENI-Datei auf ein (Simulations-)Gerät importieren und exportieren 2:

Das Simulationsgerät mit SubType 144 emuliert einen EtherCAT-Master ohne physische Netzwerkkarte. Der Pfad zur ENI-Datei muss ein vollständiger absoluter Pfad sein.