Voraussetzung
-
Die TIA Portal Openness-Anwendung ist mit dem TIA Portal verbunden.
Siehe Verbindung zum TIA Portal herstellen -
Ein Projekt ist geöffnet.
Siehe Öffnen eines Projekts -
Ein Projekt ist gespeichert.
Siehe Projekt speichern
Einleitung
Mit TIA Portal Openness können Sie den Zustand des geöffneten und gespeicherten Projekts vor dem Durchführen weiterer Änderungen archivieren und später das archivierte Projekt abrufen.
Projekt archivieren
Sie können ein TIA Portal-Projekt mit der am Objekt Siemens.Engineering.Project verfügbaren TIA Openness API archivieren.
|
public void Archive(System.IO.DirectoryInfo targetDirectory, string targetName, Siemens.Engineering.ProjectArchivationMode archivationMode) |
'targetName' ist der Name der erstellten Datei, unabhängig davon, ob sie archiviert oder nicht archiviert ist. Diese Datei kann Dateierweiterungen oder keine Dateierweiterungen enthalten. Für den Wert ProjectArchivationMode als Compressed und DiscardRestorableDataAndCompressed, lautet der archivierte Dateiname wie von Ihnen angegeben. Wenn Sie keine Erweiterung oder außer "zap15_1" bzw. "zap14" usw. keine Erweiterung angeben, kann dieses archivierte Projekt nicht außerhalb der Openness API vom TIA Portal abgerufen werden. Wenn Sie weder Compressed noch DiscardRestorableDataAndCompressed wählen, ist das Ergebnis die Standarddateistruktur eines Projekts der aktuellen Version.
|
Hinweis Sie müssen das Projekt vor dem Aufrufen der Archivierungs-API speichern. Falls das Projekt nicht gespeicherte Änderungen enthält, löst das Archiv eine EngineeringTargetInvocationException aus. |
ProjectArchivationMode
Die Enumeration ProjectArchivationMode hat vier Werte.
|
ProjectArchivationMode |
Beschreibung |
|---|---|
|
None |
|
|
DiscardRestorableData |
|
|
Compressed |
|
|
DiscardRestorableDataAndCompressed |
|
Programmcode: Projekt archivieren
Ändern Sie den folgenden Programmcode, um ohne Erweiterung auf das Archivprojekt zuzugreifen:
|
public void ArchivingProjectWithoutExtension() { var tiaPortal = new TiaPortal(TiaPortalMode.WithoutUserInterface); var projectFilePath = @"E:\Sample1\Sample1.ap15_1"; var project = tiaPortal.Projects.Open(new FileInfo(projectFilePath)); var archiveDirectory = @"E:\Archive"; project.Archive(new DirectoryInfo(archiveDirectory), "ArchiveProjectNameWithoutExtension", ProjectArchivationMode.Compressed); } |
Ändern Sie den folgenden Programmcode, um mit der Erweiterung '.archive' auf das Archivprojekt zuzugreifen:
|
public void ArchivingProjectWithExtension() { var tiaPortal = new TiaPortal(TiaPortalMode.WithoutUserInterface); var projectFilePath = @"E:\Sample1\Sample1.ap15_1"; var project = tiaPortal.Projects.Open(new FileInfo(projectFilePath)); var archiveDirectory = @"E:\Archive"; project.Archive(new DirectoryInfo (archiveDirectory), "ArchiveProjectName.archive", ProjectArchivationMode.Compressed); } |
|
Hinweis Sie können jede beliebige Erweiterung verwenden. Das Verhalten des Archivs ist mit und ohne Erweiterung identisch. |
Projekt abrufen
Über die Openness API können Sie ein archiviertes TIA Portal-Projekt abrufen. Der Abruf ist nur mit einem komprimierten Archiv möglich. Bei archivierten Projekten mit 'ProjectArchivationMode.None' oder 'ProjectArchivationMode.DiscardRestorableData' kann der Enumerationswert nicht von dieser API abgerufen werden. Diese API ist am Objekt "Siemens.Engineering.ProjectComposition" verfügbar.
|
public Siemens.Engineering.Project Retrieve(System.IO.FileInfo sourcePath, System.IO.DirectoryInfo targetDirectory) |
Zum Abrufen eines UMAC-geschützten Projekts steht zum Abfragen der Anmeldedaten eine überlastete API mit UmacDelegate bereit. Dann wird die folgende Definition verwendet:
|
public Siemens.Engineering.Project Retrieve(System.IO.FileInfo sourcePath, System.IO.DirectoryInfo targetDirectory, Siemens.Engineering.UmacDelegate umacDelegate) |
Beim Abrufen wird außerdem ProjectOpenMode unterstützt, für das "Primary" oder "Secondary" angegeben werden kann. Dann wird die folgende API-Definition verwendet:
|
public Siemens.Engineering.Project Retrieve(System.IO.FileInfo sourcePath, System.IO.DirectoryInfo targetDirectory,Siemens.Engineering.UmacDelegate umacDelegate, Siemens.Engineering.ProjectOpenMode projectOpenMode) |
|
Hinweis UmacDelegate kann als null übergeben werden, wenn das Projekt nicht geschützt ist. |
Wenn das archivierte Projekt aus einer früheren TIA Portal-Version stammt, müssen Sie die RetrieveWithUpgrade API, aufrufen. Dann wird die folgende API-Definition verwendet:
|
public Siemens.Engineering.Project RetrieveWithUpgrade(System.IO.FileInfo sourcePath, System.IO.DirectoryInfo targetDirectory); |
Wenn das archivierte Projekt aus einer früheren TIA Portal-Version stammt und UMAC-geschützt ist, steht eine andere überlastete API mit UmacDelegate zur Verfügung. Dann wird die folgende API-Definition verwendet:
|
public Siemens.Engineering.Project RetrieveWithUpgrade(System.IO.FileInfo sourcePath, System.IO.DirectoryInfo targetDirectory, Siemens.Engineering.UmacDelegate umacDelegate) |
Wenn das archivierte Projekt aus einer früheren TIA Portal-Version stammt und auch der Projektöffnungsmodus angegeben werden muss, wird die folgende API-Definition verwendet:
|
public Siemens.Engineering.Project RetrieveWithUpgrade(System.IO.FileInfo sourcePath, System.IO.DirectoryInfo targetDirectory,Siemens.Engineering.UmacDelegate umacDelegate, Siemens.Engineering.ProjectOpenMode projectOpenMode) |
|
Hinweis UmacDelegate kann als null übergeben werden, wenn das Projekt nicht geschützt ist. Wenn das Projekt geschützt ist, sind die Benutzerdaten eines Administrators erforderlich, um die Aktion RetrieveWithUpgrade durchzuführen. |
Programmcode: Projekt abrufen
Um auf das abzurufende Projekt zuzugreifen, ändern Sie folgenden Programmcode:
|
public void RetrieveProject() { var archivePath = @"E:\Archive\Sample1.zap15_1"; var retrievedProjectsDirectory = @"E:\RetrievedProjects"; var tiaPortal = new TiaPortal(TiaPortalMode.WithoutUserInterface); tiaPortal.Projects.Retrieve(new FileInfo(archivePath), new DirectoryInfo(retrievedProjectsDirectory)); } |