Von Offline zu Online-Konfigurationen

In diesem Artikel wird erläutert, wie eine TwinCAT-Konfiguration, die „offline“ erstellt wurde, mit Hilfe des TwinCAT-Automation Interface in eine Online-Konfiguration umgewandelt wird. Der Begriff „offline“ bedeutet, dass zum Zeitpunkt der Erstellung der Konfiguration keine physikalischen I/Os vorliegen und demzufolge die realen Adressen z.B. für einen EtherCAT Master nicht verfügbar sind. Die folgenden Punkte werden in diesem Artikel behandelt:

Allgemeine Informationen

Bei der Erstellung einer TwinCAT-Konfiguration sind zwei Szenarien geläufig:

Beide Szenarien sind mit dem TwinCAT-Automation Interface möglich. Weil aber im Falle des Szenarios 2 wichtige Informationen über einige der I/O fehlen, z.B. deren physikalische Adressen, ist Letzteres etwas komplexer, weil die erforderliche (Adress-) Information später übergeben werden muss.

Die vertraute TwinCAT XAE-Funktionalität "Scan Devices" spielt in diesem Verwendungsfall eine bedeutende Rolle, weil sie alle verfügbaren E/A-Geräte scannt und diese automatisch mit der Konfiguration verbindet, zusammen mit allen erforderlichen zusätzlichen Informationen, z.B. den physikalischen Adressen.

Von Offline zu Online-Konfigurationen 1:

Im Falle einer physikalischen Steuerung kann diese Funktionalität auch über das Automation Interface aufgerufen werden, wobei sie dann eine XML-Darstellung aller gefundenen E/A-Geräte einschließlich deren entsprechenden Adressinformation zurückgibt.

Wenn eine TwinCAT-Konfigruation auf einer Steuerung aktiviert werden soll, dann muss die erforderliche Adressinformation für alle zur Konfiguration gehörenden E/A-Geräte gesetzt sein. Dies kann mit dem Aufruf der „Scan Devices“ Funktionalität über das Automation Interface und Festlegung der Adressinformation der E/A-Geräte in der Konfiguration erledigt werden. Das wird nun genauer erläutert.

Eine Offline-Konfiguration erstellen

Die Erstellung einer offline TwinCAT-Konfiguration wird in mehreren Artikeln beschrieben. Unsere Seite Produktbeschreibung gibt Ihnen einen Überblick.

Wechsel zu einer Online-Konfiguration

Wenn Sie schlussendlich eine TwinCAT-Konfiguration erstellt haben, die nun auf einer physikalischen Steuerung aktiviert werden soll, dann befolgen Sie bitte die folgenden Schritte, um sicherzustellen, dass alle erforderlichen Adressinformationen vor dem Herunterladen der Konfiguration verfügbar sind.

Selbstverständlich können Sie auch jederzeit eine Online-Konfiguration direkt unter Verwendung der ScanDevices-Funktionalität erstellen. Es gibt ein entsprechendes Beispiel, das Ihnen genau zeigt, wie das gemacht wird.

Schritt 1 [optional]: Verbindung mit dem Zielgerät

Befindet sich die physikalische Steuerung nicht auf derselben Maschine, auf welcher der Automation Interface-Code läuft, können Sie die Methode ITcSysManager::SetTargetNetId() verwenden, um die Verbindung mit dem Remote-Teilnehmer herzustellen, um anschließend mit den nächsten Schritten fortzufahren.

Schritt 2: Das Gerät nach allen verfügbaren I/Os durchsuchen

Die bereits erwähnte "Scan Devices"-Funktionalität kann über das Automation Interface mittels Aufruf der ITcSmTreeItem::ProduceXml()-Methode auf dem E/A-Geräteknoten ausgelöst werden.

Code-Ausschnitt (C#):

ITcSmTreeItem ioDevices = systemManager.LookupTreeItem("TIID");
string foundDevices = ioDevices.ProduceXml();

Schritt 3: Durch XML iterieren und die Adressinformation der I/Os konfigurieren

In diesem Beispiel wollen wir die Adressinformation eines EtherCAT-Teilnehmers, der bereits Teil unserer Offline-Konfiguration ist, aktualisieren. Die in Schritt 2 ausgeführte Methode ProduceXml() hat bereits die auf dem System verfügbaren E/A-Geräte zurückgegeben, die nun in der Variablen ‘foundDevices' verfügbar sind. Wir werden den EtherCAT-Teilnehmer in dieser XML über dessen Element-Subtyp (111) identifizieren und anschließend die Adressinformation des EtherCAT Masters in unserer Konfiguration aktualisieren.

Code-Ausschnitt (C#):

XmlDocument doc = new XmlDocument();
doc.LoadXml(foundDevices);
XmlNodeList devices = doc.SelectNodes("TreeItem/DeviceGrpDef/FoundDevices/Device");
foreach (XmlNode device in devices)
{
xmlNode typeNode = device.SelectSingleNode("ItemSubType");
int subType = int.Parse(typeNode.InnerText);
if (subType == 111)
    {
     XmlNode addressInfo = device.SelectSingleNode("AddressInfo");
     ITcSmTreeItem deviceToUpdate = systemManager.LookupTreeItem("TIID^EtherCAT Master");
     string xmlAddress = string.Format("<TreeItem><DeviceDef>{0}</DeviceDef></TreeItem>", addressInfo.OuterXml);
     deviceToUpdate.ConsumeXml(xmlAddress);
}
}

Schritt 4: Die Konfiguration aktivieren

Der letzte Schritt beinhaltet lediglich die Aktivierung der Konfiguration auf dem Zielgerät. Verwenden Sie hierzu einfach die ITcSysManager::ActivateConfiguration()-Methode.

Code-Ausschnitt (C#):

sysManager.ActivateConfiguration();