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:
|
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
|
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.
|
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
|
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:
|
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.