Voraussetzungen
-
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
Um alle aggregierten Bilder aller benutzerdefinierten Ordner eines HMI-Geräts zu exportieren, ist ein anderer Programmcode erforderlich.
Programmcode: Alle Bilder eines Geräts exportieren
Um die Bilder eines benutzerdefinierten Bilderordners eines HMI-Geräts und den Bildersystemordner zu exportieren, ä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 ExportAllScreensOfHMIDevice { internal class Program { private static void Main(string[] args) { ... } private static void ExportAllScreensOfDevice(string rootPath, HmiTarget hmiTarget) { DirectoryInfo info = new DirectoryInfo(rootPath); info.Create(); // Export the ScreenFolder recursive string screenPath = Path.Combine(rootPath, "Screens"); info = new DirectoryInfo(screenPath); info.Create(); ExportScreens(screenPath, hmiTarget); } // Export the screens of a user-defined screen folder of an HMI device and the screen system folder private static void ExportScreensOfDevice(HmiTarget hmiTarget) { ScreenUserFolder folder = hmiTarget.ScreenFolder.Folders.Find("MyScreenFolder"); //or ScreenSystemFolder folder = hmiTarget.ScreenFolder; ScreenComposition screens = folder.Screens; foreach(Screen screen in screens) { FileInfo info = new FileInfo(string.Format(@"D:\Samples\Screens\{0}\{1}.xml", folder.Name, screen.Name)); screen.Export(info, ExportOptions.WithDefaults); } } // Exporting all screens of a device independent of the user public static void ExportScreens(string screenPath, HmiTarget target) { foreach(Screen screen in target.ScreenFolder.Screens) { screen.Export(new FileInfo(Path.Combine(screenPath, screen.Name + ".xml")), ExportOptions.WithDefaults); } foreach(ScreenUserFolder subfolder in target.ScreenFolder.Folders) { ExportScreenUserFolder(Path.Combine(screenPath, folder.Name), subfolder.Name); } } private static void ExportScreenUserFolder(string screenPath,ScreenUserFolder folder ) { foreach(Screen screen in folder.Screens) { screen.Export(new FileInfo(Path.Combine(screenPath, screen.Name + ".xml")), ExportOptions.WithDefaults); } foreach(ScreenUserFolder subfolder in folder.Folders) { ExportScreenUserFolder(Path.Combine(screenPath, subfolder.Name), subfolder); } } } } |