Geräteelemente enumerieren - TIAPortal

TIA Portal Openness: API für die Automatisierung von Engineering-Workflows

ft:publication_title
TIA Portal Openness: API für die Automatisierung von Engineering-Workflows
Product
TIAPortal
Version
V20
Publication date
01/2025
Language
de-DE
Geräteelemente enumerieren

Voraussetzung

Verwendung

Um ein Geräteelement abzurufen, verwenden Sie das HardwareObject Die Elemente eines Hardwareobjekts sind die in das Hardwareobjekt gesteckten Teile, die der Anwender im TIA Portal sehen kann:

  • ein Baugruppenträger in einem Gerät

  • ein Modul in einem Baugruppenträger

  • Ein Submodul in einem Modul

  • Ein Submodul in einem Submodul

Hinweis

Weiterführende Informationen zu diesem Thema finden Sie im Kapitel Hierarchie von Hardware-Objekten des Objektmodells.

Programmcode: Geräteelement eines Geräts enumerieren

Ändern Sie den folgenden Programmcode, um Geräteelemente eines Hardware-Objekts zu enumerieren:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void EnumerateDeviceItems(HardwareObject hardwareObject)

{

    foreach (DeviceItem deviceItem in hardwareObject.Items)

    {

        // add code here

    }

}

Programmcode: Mit Zusammensetzungshierarchie enumerieren

Ändern Sie den folgenden Programmcode, wenn Sie die Geräteelemente eines Geräts mit Hilfe der Zusammensetzungshierarchie enumerieren möchten:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

//Enumerates devices using an composition

private static void EnumerateDeviceItems(Device device)

{

    DeviceItemComposition deviceItemComposition = device.DeviceItems;

    foreach (DeviceItem deviceItem in deviceItemComposition)

    {

        // add code here

    }

}

Programmcode: Geräteelemente mit Zuordnung enumerieren

Ändern Sie den folgenden Programmcode, um die Geräteelemente mit einer Zuordnung zu enumerieren:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

//Enumerates devices using an association

private static void EnumerateDeviceItemsWithAssociation(Device device)

{

    DeviceItemAssociation deviceItemAssociation = device.Items;

    foreach (DeviceItem deviceItem in deviceItemAssociation)

    {

        // add code here

    }

}

Programmcode: Auf eine PLC-Baugruppe anhand des Namens innerhalb eines Projekts zugreifen

Ändern Sie folgenden Programmcode, um auf ein bestimmtes PLC-Modul in einem Projekt anhand des Namens zuzugreifen:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

public static DeviceItem GetModuleByName(ProjectBase project)

{

    DeviceComposition devices = project.Devices;

    Device station = devices.Find("S71500/ET200MP station_1");

    // The module name is unique in the logical relation via

    // "Items" within a container.

    DeviceItemAssociation stationModules = station.Items;

    DeviceItem rack = stationModules.Find("Rail_0");

    DeviceItemAssociation rackModules = rack.Items;

    DeviceItem plcModule = rackModules.Find("PLC_1");

    return plcModule;

}

Programmcode: Auf eine PLC-Baugruppe anhand der Position innerhalb eines Projekts zugreifen

Ändern Sie folgenden Programmcode, um auf ein bestimmtes PLC-Modul in einem Projekt anhand der Position zuzugreifen:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

public static DeviceItem GetModuleByPositionNumber(ProjectBase project)

{

    DeviceComposition devices = project.Devices;

    Device station = devices.Find("S71500/ET200MP station_1");

    // The position number is unique in the logical relation via "Items" within a container.

    DeviceItemAssociation stationModules = station.Items;

    DeviceItem rack = stationModules.Find(0);

    DeviceItemAssociation rackModules = rack.Items;

    DeviceItem plcModule = rackModules.Find(1);

    return plcModule;

}

Programmcode: Auf Module anhand ihrer Klassifikationen zugreifen

Ändern Sie folgenden Programmcode, um eine CPU anhand ihrer Klassifikation zu finden und eine Liste der Geräteelemente zurückzugeben:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

public static IList<DeviceItem> GetModulesByClassification(ProjectBase project)

{

    DeviceComposition devices = project.Devices;

    Device station = devices.Find("S7-1500R/H-System_1");

    // The classification is not a unique characteristic,

    // multiple items can have the same classification.

    // Find by classification is a search operation

    // that is provided both on "Items" and "DeviceItems".

    DeviceItemComposition stationModules = station.DeviceItems;

    IList<DeviceItem> plcModules = stationModules.Find(DeviceItemClassifications.CPU);

    return plcModules;

}