Voraussetzung
-
Die TIA Portal Openness-Anwendung ist mit dem TIA Portal verbunden.
Siehe Verbindung zum TIA Portal aufbauen -
Ein Projekt ist geöffnet.
Siehe Projekt öffnen
Einleitung
Die folgenden Daten einer Bildvorlage werden importiert:
|
Bildvorlage |
Daten |
|---|---|
|
Attribute |
ActiveLayer, BackColor, Height, Width, Name, SetTabOrderInFront |
|
Zusammensetzungen |
|
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:
|
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); } } } |