Objektstruktur und -Attribute ermitteln - 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
Objektstruktur und -Attribute ermitteln

Voraussetzung

Verwendung

Die Navigationsstruktur in der Objekthierarchie können Sie mit der Schnittstelle IEngineeringObject ermitteln. Das Ergebnis wird als Liste zurückgegeben:

  • Untergeordnete Objekte

  • Kindzusammensetzungen

  • Alle Attribute

Signatur

Verwenden Sie zum Ermitteln von Attributen die Methode GetAttributeInfos.

IList<EngineeringAttributeInfo> IEngineeringObject.GetAttributeInfos();

Programmcode: Objekte oder Zusammensetzungen ermitteln

Um alle Namen von Zusammensetzungen anzuzeigen, verwenden Sie den folgenden Programmcode:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void DisplayCompositionInfos(IEngineeringObject obj)

{

    IList<EngineeringCompositionInfo> compositionInfos = obj.GetCompositionInfos();

    foreach (EngineeringCompositionInfo compositionInfo in compositionInfos)

    {

    Console.WriteLine(compositionInfo.Name);

    }

}

Wenn Sie den Rückgabewert kennen, ändern Sie den folgenden Programmcode:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static DeviceItemComposition GetDeviceItemComposition(Device device)

{

    IEngineeringCompositionOrObject composition = ((IEngineeringObject) device).GetComposition("DeviceItems");

    DeviceItemComposition deviceItemComposition = (DeviceItemComposition)composition;

    return deviceItemComposition;

}

Programmcode: Attribute ermitteln

Um Attribute eines Objekts mit bestimmten Zugriffsrechten in einer Liste zurückzugeben, ändern Sie folgenden Programmcode:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static string DisplayAttributenInfos(IEngineeringObject obj)

{

    IList<EngineeringAttributeInfo> attributeInfos = obj.GetAttributeInfos();

    foreach (EngineeringAttributeInfo attributeInfo in attributeInfos)

    {

    Console.WriteLine("Attribute: {0} - AccessMode {1} ", attributeInfo.Name,

    attributeInfo.AccessMode);

    switch (attributeInfo.AccessMode)

    {

    case EngineeringAttributeAccessMode.Read: Console.WriteLine

    ("Attribute: {0} Read Access", attributeInfo.Name);

    break;

    case EngineeringAttributeAccessMode.Write: Console.WriteLine

    ("Attribute: {0} Write Access", attributeInfo.Name);

    break;

    case EngineeringAttributeAccessMode.Read | EngineeringAttributeAccessMode.Write:

    Console.WriteLine("Attribute: {0} - Read and Write Access",attributeInfo.Name);

    break;

    }

    }

    Object nameAttribute = obj.GetAttribute("Name");

    string name = nameAttribute?.ToString();

    return name;

}