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