Ein Geräteelement erstellen und stecken - 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
Ein Geräteelement erstellen und stecken

Voraussetzung

Verwendung

Die Aktion PlugNew(string typeIdentifier, string name, int positionNumber) von HardwareObject wird verwendet, um

  • ein neues Geräteelement zu erstellen und in ein vorhandenes Hardwareobjekt zu stecken

  • ein neues Untergeräteelement zu erstellen, z. B. ein Submodul, und dieses in ein Geräteelement zu stecken

Wenn die Aktion erfolgreich war, gibt sie das erstellte Geräteelementobjekt aus. Andernfalls wird eine wiederherstellbare Ausnahme ausgelöst.

Mit der Aktion CanPlugNew(string typeIdentifier, string name, int positionNumber) können Sie ermitteln, ob Erstellen und Stecken möglich sind. Wenn eine Ausführung nicht möglich ist, gibt die Aktion false aus.

Wenn die Methode den Wert True zurückgibt, kann die Aktion aus den folgenden unvorhersehbaren Gründen dennoch fehlschlagen.

  • eine Positionsnummer wird bereits von einem anderen Geräteelement verwendet

  • das aktuelle Geräteelement kann nicht in die Position gesteckt werden, obwohl sie frei ist

  • der Behälter stellt die Positionsnummer nicht bereit

  • der Name des Geräteelements wird bereits von einem vorhandenen Geräteelement im selben Behälter verwendet

  • das Geräteelement kann nicht in den Behälter gesteckt werden

  • das Gerät ist online

Die folgende Tabelle zeigt die benötigten Methodenparameter:

Name

Typ

Beschreibung

typeIdentifier

String

Typkennung des erstellten Geräteelements

name

String

Name des erstellten Geräteelements

positionNumber

Int

Positionsnummer des erstellten Geräteelements

Programmcode

Ändern Sie folgenden Programmcode, um ein Geräteelement in ein vorhandenes Hardwareobjekt zu stecken:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void PluggingDeviceItem

(HardwareObject hardwareObject, string typeIdentifier,

string name, int positionNumber)

{

    if(hwObject.CanPlugNew(typeIdentifier, name, positionNumber))

    {

    Siemens.Engineering.HW.DeviceItem newPluggedDeviceItem =

    hwObject.PlugNew(typeIdentifier, name, positionNumber);

    }

}

Auf Modulinformationen zugreifen

Der TIA Portal Openness-Anwender kann über das Objekt ModuleInformationProvider auf Informationen zu den steckbaren Modulen zugreifen. Der Anwender hat Zugriff auf

  • die Behältertypen, in die ein bestimmtes Modul zu stecken ist (z. B. Gerät und Baugruppenträger) – über die Methode FindContainerTypes.

  • die verfügbaren Versionen für ein bestimmtes teilweise angegebenes Modul – über die Methode FindModuleTypes.

Programmcode: Auf das Objekt ModuleInformationProvider zugreifen

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

privaet static void ModuleInformationAccess(Project project)

{

    HardwareUtilityComposition extensions = project.HwUtilities;

    var result = extensions.Find("ModuleInformationProvider")

    as ModuleInformationProvider;

}

Programmcode: Mit der Methode FindContinerTypes auf Behältertypen zugreifen

Die Methode FindContinerTypes gibt die Behältertypen eines angegebenen Moduls zurück. Das Modul wird über den Parameter typeIdentifier angegeben. Die resultierende Liste enthält die TypeIdentifiers sämtlicher Behältertypen des angeforderten Typs. Üblicherweise umfasst dies ein Gerät und einen Baugruppenträger, und die Behälter werden in ihrer Reihenfolge in der Hierarchie im Projekt mit Beginn am Gerät angegebenen.

Name des Parameters

Typ

Beschreibung

typeIdentifier

String

Typkennung eines Gerätelements

Achtung

Diese Methode funktioniert nur bei die in der Netzsicht sichtbaren Modulen.

Diese Methode funktioniert nur bei Modulen, nicht bei Submodulen.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void AccessingContainerType(string typeIdentifier,

ModuleInformationProvider moduleInformationProvider)

{

    string[] containerTypes = moduleInformationProvider.FindContainerTypes(typeIdentifier);

}

Programmcode: Mit der Methode FindModuleTypes auf Versionen zugreifen

Die Methode FindModuleTypes gibt alle möglichen Versionen eines Hardwareobjekts unter Verwendung der teilweisen Typkennung des Geräteelements zurück. Diese Methode gibt eine Liste von Strings aus. Jeder String entspricht dem vollständigen TypeIdentifier einer möglichen Übereinstimmung für den teilweisen TypeIdentifier.

Eine gültige teilweise Typkennung darf nur vollständige Teile enthalten, wobei jeder Teil in der Typkennung durch das Zeichen "/" getrennt ist. Platzhalter oder unvollständige Teile werden nicht unterstützt. Außerdem müssen die folgenden Einschränkungen im Hinblick auf die Mindestanzahl von angegebenen Teilen beachten werden:

  • Bestellnummer mindestens ein Teil. Beispiel: OrderNumber:6ES7 317-2EK14-0AB0

  • GSD: mindestens zwei Teile. Beispiel: GSD:SI05816A.GSD/M

  • System: mindestens ein Teil. Beispiel: System:Rack.ET200SP

Name des Parameters

Typ

Beschreibung

partialTypeIdentifier

String

teilweise Typkennung eines Geräteelements

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void AccessVersionHardwareObject(string partialTypeIdentifier,

ModuleInformationProvider moduleInformationProvider)

{

    string[] moduleTypes = moduleInformationProvider.FindModuleTypes(partialTypeIdentifier);

}

Programmcode: Mit der Methode GetPlugLocations auf die Steckorte zugreifen

Die Methode GetPlugLocations gibt die Informationen über Steckplätze wie Steckort, Positionsnummer (Bezeichnung eines Steckplatzes) und verfügbare Steckplätze für das Hardwareobjekt zurück.

Die Klasse PlugLocation hat die folgenden Eigenschaften.

Name der Eigenschaft

Typ

Beschreibung

PositionNumber

Int

Die Positionsnummer des freien Steckplatzes

Label

String

Die Bezeichnung des freien Steckplatzes

  • Ist für eine bestimmte Positionsnummer kein "label" vorhanden, wird die String-Darstellung der Positionsnummer verwendet.

  • PlugLocation-Objekte werden nur für freie Steckplätze bereitgestellt.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void AccessPlugLocation(HardwareObject hardwareObject)

{

    IList<PlugLocation> result = hardwareObject.GetPlugLocations();

    foreach (PlugLocation item in result)

    {

    Console.WriteLine("{0} - {1}", item.PositionNumber, item.Label);

    }

}