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
- Eine TwinCAT-Solution ist geöffnet und eine DTE-Verbindung ist aktiv.
ITcSysManagerwurde als COM-Objekt in einem STA-Thread initialisiert.- Für den Export: Ein konfigurierter EtherCAT-Master ist in der I/O-Konfiguration vorhanden
- Für den Import: Eine ENI-Datei im Format
.xmlliegt unter einem bekannten absoluten Pfad vor.
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>")![]() | 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>")
![]() | Das Simulationsgerät mit SubType |
