Bibliothek archivieren und abrufen - 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
Bibliothek archivieren und abrufen

Voraussetzung

Einleitung

Sie können mit TIA Portal Openness geöffnete und gespeicherte globale Bibliotheken archivieren, bevor weitere Änderungen daran vorgenommen werden. Auf diese Weise verhindern Sie unbeabsichtigte Änderungen und können die archivierte Bibliothek später wieder über TIA Portal Openness abrufen. Außerdem können Sie die archivierte Datei problemlos im Netzwerk teilen.

Bibliothek archivieren

Über die Schnittstelle TIA Portal Openness API können Sie eine globale Anwenderbibliothek archivieren. Die API ist am Objekt Siemens.Engineering.UserGlobalLibrary verfügbar.

Die API-Definition lautet wie folgt:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

public void Archive(System.IO.DirectoryInfo targetDirectory, string targetName, Siemens.Engineering.Library.LibraryArchivationMode

archivationMode)

Hierbei ist targetName der Name der Datei, die für die archivierten oder nicht-archivierten Bibliotheken erstellt wurde. Diese Datei kann Dateierweiterungen oder keine Dateierweiterungen enthalten. Wenn Sie keine Erweiterung oder eine andere Erweiterung als "zalx" oder "zal14" usw. angeben, kann die archivierte Datei nicht außerhalb der Openness API aus dem TIA Portal abgerufen werden.
Wenn der Wert für LibraryArchivationMode mit Compressed und DiscardRestorableDataAndCompressed angegeben wird, ist der Name der archivierten Datei identisch mit dem von Ihnen bereitgestellten Namen. Bei den Werten None und DiscardRestorableData für LibraryArchivationMode wird die Erweiterung der Bibliotheksdatei automatisch von der Komponente Project Manager des TIA Portals anhand der aktuellen Version des TIA Portals festgelegt.

Hinweis

Sie müssen die Bibliothek vor dem Aufrufen der Archivierungs-API speichern. Falls die Bibliothek nicht gespeicherte Änderungen enthält, löst das Archiv eine EngineeringTargetInvocationException aus.

Archivierungsmodus der Bibliothek

Für die Enumeration LibraryArchivationMode (Archivierungsmodus der Bibliothek) können vier Werte angegeben werden.

LibraryArchivationMode

Beschreibung

None

  • Mit den Originaldateien werden keine speziellen Aktionen durchgeführt. Der Modus ähnelt dem Vorgang "Speichern unter".

  • In diesem Modus wird keine komprimierte ZIP-Datei erstellt.

  • Der Unterschied zu SaveAs besteht in diesem Fall darin, dass das Archiv den persistenten Speicherort nicht auf den neuen Ordner Archived umstellt, was jedoch bei SaveAs der Fall ist.

DiscardRestorableData

  • Bei der Dateispeicherung wird die Bibliothek in einer internen Datendatei abgelegt. Diese Datei wird anschließend bei jeder Änderung an den Bibliotheksdaten größer. Beim Modus DiscardRestorableData wird diese Datendatei reorganisiert (dabei wird nur die neueste Version der Objekte gespeichert und der Verlauf aus der Datei gelöscht). Zwischenzeitlich angefallene Daten, die Dateien des IM-Verzeichnisses und des Verzeichnisses tmp (siehe Struktur der Bibliotheksverzeichnisse) werden nicht an den Archiv-Speicherort kopiert.

  • In diesem Modus wird keine komprimierte ZIP-Datei erstellt.

Compressed

Die vom Archivierungsprozess erstellte Struktur des TMP-Bibliotheksordners wird zu einem ZIP-kompatiblen Archiv komprimiert. Nach Erstellung der ZIP-Datei wird die TMP-Ordnerstruktur gelöscht.

DiscardRestorableDataAndCompressed

Die vom Archivierungsprozess erstellte Struktur des TMP-Bibliotheksordners verwirft die wiederherstellbaren Daten und wird dann zu einem ZIP-kompatiblen Archiv komprimiert. Nach Erstellung der ZIP-Datei wird die TMP-Ordnerstruktur gelöscht.

Programmcode: Bibliothek archivieren

Ändern Sie folgenden Programmcode, um eine globale Anwenderbibliothek zu archivieren:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

var tiaPortal = new TiaPortal(TiaPortalMode.WithoutUserInterface);

//Please adapt the path and the extension alx to the installed version of TIA Portal 

var libraryFilePath = @"E:\Sample1\Sample1.alx";

var userGlobalLibrary = tiaPortal.GlobalLibraries.Open(new FileInfo(LibraryFilePath), OpenMode.ReadWrite);

var archivePath = @"E:\Archive";

var archiveFileName = "SampleArchive";

userGlobalLibrary.Archive(new DirectoryInfo(archivePath), archiveFileName, LibraryArchivationMode.Compressed);

Bibliothek abrufen

Über die Schnittstelle TIA Portal Openness API können Sie eine archivierte TIA Portal-Bibliothek abrufen. Der Abruf ist nur mit einem komprimierten Archiv möglich. Die API ist am Objekt

Siemens.Engineering.GlobalLibraryComposition verfügbar.

Die API-Definition lautet wie folgt:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

public Siemens.Engineering.Library.UserGlobalLibrary Retrieve(System.IO.FileInfo sourcePath, System.IO.DirectoryInfo targetDirectory, Siemens.Engineering.OpenMode openMode)

Hinweis

Es ist nicht möglich, archivierte Bibliotheken mit den Enumerationswerten 'LibraryArchivationMode.None' oder 'LibraryArchivationMode.DiscardRestorableData' abzurufen.

Durch Aufrufen von RetrieveWithUpgrade API stellen Sie die archivierte Bibliothek einer früheren TIA Portal-Version wieder her. Die API-Definition lautet wie folgt:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

public Siemens.Engineering.Library.UserGlobalLibrary RetrieveWithUpgrade(System.IO.FileInfo sourcePath, System.IO.DirectoryInfo

targetDirectory, Siemens.Engineering.OpenMode openMode)

Öffnungsmodus

Die Enumeration OpenMode weist zwei Werte auf:

OpenMode

Beschreibung

ReadMode

Lesezugriff auf die Bibliothek. Daten können aus der Bibliothek gelesen werden.

ReadWrite

Schreibzugriff auf die Bibliothek. Daten können in die Bibliothek geschrieben werden.

Programmcode: Bibliothek abrufen

Ändern Sie den folgenden Programmcode, um eine Bibliothek abzurufen:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

//Please adapt the path and the extension zalx to the installed version of TIA Portal

var archivePath = @"E:\Archive\Sample1.zalx";

var retrievedLibraryDirectory = @"E:\RetrievedLibraries";

var tiaPortal = new TiaPortal(TiaPortalMode.WithoutUserInterface);

tiaPortal.GlobalLibraries.Retrieve(new FileInfo(archivePath), new DirectoryInfo(retrievedLibraryDirectory), OpenMode.ReadWrite));