Erstellung von und Umgang mit Profibus-Geräten

In diesem Artikel wird beschrieben, wie Profibus-Master- und –Slave-Geräte mit Hilfe des TwinCAT-Automation Interface erstellt und gehandhabt werden. Er setzt sich aus folgenden Schwerpunkten zusammen:

Einen Profibus-Master erstellen und hinzufügen

1. Um ein Profibus-Master-Gerät zu erstellen, öffnen Sie eine neue oder bestehende TwinCat-Konfiguration
2. Alle Geräte scannen. (Diese Aktionen können auch über das Automation Interface durchgeführt werden.)
Erstellung von und Umgang mit Profibus-Geräten 1:
3. Erstellen Sie ein Systemmanager-Objekt und navigieren Sie zu den Geräten

Code-Ausschnitt (C#):

project = solution.Projects.Item(1);
sysman = (ItcSysManager)project.Object;
ITcSmTreeItem io = (ITcSmTreeItem)sysman.LookupTreeItem("TIID");

Code-Ausschnitt (Powershell):

$project = $sln.Projects.Items(1)
$sysman = $project.Object
$io = $sysman.LookupTreeItem("TIID")

Verwenden Sie die ITcSmTreeItem:CreateChild Methode, um einen Profibus-Master hinzuzufügen.

Code-Ausschnitt (C#):

ITcSmTreeItem5 profi_master = (ITcSmTreeItem5)io.CreateChild("Device 2 (EL6731)", 86, "", null); 

Code-Ausschnitt (Powershell):

$profi_master = $io.CreateChild("Device 2 (EL6731) ", "86", "", $null) 

Für weitere Profibus-Master geben Sie den korrekten, hier aufgelisteten ItemSubtype ein. Dadurch wird das neue Gerät wie im Screenshot dargestellt hinzugefügt:

Erstellung von und Umgang mit Profibus-Geräten 2:

Ein Profibus-Master-Gerät in der Liste suchen und anfordern:

Der neu hinzugefügte Profibus-Master muss konfiguriert werden, was normalerweise in TwinCAT mittels Drücken der Suchen-Taste und Auswahl des korrekten Geräts aus der Liste erledigt wird.

Erstellung von und Umgang mit Profibus-Geräten 3:

Dies kann über Automation Interface gemacht werden:

Code-Ausschnitt (C#):

string availableMaster = profi_master.ResourcesCount;
profi_master.ClaimResources(1);

Code-Ausschnitt (Powershell):

$availableMaster = $profi_master.ResourcesCount
$profi_master.ClaimResources(1)

ITcSmTreeItem5:ResourcesCount zeigt die Anzahl kompatibler Profibus-Master-Geräte an, und ITcSmTreeItem5:ClaimResources nimmt den Index des CANOpen-Geräts, das als Master konfiguriert werden soll.

Einen Profibus-Slave erstellen und hinzufügen

Der aktuellen Konfiguration kann ein Profibus-Slave folgendermaßen hinzugefügt werden:

Code-Ausschnitt (C#):

ITcSmTreeItem5 profi_slave = (ITcSmTreeItem5)io.CreateChild("Device 3 (EL6731-0010)", 97, null); 

Code-Ausschnitt (Powershell):

$profi_slave = $io.CreateChild("Device 3 (EL6731-0010)", "97", "", $null) 

Einen Profibus Slave suchen und anfordern

Wie im Falle von Profibus-Master kann die Anzahl von Profibus-Slaves durch folgenden Code publiziert werden:

Code-Ausschnitt (C#):

string availableSlaves = profi_slave.ResourcesCount;
profi_slave.ClaimResource(1);

Code-Ausschnitt (Powershell):

$availableSlaves = $profi_slave.ResourcesCount
$profi_slave.ClaimResources(1)

Die letzte Zeile im Code bestimmt das EL6731-0010 Gerät als Profibus-Slave, ähnlich wie im Dialogfeld, das in der TwinCAT-Bedieneroberfläche erscheint.

Erstellung von und Umgang mit Profibus-Geräten 4:

Änderung der Feldbus-Adresse

Um die Feldbusadresse (Station-Nr.) einer Profibus-Box in einer Konfiguration zu ändern, muss eine TwinCAT System Manager-Instanz erstellt und die Konfiguration geöffnet werden. Die LookupTreeItem-Methode der ITcSysManager-Schnittstelle gibt einen ITcSmTreeItem-Schnittstellenzeiger zurück, der vom Tree Item, das über seinen Pfadnamen referenziert wird, implementiert ist. Diese Schnittstelle beinhaltet eine ConsumeXml-Methode des Tree Items.

Ablauf

Die Vorgehensweise für die Erstellung der ITcSysManager-Schnittstelle (die 'sysMan'-Instanz hier) wird im Kapitel Auf TwinCAT-Konfigurationen zugreifen beschrieben. Diese Schnittstelle verfügt über eine LookupTreeItem-Methode, die einen ITcSmTreeItem-Zeiger auf ein, mit seinem Pfadnamen angegebenes Tree Item zurückgibt. Zum Ändern der Feldbusadresse (Station-Nr.) einer Profibus-Box "TIID^Device 1 (FC310x)^Box 1 (BK3100)" in 44, kann der folgende Code verwendet werden:

Code-Ausschnitt (C#):

ItcSmTreeItem item = sysMan.LookupTreeItem("TIID^Device 1 (FC310x)^Box 1 (BK3100)");
item.ConsumeXml("44");

Code-Ausschnitt (Powershell):

$item = $sysMan.LookupTreeItem("TIID^Device 1 (FC310x)^Box 1 (BK3100)")
$item.ConsumeXml("44")