Voraussetzung
-
Die TIA Portal Openness-Anwendung ist mit dem TIA Portal verbunden.
Siehe Verbindung zum TIA Portal aufbauen -
Sie haben mit Ihrer TIA Portal Openness-Anwendung ein Projekt geöffnet.
Siehe Projekt öffnen
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:
|
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:
|
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:
|
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; } |