Geräte 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äte enumerieren

Voraussetzung

Einleitung

Die TIA Portal Openness-API ordnet Geräte ähnlich der Projektnavigation im TIA Portal an. PNV.

  • Geräte, die dem Projekt direkt untergeordnet sind, werden in der Zusammensetzung "Devices" des Projekts gesammelt angeordnet.

  • Geräte, die sich in Geräteordnern befinden, werden in der Zusammensetzung "Devices" des Ordners gesammelt angeordnet.

Hinweis

Hierarchie von Hardware-Objekten des Objektmodells Beachten.

Um die Geräte eines Projekts zu enumerieren, verwenden Sie eine der folgenden Möglichkeiten:

  • Alle Geräte auf erster Ebene enumerieren

  • Alle Geräte in Gruppen oder Untergruppen enumerieren

  • Alle Geräte eines keine Gerätegruppen enthaltenden Projekts enumerieren

  • Alle Geräte ungruppierter Gerätesystemgruppen enumerieren

Beispiele für enumerierbare Geräte:

  • Central station

  • PB-Slave / PN-IO device

  • HMI Device

Programmcode

Ändern Sie folgenden Programmcode, um Geräte auf Stammebene zu enumerieren:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void EnumerateDevicesInProject(Project project)

{

    DeviceComposition deviceComposition = project.Devices;

    foreach (Device device in deviceComposition)

    {

    // add code here

    }

}

Ändern Sie den folgenden Programmcode, um auf ein einzelnes Gerät zuzugreifen:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void AccessSingleDeviceByName(Project project)

{

    DeviceComposition deviceComposition = project.Devices;

    // The parameter specifies the name of the device

    Device device = deviceComposition.Find("MyDevice");

}

Programmcode

Um auf Geräte in einer Gruppe zuzugreifen, müssen Sie zuerst zu der Gruppe und danach zu dem Gerät navigieren.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

//Enamerate devices in groups or sub-groups

private static void EnumerateDevicesInGroups(Project project)

{

    foreach (DeviceUserGroup deviceUserGroup in project.DeviceGroups)

    {

        EnumerateDeviceUserGroup(deviceUserGroup);

    }

}

private static void EnumerateDeviceUserGroup(DeviceUserGroup deviceUserGroup)

{

    EnumerateDeviceObjects(deviceUserGroup.Devices);

    foreach (DeviceUserGroup subDeviceUserGroup in deviceUserGroup.Groups)

    {

        // recursion

        EnumerateDeviceUserGroup(subDeviceUserGroup);

    }

}

private static void EnumerateDeviceObjects(DeviceComposition deviceComposition)

{

    foreach (Device device in deviceComposition)

    {

    // add code here

    }

}

Programmcode

Ändern Sie folgenden Programmcode, um ein bestimmtes Gerät unter seinem Namen zu finden:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void FindingSpecificDevice(Project project)

{

    //Find a specific device by name

    Device plc1 = project.Devices.First(d => d.Name == "Mydevice");

    // Work with the device

}

Ändern Sie folgenden Programmcode, um ein bestimmtes Gerät über die Methode "Find" zu finden:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void FindingSpecificDevice2(Project project)

{

    //Find a specific device via "Find" method

    Device plc1 = project.Devices.Find("MyDevice");

    // Work with the device

}

Programmcode

Ändern Sie folgenden Programmcode, um alle Geräte zu enumerieren, die sich unter einem Projekt befinden, das keine Gerätegruppen enthält:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void EnumerateDevicesWithNoDeviceGroup(Project project)

{

    foreach (Device device in project.Devices)

    {

    // Work with the devices

    }

}

Programmcode

Ändern Sie folgenden Programmcode, um die in einem Ordner befindlichen Geräte zu enumerieren:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void EnumerateDeviceLocatedinFolder(Project project)

{

    DeviceUserGroup sortingGroup = project.DeviceGroups.Find ("Sorting");

    Device plc1 = sortingGroup.Devices.First(d => d.Name == "MyStationName");

    // Work with the device

}

Programmcode

Zum Strukturieren der Projekte wurden dezentrale Geräte in die Gruppe UngroupedDevices eingefügt. Um auf diese Gruppe zuzugreifen, navigieren Sie zuerst zur Gruppe und danach zum Gerät.

Ändern Sie folgenden Programmcode, um die Geräte der nicht gruppierten Gerätesystemgruppen zu enumerieren:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void EnumerateUngroupedDevice(Project project)

{

    DeviceSystemGroup group = project.UngroupedDevicesGroup;

    Device plc1 = group.Devices.First(d => d.Name == "MyStationName");

    // Work with the device

}