Einzelnes Objekt in einen Workspace exportieren - 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
Einzelnes Objekt in einen Workspace exportieren

Voraussetzung

Einleitung

Sie können mit TIA Portal Openness ein einzelnes Objekt in einen konfigurierten Workspace exportieren und ein MappedObject erstellen.

Methodenname

Rückgabetypen

Beschreibung

ExportObject()

MappedObject

Exportiert die VCI unterstützenden einzelnen Objekte in den Workspace und erstellt ein MappedObject.

Die Methode ExportObject() akzeptiert die folgenden Parameter:

Parametername

Datentyp

Beschreibung

engineeringObject

IEngineeringObject

Das Engineering-Objekt, das in einem Workspace verbunden werden soll. Stellen Sie sicher, dass es sich nicht um ein Zusammensetzungs- oder Assoziationsobjekt handelt.

relativeWorkspaceDirectoryPath

DirectoryInfo

Der Pfad des Ordners relativ zum Stammverzeichnis des Ordners. Wenn es keinen relativen Ordnerpfad gibt, verwenden Sie new DirectoryInfo(@"\")".
Geben Sie andernfalls nur relative Ordner als "new DirectoryInfo(@"\\PLC_1\Program blocks")" an.

fileNameWithoutExtension

string

Der Name einer oder mehrerer Dateien, die einem Engineering-Objekt zugeordnet werden sollen, jedoch ohne Erweiterung.

fileFormat

string

Der Name des Dateiformats, das verwendet werden soll, um diese Datei(en) einem Engineering-Objekt zuzuordnen. Verwenden Sie die Methode GetSupportedFileFormats, um nach allen unterstützten Dateiformaten für ein Objekt zu suchen, wie SimaticML, Scl usw.

Ausnahme

Unter den folgenden Bedingungen wird eine EngineeringTargetInvocationException ausgelöst:

  • Das EngineeringObject ist als Null angegeben oder ungültig.

  • Das angegebene EngineeringObject ist eine Zusammensetzung oder Assoziation (z.B. BlockGroup).

  • Das EngineeringObject ist know-how-geschützt oder inkonsistent.

  • Der angegebene RelativeWorkspaceDirectoryPath ist Null oder enthält ungültige Zeichen.

  • Der FilePath (RootPath + RelativeWorkspaceDirectoryPath + ObjectName) überschreitet die maximale Länge (muss weniger als 256 Zeichen lang sein).

  • Der FileNameWithoutExtension ist als Null oder Leerwert angegeben oder enthält ungültige Zeichen.

  • Das angegebene Format ist ungültig.

Programmcode

Zum Exportieren des einzelnen Objekts in den Workspace, indem Sie die folgenden gültigen Parameter angeben.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

private void ExpotIndividualObject()

{

...

    // Program Block Engineering Object

    PlcBlock block = GetPlcSoftware(device)?.BlockGroup.Blocks.Find("Block_1");

    //RelativeWorkspaceDirectory Path is the path of the engineering object

    // relative to the configured workspace path.

    // if workspace rootpath is "D:\\VCIWorkspace" and

    // "user wants to export the engineering object on to the root path",

    // user is expected to provide the RelativeWorkspaceDirectory parameter as following:

    DirectoryInfo relativeWorkspaceDirectory = new DirectoryInfo(@"\");

    // If workspace rootpath is "D:\\VCIWorkspace" and

    // "user wants to export the Engineering object to specific relative directory",

    // user can provide the RelativeWorkspaceDirectory parameter as following:

    DirectoryInfo relativeWorkspaceDirectory = new DirectoryInfo(@"\PLC_1\Program blocks");

    //fileNameWithoutExtension

    string fileNameWithoutExtension="Block_1";

    //Version Control Interface

    var versionControlInterface = project.GetService<VersionControlInterface>();

    Workspace workspace = versionControlInterface.WorkspaceGroup.Workspaces.First();

    // Get Supported File Format

    IEnumerable<string> fileFormat = workspace.GetSupportedFileFormats(block);

    // Export Object to workspace

    MappedObject exportedObject= workspace.

    ExportObject(block, relativeWorkspaceDirectory, fileNameWithoutExtension, fileFormat[0]);

}