Bildvorlagen importieren - 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
Bildvorlagen importieren

Voraussetzung

Einleitung

Die folgenden Daten einer Bildvorlage werden importiert:

Bildvorlage

Daten

Attribute

ActiveLayer, BackColor, Height, Width, Name, SetTabOrderInFront

Zusammensetzungen

  • Layers

  • Animations
    Alle für Bilder konfigurierbaren Animationen werden importiert.

  • Softkeys
    Alle für Softkeys konfigurierbaren Animationen werden importiert.

Für jede Schicht werden die folgenden Daten importiert:

Schicht

Daten

Attribute

Name, Index

Zusammensetzungen

ScreenItems (mit Bildelementen)

Wenn die Breite und Höhe einer Bildvorlage nicht den Abmessungen des Geräts entsprechen, wird der Importvorgang abgebrochen und eine Exception ausgelöst. Die Anpassung der enthaltenen Bildelemente wird nicht unterstützt. Aus diesem Grund können sich bestimmte Bildelemente außerhalb der Bildgrenzen befinden. In diesem Fall wird eine Compilerwarnung ausgegeben.

Die Anordnung der Geräteelemente in der Bildvorlage muss eindeutig und lückenlos sein. Aus diesem Grund wird nach dem Import der Bildvorlage eine Konsistenzprüfung durchgeführt, bei der die Anordnung gegebenenfalls repariert wird. Dieser Vorgang kann bei bestimmten Bildelementen zu geänderten „Tabindizes" führen.

Programmcode: Allgemeiner Import

Um mit der For each-Schleife alle Bildvorlagen in ein HMI-Gerät zu importieren, ändern Sie folgenden Programmcode:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

using System;

using Siemens.Engineering;

using Siemens.Engineering.HW;

using Siemens.Engineering.HW.Features;

using Siemens.Engineering.SW;

using Siemens.Engineering.SW.Blocks;

using Siemens.Engineering.SW.ExternalSources;

using Siemens.Engineering.SW.Tags;

using Siemens.Engineering.SW.Types;

using Siemens.Engineering.Hmi;

using HmiTarget = Siemens.Engineering.Hmi.HmiTarget;

using Siemens.Engineering.Hmi.Tag;

using Siemens.Engineering.Hmi.Screen;

using Siemens.Engineering.Hmi.Cycle;

using Siemens.Engineering.Hmi.Communication;

using Siemens.Engineering.Hmi.Globalization;

using Siemens.Engineering.Hmi.TextGraphicList;

using Siemens.Engineering.Hmi.RuntimeScripting;

using System.Collections.Generic;

using Siemens.Engineering.Compiler;

using Siemens.Engineering.Library;

using System.IO;

using System.Security;

namespace ImportingScreenTemplates

{

internal class Program

{

//Imports screen templates to an HMI device

private static void ImportScreenTemplatesToHMITarget(HmiTarget hmiTarget)

{

ScreenTemplateUserFolder folder = hmiTarget.ScreenTemplateFolder.Folders.Find("MyTemplateFolder");

// or ScreenTemplateSystemFolder folder = hmiTarget.ScreenTemplateFolder;

FileInfo[] exportedTemplates = new FileInfo[] {new FileInfo(@"D:\Samples\Import\Template_1.xml"), new

FileInfo(@"D:\Samples\Import\Template_n.xml")};

foreach (FileInfo templateFileName in exportedTemplates)

{

folder.ScreenTemplates.Import(templateFileName, ImportOptions.Override);

}

}

//Imports screen templates to a user folder of an HMI device

private static void ImportScreenTemplatesToFolderOfHMITarget(HmiTarget hmiTarget)

{

ScreenTemplateUserFolder screenTemplateFolder = hmiTarget.ScreenTemplateFolder.Folders.Find("MyTemplateFolder");

ScreenTemplateUserFolder folder = screenTemplateFolder.Folders.Create("MyNewFolder");

folder.ScreenTemplates.Import(new FileInfo(@"D:\Samples\Import\ScreenTemplate.xml"), ImportOptions.Override);

}

}

}