Projekt öffnen - 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
Projekt öffnen

Voraussetzung

  • Die TIA Portal Openness-Anwendung ist mit dem TIA Portal verbunden.
    Siehe Verbindung zum TIA Portal aufbauen

  • Das zu öffnende Projekt ist in keiner anderen Instanz des TIA Portals geöffnet.

Hinweis

Rückgängigmachen eines Projekt-Upgrades

Wenn Sie das Upgrade eines Projekts auf V14 SP1 rückgängig machen, nachdem Sie das Projekt mit TIA Portal Openness verbunden haben, treten Konflikte auf.

Einleitung

Zum Öffnen eines Projekts verwenden Sie die Methode Projects.Open. Geben Sie in der Methode Projects.Open einen Pfad zu dem gewünschten Projekt ein.

Die Methode Projects.Open greift ausschließlich auf Projekte zu, die mit der aktuellen Version des TIA Portal s angelegt oder auf die aktuelle Version hochgerüstet wurden. Wenn Sie mit der Methode Projects.Open auf ein Projekt einer Vorgängerversion zugreifen, wird eine Ausnahme zurückgegeben. Verwenden Sie die Methode OpenWithUpgrade zum Öffnen von Projekten, die mit älteren Versionen von TIA Portal angelegt wurden.

Programmcode

Um ein Projekt zu öffnen, ändern Sie den folgenden Programmcode:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static Project ProjectOpen(string projectPath)

{

        try

        {

            // Refer Connecting to the TIA Portal section

            TiaPortal tiaPortal = new TiaPortal();

            Project project =tiaPortal.Projects.Open(projectPath);

            if (project != null)

            {

            Console.WriteLine("Project Name: " + project.Name);

            Console.WriteLine("Project Version: " + project.Version);

            }

            return project

        }

        catch (Exception ex)

        {

            Console.WriteLine($"Exception of type {ex.GetType()} occurred: {ex.Message}");

            return null;

        }

}

Öffnen eines UMAC-geschützten Projekts

Sie können auch ein UMAC-geschütztes Projekt öffnen. Die Überladung der Funktion Open benötigt einen zusätzlichen Parameter vom Typ UmacDelegate. Dieser zusätzliche Parameter ermöglicht es dem Aufrufer, einen Handler anzugeben, der während der UMAC-Authentifizierung verwendet werden soll. Der neue UmacDelegate wird mit einer Methode implementiert, die einen Parameter vom Typ UmacCredentials enthält. UmacCredentials hat zwei Eigenschaften, 'Name' vom Typ String und 'Type' vom Typ UmacUserType, sowie eine Methode SetPassword mit einem Parameter vom Typ SecureString. Durch die Verwendung von UmacUserType.Project wird auf einen UMAC-Projektumfang hingewiesen, während durch die Verwendung von UmacUserType.Global auf einen UMAC-Anwendungsumfang hingewiesen wird (d.h. gesteuert von einem UMAC-Server).

Programmcode

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

public struct UmacCredentialsParameters

{

     public UmacUserType Type;

     public string Name;

     public SecureString Password;

}

private static void UMACProtectedProjectOpen(string projectFilePath,

UmacCredentialsParameters umacParameters)

{

     try

     {

     void MyUmacDelegate(UmacCredentials umacCredentials)

     {

         umacCredentials.Type = umacParameters.Type;

     umacCredentials.Name = umacParameters.Name;

         umacCredentials.SetPassword(umacParameters.Password);

     }

     // Refer Connecting to the TIA Portal section

     TiaPortal tiaPortal = new TiaPortal();

     Project project = tiaPortal.Projects.Open(new FileInfo(projectFilePath), MyUmacDelegate);

     if (project != null)

     {

     try

{

       Console.WriteLine(project.Name); Console.WriteLine(project.Version);

     }

     finally { project.Close();

     }

     }

     }

     catch(Exception ex)

     {

         Console.WriteLine(ex.ToString());

     }

}

Öffnen eines UMAC-geschützten Projekts mit einer neuen Authentifizierung

Vor TIA Portal Openness V17 kann das geschützte Projekt durch Eingabe des Benutzernamens und Passworts über UMAC Delegate in Open Project API geöffnet werden.

Ab TIA Portal Openness V17 hat UMAC neue Authentifizierungsmechanismen eingeführt, mit denen Sie ein geschütztes Projekt öffnen können. Die neuen Authentifizierungsmechanismen sind Desktop Single Sign-On (SSO) und Anonymous User.

TIA Portal Openness V17 unterstützt die folgenden Authentifizierungsmechanismen. Die Implementierung von Openness ist ferner unabhängig von den Einstellungen im TIA Portal.

  • Desktop Single Sign-On (SSO)

  • Anonymous User

  • Interaktive Anmeldung

  • Anmeldedaten (aus TIA Portal V15.1)

Zur Unterstützung der zusätzlichen Authentifizierungsmethoden wurde in Openness der neue Ereignisname "Authentication" im TIA Portal-Objekt eingeführt. Die Änderungen sind als Teil von V17 Engineering realisiert. Sofern es vom Benutzer im Openness-Skript registriert ist, wird das Ereignis "Authentication" ausgeführt, sobald das Öffnen eines Projekts aufgerufen wird. Ereignis "Authentication" wird nur beim Öffnen eines geschützten Projekts ausgeführt.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void OnAuthentication(object sender, AuthenticationEventArgs e)

{

    // Refer Connecting to the TIA Portal section

    var tiaPortal = new TiaPortal();

    tiaPortal.Authentication += OnAuthentication;

    e.AuthenticationTypeProvider = AuthenticationTypeProvider.Credentials;

}

Sie können die zusätzlichen Authentifizierungsmethoden mit den Ereignisargumenten AuthenticationEventArgs verwenden. Mit AuthenticationTypeProvider wird die Authentifizierungsart bereitgestellt. Die Anmeldungsart wird anhand des obigen Beispiels eingestellt.

Die Werte für AuthenticationTypeProvider sind nachfolgend angegeben.

  • AuthenticationTypeProvider.DesktopSso: Projekt öffnen mit Single-Sign-On-Benutzer, es wird kein Passwort verlangt

  • AuthenticationTypeProvider.Anonymous: Projekt öffnen mit Anonymous User, es wird kein Passwort verlangt

  • AuthenticationTypeProvider.Interactive: Projekt öffnen mit interaktiver Anmeldung, Benutzername und Passwort müssen über die Benutzeroberfläche eingegeben werden

  • AuthenticationTypeProvider.Credentials: Projekt mit einem Benutzernamen und Passwort öffnen.

Das Ereignis gilt für das Öffnen des Projekts in einer Multiuser-Umgebung. Die oben beschriebenen Authentifizierungsmethoden gelten, wenn ein geschütztes Projekt in einer lokalen Sitzung oder in der Serversicht geöffnet wird.

Wenn Ausnahmen vorliegen, zum Beispiel für eine Single-Sign-On-Sitzung oder bei einem ungültigen Benutzernamen / Passwort, wird eine EngineeringTargetInvocationException generiert.

Öffnen mehrerer Projekte

Sie können in einer TIA Portal-Instanz ein primäres Projekt und mehrere sekundäre Projekte gleichzeitig öffnen. Sie können ein Projekt als primäres oder sekundäres Projekt öffnen. Wird ein Projekt als primäres Projekt geöffnet, wird es in der Projektnavigation angezeigt, wenn die Openness-Anwendung mit dem TIA Portal verknüpft ist. Beim Öffnen eines Projekts als sekundäres Projekt wird das Projekt nicht auf der Benutzeroberfläche dargestellt. Sekundäre Projekte werden immer schreibgeschützt geöffnet. Ein Anwender mit Lese- und Schreibrechten für UMAC-geschützte Projekte hat nur Leserechte, wenn das Projekt als sekundäres Projekt geöffnet wird. Es ist nicht notwendig, dass ein primäres Projekt geöffnet ist, damit ein sekundäres Projekt geöffnet werden kann.

Jedes geöffnete Projekt kann mithilfe der Projektzusammensetzung (ProjectComposition) in der TIA Portal-Instanz enumeriert werden. Die Reihenfolge der Projekte in der Zusammensetzung wird durch die Reihenfolge, in der sie geöffnet wurden, bestimmt. Wird ein Projekt geschlossen, wird der Index aller Projekte neu berechnet.

Programmcode

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void OpeningMultipleProjects()

{

    // Refer Connecting to the TIA Portal section

    TiaPortal tiaPortal = new TiaPortal();

    Project project1 = tiaPortal.Projects.Open(new FileInfo(@"D:\Project_1\Project_1.apXX"), null, ProjectOpenMode.Primary);

    Project project3 = tiaPortal.Projects.Open(new FileInfo(@"D:\Project_3\Project_3.apXX"), null, ProjectOpenMode.Secondary);

    bool isPrimary = project3.IsPrimary;

}

Öffnen von mit älteren Versionen angelegten Projekten

Verwenden Sie die Methode OpenWithUpgrade zum Öffnen eines Projekts, das mit der älteren TIA Portal-Version angelegt wurde. Die Methode legt ein neues, aktualisiertes Projekt an und öffnet es.

Wenn Sie auf ein mit einer älteren Version erstelltes Projekt zugreifen, wird eine Ausnahme zurückgegeben.

Hinweis

Wenn Sie auf ein mit der aktuellen Version erstelltes Projekt zugreifen, wird das Projekt geöffnet.

Programmcode

Ändern Sie den folgenden Programmcode zum Öffnen eines Projekts über die Methode OpenWithUpgrade:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void ProjectOpenWithUpgrade()

{

    // Refer Connecting to the TIA Portal section

    TiaPortal tiaPortal = new TiaPortal();

    Project project = tiaPortal.Projects.OpenWithUpgrade(new FileInfo(@"D:\Some\Path\Here\Project.apXX"));

    if (project != null)

    {

        try

        {

         Console.WriteLine("Project Name: " + project.Name);

        }

        finally

        {

        project.Close();

        }

    }

}

Programmcode für ein UMAC-geschütztes Projekt

Sie können auch ein UMAC-geschütztes Projekt öffnen, das mit einer Vorgängerversion von TIA Portal angelegt wurde. Eine Überladungsfunktion von OpenWithUpgrade benötigt einen zusätzlichen Parameter vom Typ UmacDelegate. OpenWithUpgrade wird auch bei sekundären Projekten unterstützt.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private static void UMACProtectedProject(UmacDelegate MyUmacDelegate)

{

    // Refer Connecting to the TIA Portal section

    TiaPortal tiaPortal = new TiaPortal();

    Siemens.Engineering.Project project = tiaPortal.Projects.OpenWithUpgrade(new

    FileInfo(@"D:\Project_1\Project.apXX"), MyUmacDelegate);

}