Click here to load reader

Projekte über Skripte automatisieren...Projekte über Skripte automatisieren Systemhandbuch Ausdruck der Online-Hilfe 1 Liesmich 2 Was ist neu in Openness V13 SP1? 3 Hinweise zum

  • View
    15

  • Download
    0

Embed Size (px)

Text of Projekte über Skripte automatisieren...Projekte über Skripte automatisieren Systemhandbuch...

  • Projekte über Skripte automatisieren

    Systemhandbuch

    Ausdruck der Online-Hilfe

    1

    Liesmich 2Was ist neu in Openness V13 SP1? 3Hinweise zum Hochrüsten auf Openness V13 SP1 4

    Einführung 5

    Konfigurationen 6

    Grundlagen 7

    Public API 8

    Export/Import 9

  • Rechtliche HinweiseWarnhinweiskonzept

    Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie zur Vermeidung von Sachschäden beachten müssen. Die Hinweise zu Ihrer persönlichen Sicherheit sind durch ein Warndreieck hervorgehoben, Hinweise zu alleinigen Sachschäden stehen ohne Warndreieck. Je nach Gefährdungsstufe werden die Warnhinweise in abnehmender Reihenfolge wie folgt dargestellt.

    GEFAHRbedeutet, dass Tod oder schwere Körperverletzung eintreten wird, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.

    WARNUNGbedeutet, dass Tod oder schwere Körperverletzung eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.

    VORSICHTbedeutet, dass eine leichte Körperverletzung eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.

    ACHTUNGbedeutet, dass Sachschaden eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.Beim Auftreten mehrerer Gefährdungsstufen wird immer der Warnhinweis zur jeweils höchsten Stufe verwendet. Wenn in einem Warnhinweis mit dem Warndreieck vor Personenschäden gewarnt wird, dann kann im selben Warnhinweis zusätzlich eine Warnung vor Sachschäden angefügt sein.

    Qualifiziertes PersonalDas zu dieser Dokumentation zugehörige Produkt/System darf nur von für die jeweilige Aufgabenstellung qualifiziertem Personal gehandhabt werden unter Beachtung der für die jeweilige Aufgabenstellung zugehörigen Dokumentation, insbesondere der darin enthaltenen Sicherheits- und Warnhinweise. Qualifiziertes Personal ist auf Grund seiner Ausbildung und Erfahrung befähigt, im Umgang mit diesen Produkten/Systemen Risiken zu erkennen und mögliche Gefährdungen zu vermeiden.

    Bestimmungsgemäßer Gebrauch von Siemens-ProduktenBeachten Sie Folgendes:

    WARNUNGSiemens-Produkte dürfen nur für die im Katalog und in der zugehörigen technischen Dokumentation vorgesehenen Einsatzfälle verwendet werden. Falls Fremdprodukte und -komponenten zum Einsatz kommen, müssen diese von Siemens empfohlen bzw. zugelassen sein. Der einwandfreie und sichere Betrieb der Produkte setzt sachgemäßen Transport, sachgemäße Lagerung, Aufstellung, Montage, Installation, Inbetriebnahme, Bedienung und Instandhaltung voraus. Die zulässigen Umgebungsbedingungen müssen eingehalten werden. Hinweise in den zugehörigen Dokumentationen müssen beachtet werden.

    MarkenAlle mit dem Schutzrechtsvermerk ® gekennzeichneten Bezeichnungen sind eingetragene Marken der Siemens AG. Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch Dritte für deren Zwecke die Rechte der Inhaber verletzen kann.

    HaftungsausschlussWir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und Software geprüft. Dennoch können Abweichungen nicht ausgeschlossen werden, so dass wir für die vollständige Übereinstimmung keine Gewähr übernehmen. Die Angaben in dieser Druckschrift werden regelmäßig überprüft, notwendige Korrekturen sind in den nachfolgenden Auflagen enthalten.

    Siemens AGDivision Digital FactoryPostfach 48 4890026 NÜRNBERGDEUTSCHLAND

    Ⓟ 05/2015 Änderungen vorbehalten

    Copyright © Siemens AG .Alle Rechte vorbehalten

  • Inhaltsverzeichnis

    1 ......................................................................................................................................................................9

    2 Liesmich.....................................................................................................................................................11

    3 Was ist neu in Openness V13 SP1?..........................................................................................................13

    4 Hinweise zum Hochrüsten auf Openness V13 SP1...................................................................................15

    5 Einführung..................................................................................................................................................17

    6 Konfigurationen..........................................................................................................................................19

    7 Grundlagen.................................................................................................................................................23

    7.1 Voraussetzungen für TIA Portal Openness V13 SP1............................................................23

    7.2 Installation..............................................................................................................................247.2.1 TIA Portal Openness V13 SP1 installieren............................................................................247.2.2 Benutzer der Benutzergruppe "Siemens TIA Openness" hinzufügen....................................287.2.3 Auf das TIA Portal zugreifen..................................................................................................337.2.4 Enabler-File und Usage-File..................................................................................................34

    7.3 Aufgaben von Openness........................................................................................................357.3.1 Einsatzmöglichkeiten.............................................................................................................357.3.2 Export/Import..........................................................................................................................36

    7.4 Objektliste..............................................................................................................................36

    7.5 Standard-Bibliotheken............................................................................................................41

    7.6 Hinweise zur Performance von TIA Portal Openness V13 SP1.............................................41

    8 Public API...................................................................................................................................................43

    8.1 Einleitung...............................................................................................................................43

    8.2 Programmierschritte...............................................................................................................44

    8.3 Openness-Objektmodell.........................................................................................................45

    8.4 Hierarchie von Hardware-Objekten des Objektmodells.........................................................49

    8.5 Beispielprogramm..................................................................................................................51

    8.6 Einsatz der Codebeispiele.....................................................................................................56

    8.7 Allgemeine Funktionen...........................................................................................................598.7.1 Verbindung zum TIA Portal aufbauen....................................................................................598.7.2 Event-Handler........................................................................................................................658.7.3 Gleichzeitiger Zugriff auf Projekte..........................................................................................678.7.4 Dialoge mit Systemmeldungen programmgesteuert bestätigen............................................688.7.5 Verbindung zum TIA Portal beenden.....................................................................................71

    8.8 Funktionen auf Projekte/Projektdaten....................................................................................718.8.1 Projekt öffnen.........................................................................................................................718.8.2 Alle Geräte enumerieren........................................................................................................738.8.3 Alle Geräteelemente enumerieren.........................................................................................75

    Projekte über Skripte automatisierenSystemhandbuch 3

  • 8.8.4 Objektstruktur und -Attribute ermitteln...................................................................................778.8.5 Alle Subnetze enumerieren....................................................................................................798.8.6 Alle mit einem Subnetz verbundenen Geräte enumerieren...................................................808.8.7 Editor "Geräte & Netze" öffnen..............................................................................................808.8.8 PLC-Target und HMI-Target abfragen...................................................................................828.8.9 Systemordner für PLC-Variablen abfragen............................................................................838.8.10 Benutzerdefinierte Ordner für PLC-Variablen enumerieren...................................................848.8.11 PLC-Variablen enumerieren...................................................................................................868.8.12 PLC-Variablentabellen in einem Ordner enumerieren...........................................................878.8.13 Informationen einer PLC-Variablentabelle abfragen..............................................................888.8.14 Projekt übersetzen.................................................................................................................888.8.15 Funktionen auf Bibliotheken...................................................................................................918.8.15.1 Funktionen auf Objekte und Instanzen..................................................................................918.8.15.2 Auf Bibliotheken zugreifen.....................................................................................................928.8.15.3 Auf Ordner in einer Bibliothek zugreifen................................................................................938.8.15.4 Auf Typen zugreifen...............................................................................................................958.8.15.5 Auf Typ-Versionen zugreifen..................................................................................................968.8.15.6 Auf Instanzen zugreifen.......................................................................................................1018.8.15.7 Auf Kopiervorlagen zugreifen...............................................................................................1038.8.15.8 Kopiervorlage kopieren........................................................................................................1048.8.15.9 Inhalt einer Kopiervorlage ins Projekt kopieren....................................................................1068.8.15.10 Typ-Versionen von Instanzen ermitteln................................................................................1088.8.15.11 Projekt aktualisieren.............................................................................................................1118.8.15.12 Bibliothek aktualisieren........................................................................................................1148.8.15.13 Bibliotheksinhalte löschen....................................................................................................1168.8.16 Projektgrafik löschen............................................................................................................1198.8.17 Projekt speichern.................................................................................................................1208.8.18 Status einer PLC ermitteln...................................................................................................1218.8.19 Geräte vergleichen...............................................................................................................1228.8.20 Auf Parameter einer Online-Verbindung zugreifen..............................................................1258.8.21 Online-Verbindung zur PLC aufbauen oder trennen............................................................1288.8.22 Projekt schließen..................................................................................................................1298.8.23 Netzwerkinformationen abfragen.........................................................................................1308.8.24 Mastersystem-Parameter abfragen......................................................................................133

    8.9 Funktionen auf Daten eines HMI-Gerätes............................................................................1348.9.1 Bilder....................................................................................................................................1348.9.1.1 Benutzerdefinierte Bildordner erzeugen...............................................................................1348.9.1.2 Bild aus einem Ordner löschen............................................................................................1348.9.1.3 Bildvorlage aus einem Ordner löschen................................................................................1358.9.1.4 Alle Bilder aus einem Ordner löschen..................................................................................1368.9.2 Zyklen...................................................................................................................................1378.9.2.1 Zyklus löschen.....................................................................................................................1378.9.3 Textlisten..............................................................................................................................1388.9.3.1 Textliste löschen..................................................................................................................1388.9.4 Grafiklisten...........................................................................................................................1398.9.4.1 Grafikliste löschen................................................................................................................1398.9.5 Verbindungen.......................................................................................................................1408.9.5.1 Verbindung löschen.............................................................................................................1408.9.6 Variablentabelle...................................................................................................................1418.9.6.1 Variablentabelle aus einem Ordner löschen........................................................................1418.9.6.2 Benutzerdefinierte Ordner für HMI-Variablen erzeugen.......................................................1418.9.6.3 Variablen einer HMI-Variablentabelle enumerieren.............................................................142

    Inhaltsverzeichnis

    Projekte über Skripte automatisieren4 Systemhandbuch

  • 8.9.6.4 Einzelne Variable aus einer HMI-Variablentabelle löschen.................................................1438.9.7 VB-Skripte............................................................................................................................1438.9.7.1 Benutzerdefinierte Skriptunterordner erzeugen...................................................................1438.9.7.2 VB-Skript aus einem Ordner löschen...................................................................................144

    8.10 Funktionen auf Daten eines PLC-Gerätes...........................................................................1458.10.1 Bausteine.............................................................................................................................1458.10.1.1 Ordner "Programmbausteine" abfragen...............................................................................1458.10.1.2 Benutzerdefinierte Bausteinordner enumerieren.................................................................1458.10.1.3 Alle Bausteine enumerieren.................................................................................................1478.10.1.4 Informationen eines Bausteins/Anwenderdatentyps abfragen.............................................1488.10.1.5 Baustein löschen..................................................................................................................1498.10.1.6 Anwenderdatentyp löschen..................................................................................................1508.10.1.7 Gruppe für Bausteine erzeugen...........................................................................................1518.10.1.8 Quelle aus Baustein generieren...........................................................................................1528.10.1.9 Gruppe für Bausteine löschen..............................................................................................1538.10.1.10 Systemordner für Systembausteine abfragen......................................................................1548.10.1.11 Systemunterordner enumerieren.........................................................................................1558.10.1.12 Externe Datei hinzufügen.....................................................................................................1568.10.1.13 Bausteine aus externer Datei generieren.............................................................................1578.10.1.14 Externe Datei löschen..........................................................................................................1588.10.1.15 Bausteineditor starten..........................................................................................................1588.10.2 Variablentabellen.................................................................................................................1598.10.2.1 Benutzerdefinierte Ordner für PLC-Variablen erzeugen......................................................1598.10.2.2 Benutzerdefinierte Ordner für PLC-Variablen löschen.........................................................1608.10.2.3 PLC-Variablentabelle aus einem Ordner löschen................................................................1618.10.2.4 Einzelne Variable aus einer PLC-Variablentabelle löschen.................................................1618.10.2.5 Editor "Variablen" starten.....................................................................................................1628.10.2.6 Zeit der letzen Änderungen einer PLC-Variablentabelle lesen............................................163

    8.11 Grundkonzepte.....................................................................................................................1648.11.1 Umgang mit Exceptions.......................................................................................................1648.11.2 Arbeiten mit Assoziationen...................................................................................................1658.11.3 Arbeiten mit Aggregationen..................................................................................................1668.11.4 Objektgleichheit prüfen........................................................................................................1678.11.5 Lese-Operationen für Attribute.............................................................................................168

    9 Export/Import............................................................................................................................................171

    9.1 Überblick..............................................................................................................................1719.1.1 Grundlagen zum Import/Export............................................................................................1719.1.2 Einsatzgebiet von Import/Export..........................................................................................1739.1.3 Aufbau einer XML-Datei.......................................................................................................1749.1.4 Struktur der Daten für Import/Export....................................................................................1769.1.5 Bearbeiten der XML-Datei....................................................................................................1809.1.6 Export/Import von Grafiken..................................................................................................1819.1.7 Export von Projektierungsdaten...........................................................................................1829.1.8 Import von Projektierungsdaten...........................................................................................184

    9.2 Import/Export von Projektdaten............................................................................................1859.2.1 Grafiken................................................................................................................................1859.2.1.1 Grafiken eines Projektes exportieren...................................................................................1859.2.1.2 Grafiken in ein Projekt importieren.......................................................................................186

    9.3 Import/Export von Daten eines HMI-Geräts.........................................................................187

    Inhaltsverzeichnis

    Projekte über Skripte automatisierenSystemhandbuch 5

  • 9.3.1 Zyklen...................................................................................................................................1879.3.1.1 Zyklen exportieren................................................................................................................1879.3.1.2 Zyklen importieren................................................................................................................1889.3.2 Variablentabellen.................................................................................................................1899.3.2.1 HMI-Variablentabellen exportieren.......................................................................................1899.3.2.2 HMI-Variablentabelle importieren.........................................................................................1929.3.2.3 Einzelne Variable einer HMI-Variablentabelle exportieren...................................................1929.3.2.4 Einzelne Variable in eine HMI-Variablentabelle importieren................................................1939.3.2.5 Besonderheiten beim Export/Import von HMI-Variablen......................................................1949.3.3 VB-Skripte............................................................................................................................1969.3.3.1 VB-Skripte exportieren.........................................................................................................1969.3.3.2 VB-Skripte aus einem Ordner exportieren...........................................................................1979.3.3.3 VB-Skripte importieren.........................................................................................................1989.3.4 Textlisten..............................................................................................................................1999.3.4.1 Textlisten aus einem HMI-Gerät exportieren.......................................................................1999.3.4.2 Textliste in ein HMI-Gerät importieren.................................................................................2009.3.4.3 Erweiterte XML-Formate für Export/Import von Textlisten...................................................2019.3.5 Grafiklisten...........................................................................................................................2029.3.5.1 Grafiklisten exportieren........................................................................................................2029.3.5.2 Grafikliste importieren..........................................................................................................2039.3.6 Verbindungen.......................................................................................................................2049.3.6.1 Verbindungen exportieren....................................................................................................2049.3.6.2 Verbindungen importieren....................................................................................................2059.3.7 Bilder....................................................................................................................................2069.3.7.1 Übersicht der exportierbaren Bild-Objekte...........................................................................2069.3.7.2 Alle Bilder eines HMI-Geräts exportieren.............................................................................2109.3.7.3 Bild aus einem Bildordner exportieren.................................................................................2119.3.7.4 Bilder in ein HMI-Gerät importieren......................................................................................2139.3.7.5 Permanentfenster exportieren..............................................................................................2169.3.7.6 Permanentfenster importieren..............................................................................................2179.3.7.7 Bildvorlagen aus einem Ordner exportieren.........................................................................2189.3.7.8 Alle Bildvorlagen eines HMI-Geräts exportieren..................................................................2209.3.7.9 Bildvorlagen importieren......................................................................................................221

    9.4 Import/Export von Daten eines PLC-Geräts.........................................................................2239.4.1 Bausteine.............................................................................................................................2239.4.1.1 Bausteine und Anwenderdatentypen exportieren................................................................2239.4.1.2 Bausteine mit Know-how-Schutz exportieren......................................................................2269.4.1.3 F-Bausteine exportieren.......................................................................................................2279.4.1.4 System-Bausteine exportieren.............................................................................................2279.4.1.5 Baustein importieren............................................................................................................2289.4.1.6 Anwenderdatentyp importieren............................................................................................2309.4.2 Variablentabellen.................................................................................................................2319.4.2.1 PLC-Variablentabellen exportieren......................................................................................2319.4.2.2 PLC-Variablentabelle importieren........................................................................................2339.4.2.3 Einzelne Variable einer PLC-Variablentabelle exportieren..................................................2339.4.2.4 Einzelne Variable in eine PLC-Variablentabelle importieren................................................235

    Index.........................................................................................................................................................237

    Tabellen

    Inhaltsverzeichnis

    Projekte über Skripte automatisieren6 Systemhandbuch

  • Tabelle 7-1 Bilder...........................................................................................................................................36Tabelle 7-2 Bildobjekte...................................................................................................................................37Tabelle 7-3 Dynamik......................................................................................................................................39Tabelle 7-4 Weitere Objekte...........................................................................................................................39Tabelle 7-5 Variablen.....................................................................................................................................39Tabelle 7-6 Listen...........................................................................................................................................40Tabelle 7-7 Texte...........................................................................................................................................40Tabelle 9-1 Projekte.....................................................................................................................................171Tabelle 9-2 PLC...........................................................................................................................................171Tabelle 9-3 HMI............................................................................................................................................172Tabelle 9-4 Unterstützte Bilder.....................................................................................................................206Tabelle 9-5 Unterstützte Bild-Objekte..........................................................................................................207

    Bilder

    Bild 9-1 Zusammenhang zwischen der WinCC-Oberfläche und der XML-Struktur................................179Bild 9-2 Zusammenhang zwischen den Einstellungen in WinCC und der XML-Struktur.......................180

    Inhaltsverzeichnis

    Projekte über Skripte automatisierenSystemhandbuch 7

  • Inhaltsverzeichnis

    Projekte über Skripte automatisieren8 Systemhandbuch

  • 1

    Projekte über Skripte automatisierenSystemhandbuch 9

  • Projekte über Skripte automatisieren10 Systemhandbuch

  • Liesmich 2Kopieren von Openness

    Wenn Sie eine Openness-Anwendung kopieren, kann unter Umständen trotzdem noch der Verzeichnispfad ausgelesen werden, in dem die Openness-Anwendung ursprünglich erstellt wurde.

    Abhilfe:

    Wenn Sie die Openness-Anwendung in ein neues Verzeichnis kopiert haben, öffnen Sie z. B. den Eigenschaftsdialog und schließen den Eigenschaftsdialog gleich wieder.

    Durch diese Aktion wird der Windows-Cache aktualisiert.

    Weitere Hinweise finden Sie unter: http://support.microsoft.com/kb/2987926 (http://support.microsoft.com/kb/2987926)

    Fehlerhafter Import von VariablenWenn Sie folgende Sonderzeichen im Namen von Variablen oder referenzierten Variablen verwenden, dann ist der Import von Variablen fehlerhaft:

    ● . (Punkt)

    ● \ (Backlslash)

    Abhilfe 1:

    Überprüfen Sie vor einem Export, dass im Namen der zu exportierenden Variablen oder referenzierten Variable kein Punkt oder Backslash enthalten ist.

    Abhilfe 2:

    Klammern Sie in der Import-Datei die Namen von Variablen oder referenzierte Variablen aus.

    Beispiel

    ● Variablenname mit Sonderzeichen:

    Siemens.Simatic.Hmi.Utah.Tag.HmiTag:41000_Options_Time_Date\DB_SFX0908_HMI1.Actual_Date_Time.Hour

    ● Ausgeklammerter Varablenname mit Sonderzeichen:"Siemens.Simatic.Hmi.Utah.Tag.HmiTag:41000_Options_Time_Date\DB_SFX0908_HMI1.Actual_Date_Time.Hour"

    Projekte über Skripte automatisierenSystemhandbuch 11

    http://support.microsoft.com/kb/2987926http://support.microsoft.com/kb/2987926

  • Liesmich

    Projekte über Skripte automatisieren12 Systemhandbuch

  • Was ist neu in Openness V13 SP1? 3Zugriff auf Bibliotheken

    Mit Openness V13 SP1 können Sie auf die folgenden Inhalte der Projektbibliothek und globalen Bibliotheken zugreifen:

    ● Typen

    ● Typ-Versionen

    ● Kopiervorlagen

    Insbesondere können Sie Verwendungen von Typ-Versionen in oder von anderen Typ-Versionen ermitteln. Sie können die Instanzen einer Typ-Version ermitteln und neue Instanzen von ausgewählten Typ-Versionen erzeugen.

    Bibliotheken synchronisierenMit Openness V13 SP1 können Sie globale Bibliotheken mit der Projektbibliothek synchronisieren. Beim Synchronisieren werden veraltete Typ-Versionen in der Projektbibliothek durch die aktuellste Typ-Version aus einer globalen Bibliothek ersetzt. Sie können den gesamten Inhalt einer Bibliothek synchronisieren oder einzelne Typ-Versionen oder Typ-Ordner auswählen und synchronisieren.

    Instanzen aktualisierenMit Openness V13 SP1 können Sie die Instanzen von Typ-Versionen im Projekt auf Basis der letzten freigegebenen Typ-Version aktualisieren. Wenn Sie die Aktualisierung der Instanzen von einer globalen Bibliothek aus starten, wird zuvor eine Synchronisation ausgeführt.

    Zugriff auf Online-Verbindung zu einer PLCMit Openness V13 SP1 können Sie auf die Online-Verbindung zu einer PLC zugreifen:

    ● Status der Online-Verbindung ermitteln

    ● Verbindungsparameter setzen

    ● Online-Verbindung aufbauen

    ● Online-Verbindung trennen

    Zusätzlich können Sie die in eine PLC geladenen Daten mit den Projektierungsdaten vergleichen.

    Projekte über Skripte automatisierenSystemhandbuch 13

  • Änderungen beim Export und ImportDer Funktionsumfang beim Export und Import wurde erweitert:

    ● Die Bildobjekt-Eigenschaften, die das verbesserte Design der Benutzeroberfläche unterstützen, werden erfasst.

    ● Alle Kommunikationstreiber für HMI-Verbindungen, außer SINUMERIK und SIMOTION, werden erfasst.

    Hinweis: Der Export und Import unterstützt ausschließlich absolute Pfadangaben, z. B. "C:\Export\Screens.xml".

    Verbindungsanfrage einer Openness-AnwendungWenn eine Openness-Anwendung auf ein TIA-Portal zugreift, muss der Benutzer den Zugriff bestätigen. Der Benutzer kann jede Openness-Anwendung in eine Whitelist aufnehmen. Wenn eine Openness-Anwendung einmal in die Whitelist aufgenommen ist, werden keine Verbindungsanfragen mehr ausgeführt.

    Detailliertere ExceptionsDamit Sie auf unterschiedliche Fehlertypen besser reagieren können, wurden die Exceptions wie folgt erweitert:

    ● Sicherheitsrelevante Exceptions (EngineeringSecurityException)

    ● Exceptions beim Zugriff auf Objekte (EngineeringObjectDisposedException)

    ● Exceptions beim Zugriff auf Attribute (EngineeringNotSupportedException)

    ● Allgemeine Exceptions beim Aufruf (EngineeringTargetInvocationException)

    ● Exceptions aus Runtime (EngineeringRuntimeException)

    ● Exceptions durch Anwender, z.B. durch Abbruch eines Imports (EngineeringUserAbortException)

    Weiterführende Informationen finden Sie unter Umgang mit Exceptions (Seite 164).

    Quelle aus Baustein generierenMit Openness V13 SP1 können Sie jetzt auch die Quelle aus Bausteinen mit der Programmiersprache "AWL" generieren.

    Siehe auchHinweise zum Hochrüsten auf Openness V13 SP1 (Seite 15)

    Was ist neu in Openness V13 SP1?

    Projekte über Skripte automatisieren14 Systemhandbuch

  • Hinweise zum Hochrüsten auf Openness V13 SP1 4Einleitung

    In Openness V13 SP1 wurden folgende Änderungen durchgeführt, die Auswirkungen auf ihre bestehenden Applikationen haben können:

    Änderung Notwendige Programmcode-AnpassungDer Installationspfad der "Openness V13 SP 1" wurde ange‐passt. Die Datei "Siemens.Engineering.dll" wird in folgendem Verzeichnis abgelegt: ● \PublicAPI\V13 SP 1

    Wenn Sie zum Starten des TIA-Portals eine Anwendungs‐konfigurationsdatei verwenden: ● Ändern Sie in der Anwendungskonfigurationsdatei unter

    den Pfad zur Datei "Siemens.Engineering.dll" wie folgt: – href="FILE://\PublicAPI\V13 SP

    1\Siemens.Engineering.dll"Weiterführende Informationen zu diesem Thema finden Sie unter Verbindung zum TIA Portal aufbauen (Seite 59).

    Wenn Sie zum Starten des TIA-Portals die Technik "Assembl‐yResolve" verwenden:1. Aktualisieren Sie in Ihrer Entwicklungsumgebung den

    Verweis auf die Datei "Siemens.Engineering.dll".2. Übersetzen Sie die Applikation.

    Die Objekte ControllerTag und ControllerConstant sind nun im Namespace Siemens.Engineering.SW ent‐halten.

    1. Fügen Sie den Namespace Siemens.Engineering.SW hinzu.

    2. Übersetzen Sie die Applikation. Der Namespace für den Zugriff auf Bibliotheken wurde geän‐dert.

    1. Ersetzen Sie den Namespace Siemens.Engineering.GlobalLibrary durch Siemens.Engineering.Library.

    2. Übersetzen Sie die Applikation. Die Methode Close zum Schließen eines Projekts ist überla‐den.

    Keine. Empfehlung: Verwenden Sie die Methode Close mit dem Parameter CloseMode. Weiterführende Informationen finden Sie unter Projekt schlie‐ßen (Seite 129).

    Die engineering exceptions wurden erweitert. Keine.Empfehlung: Damit Sie auf unterschiedliche Fehlertypen bes‐ser reagieren können, verwenden Sie die neu implementier‐ten Erweiterungen. Weiterführende Informationen finden Sie unter Umgang mit Exceptions (Seite 164).

    Siehe auchWas ist neu in Openness V13 SP1? (Seite 13)

    Projekte über Skripte automatisierenSystemhandbuch 15

  • Hinweise zum Hochrüsten auf Openness V13 SP1

    Projekte über Skripte automatisieren16 Systemhandbuch

  • Einführung 5Einleitung

    TIA Portal Openness V13 SP1 beschreibt offen gelegte Schnittstellen zum Engineering mit dem TIA Portal V13 SP1.

    Mit TIA Portal Openness V13 SP1 automatisieren Sie das Engineering, indem Sie aus einem von Ihnen erstellten Programm heraus das TIA Portal fremd steuern.

    Mit TIA Portal Openness V13 SP1 können Sie folgende Aktionen durchführen:

    ● Projektdaten erzeugen

    ● Projekte und Projektdaten modifizieren

    ● Projektdaten löschen

    ● Projektdaten einlesen

    ● Projekte und Projektdaten für andere Anwendungen bereitstellen.

    Hinweis

    Siemens übernimmt keine Haftung oder Gewährleistung dafür, dass die über diese Schnittstellen transportierten Daten und Informationen kompatibel zu Software Dritter sind.

    Wir weisen ausdrücklich darauf hin, dass es bei unsachgemäßer Nutzung der Schnittstellen zu Datenverlust oder Produktionsausfall kommen kann.

    Hinweis

    Die in dieser Dokumentation enthaltenen Programmcodes sind in der C#-Syntax formuliert.

    Wegen der Kürze der verwendeten Codebeispiele wird zum größten Teil auf die Beschreibung der Fehlerbehandlung verzichtet.

    AnwendungSie nutzen die Openness-Schnittstellen folgendermaßen:

    ● Sie stellen Projektdaten bereit.

    ● Sie greifen auf den TIA Portal-Prozess zu.

    ● Sie nutzen Projektdaten.

    Nutzen von Vorgaben aus dem Vorfeld des Automatisierungs-Engineering● Über den Import von extern erzeugten Daten

    ● Über die Fernsteuerung des TIA Portals zur Erzeugung von Projekten

    Bereitstellen von Projektdaten des TIA Portals für externe Anwendungen● Über den Export von Projektdaten

    Projekte über Skripte automatisierenSystemhandbuch 17

  • Sichern von Wettbewerbsvorteilen durch effizientes Engineering● Bereits vorhandene Engineering-Daten müssen Sie nicht im TIA Portal projektieren.

    ● Automatisierte Engineering-Abläufe ersetzen manuelles Engineering.

    ● Geringer Engineering-Aufwand stärkt die Angebotsposition gegenüber Wettbewerber.

    Gemeinsam an Projektdaten arbeiten● Prüf-Routinen und Massendatenbearbeitung sind parallel zur laufenden Projektierung

    möglich.

    Siehe auchKonfigurationen (Seite 19)

    Einführung

    Projekte über Skripte automatisieren18 Systemhandbuch

  • Konfigurationen 6Mit TIA Portal Openness V13 SP1 können Sie mit zwei Varianten arbeiten:

    Anwendung und TIA Portal sind auf verschiedenen PCs

    ● Die Daten werden über XML-Dateien ausgetauscht. Die XML-Dateien können von Ihren Programmen exportiert oder importiert werden.

    ● Vom TIA Portal-Projekt auf PC2 exportierte Daten können Sie auf PC1 verändern und wieder importieren.

    Hinweis

    Sie müssen für PC2 ein ausführbares Programm "Ihr Programm 2" entwickeln, z. B. "programm2.exe". Das TIA Portal läuft mit diesem Programm im Hintergrund.

    Import und Export von XML-Dateien laufen ausschließlich über die Public API.

    ● Ausgetauschte Dateien können Sie zu Nachweiszwecken archivieren.

    ● Ausgetauschte Daten können Sie an unterschiedlichen Orten und zu unterschiedlicher Zeit bearbeiten.

    Projekte über Skripte automatisierenSystemhandbuch 19

  • Anwendung und TIA Portal sind auf demselben PC

    ● Ihr Programm startet das TIA Portal entweder mit oder ohne Bedienoberfläche. Ihr Programm öffnet, speichert und/oder schließt ein Projekt. Alternativ kann sich das Programm auch mit einem laufenden TIA Portal verbinden.

    ● Um die Projektdaten zu erfragen, generieren, modifizieren oder Import- und Exportvorgänge anzustoßen, nutzen Sie die Funktionalität des TIA Portals.

    ● Die Daten werden unter Kontrolle der TIA Portal-Verarbeitung erzeugt und in den Projektdaten abgelegt.

    Konfigurationen

    Projekte über Skripte automatisieren20 Systemhandbuch

  • Typische Anwendung im Modularen Maschinenbau

    ● Ähnliche Maschinen sollen effizient automatisiert werden.

    ● Im TIA Portal ist ein Projekt vorhanden, das die Bestandteile aller Maschinenvariationen enthält.

    ● Das Generator-Tool steuert die Erstellung des Projekts zu einer konkreten Maschinenvariation.

    ● Das Generator-Tool erhält Vorgaben über Einlesen der Parameter zu der gewünschten Maschinenvariation.

    ● Das Generator-Tool leitet die relevanten Teile aus dem Gesamtprojekt des TIA Portals aus, modifiziert diese Teile bei Bedarf und erzeugt das gewünschte Maschinenprojekt.

    Konfigurationen

    Projekte über Skripte automatisierenSystemhandbuch 21

  • Konfigurationen

    Projekte über Skripte automatisieren22 Systemhandbuch

  • Grundlagen 77.1 Voraussetzungen für TIA Portal Openness V13 SP1

    Voraussetzungen für das Nutzen von Openness-Anwendungen● Ein auf dem TIA Portal basierendes Produkt ist auf dem PC installiert, z. B. "STEP 7

    Professional" oder "WinCC Professional".

    ● Das Optionspaket "TIA Portal Openness V13 SP1" ist auf dem PC installiert. Siehe TIA Portal Openness V13 SP1 installieren (Seite 24)

    Unterstützte Windows-BetriebssystemeDie folgende Tabelle zeigt, welche Kombinationen von Windows-Betriebssystem, TIA-Portal und Benutzeranwendung zueinander kompatibel sind:

    Windows-Betriebssystem TIA Portal Benutzeranwendung32 Bit 32 Bit 32 Bit und "AnyCPU"64 Bit 32 WoW 32 Bit, 64 Bit und "AnyCPU"64 Bit 64 Bit 32 Bit, 64 Bit und "AnyCPU"

    Voraussetzungen für das Programmieren von Openness-Anwendungen● Microsoft Visual Studio 2010 oder 2012 oder höher mit .Net 4.0, 32-bit Applikation ist auf

    dem PC installiert.

    Erforderliches Knowhow des Anwenders ● Kenntnisse als System Engineer

    ● Fortgeschrittene Kenntnisse von Microsoft Visual Studio 2010 oder 2012

    ● Fortgeschrittene Kenntnisse von C# / VB.net und .Net

    ● Anwenderwissen vom TIA Portal

    Siehe auchBenutzer der Benutzergruppe "Siemens TIA Openness" hinzufügen (Seite 28)

    Projekte über Skripte automatisierenSystemhandbuch 23

  • 7.2 Installation

    7.2.1 TIA Portal Openness V13 SP1 installieren

    EinleitungDie Installation des Optionspakets "TIA Portal Openness V13 SP1" wird durch ein Setup-Programm automatisch durchgeführt.

    Die Installationsdatei "Siemens_TIA_Openness_V13_SP1.exe" ist ein selbstextrahierendes Archiv und befindet sich auf der Produkt-DVD im Verzeichnis "Support".

    Voraussetzungen● Hardware und Software des PG/PC entsprechen den Systemanforderungen.

    ● Sie haben Administratorrechte.

    ● Laufende Programme sind beendet.

    ● Autorun ist deaktiviert.

    ● WinCC V13 SP1 und/oder STEP 7 V13 SP1 sind installiert.

    ● Die Versionsnummer des Optionspakets "TIA Portal Openness" stimmt mit den Versionsnummern von WinCC und STEP 7 überein.

    HinweisPublic API - Openness V13 und Openness V13 SP1

    Wenn Sie Openness V13 SP1 installiert haben wird der Inhalt des Ordners "Public API" von Openness V13 mit "Public API" von Openness V13 SP1 überschrieben.

    Vorgehen

    Hinweis

    Das Optionspaket "TIA Portal Openness V13 SP1" können Sie erst nach der Installation des TIA Portals installieren.

    Um das Optionspaket zu installieren, gehen Sie folgendermaßen vor:

    1. Legen Sie den Installationsdatenträger in das entsprechende Laufwerk ein und wechseln Sie in das Verzeichnis "Support" .

    2. Doppelklicken Sie auf die Datei "Siemens_TIA_Openness_V13_SP1.exe".

    3. Wählen Sie Installationssprache aus.

    Grundlagen7.2 Installation

    Projekte über Skripte automatisieren24 Systemhandbuch

  • 4. Die Installationsdaten werden extrahiert. Nach dem Extrahieren wird das Setup von Openness gestartet. Folgender Setup-Dialog wird geöffnet:

    Grundlagen7.2 Installation

    Projekte über Skripte automatisierenSystemhandbuch 25

  • 5. Klicken Sie auf "Next" und wählen Sie die gewünschte Option aus.Folgende Optionen stehen Ihnen zur Verfügung:

    Grundlagen7.2 Installation

    Projekte über Skripte automatisieren26 Systemhandbuch

  • 6. Klicken Sie auf "Next" und wählen Sie das Produkt "TIA Portal Openness V13 SP1" aus.

    Ändern Sie bei Bedarf das Zielverzeichnis für die Installation und klicken Sie auf "Next".Beachten Sie, dass die Länge des Installationspfades 89 Zeichen nicht überschreiten darf.

    7. Akzeptieren Sie im nächsten Installationsschritt alle Lizenzvereinbarungen und klicken Sie auf "Next".Wenn die Installation des TIA Portals Sicherheits- und Rechteeinstellungen geändert werden müssen, wird der Dialog zu den Sicherheitseinstellungen geöffnet.

    8. Um die Installation fortzusetzen, akzeptieren Sie die Änderungen der Sicherheits- und Rechteeinstellungen und klicken Sie auf die Schaltfläche "Next".Im nächsten Dialog wird eine Übersicht der Installationseinstellungen angezeigt.

    Grundlagen7.2 Installation

    Projekte über Skripte automatisierenSystemhandbuch 27

  • 9. Überprüfen Sie die gewählten Installationseinstellungen und ändern Sie diese bei Bedarf.

    10.Um die Installation zu starten, klicken Sie auf die Schaltfläche "Install".Wenn die Installation erfolgreich war, wird eine entsprechende Meldung auf dem Bildschirm angezeigt. Bei einer fehlerhaften Installation wird eine Fehlermeldung eingeblendet, die Sie über die Art der aufgetretenen Fehler informiert.

    ErgebnisDas Optionspaket "TIA Portal Openness V13 SP1" wird auf dem PC installiert. Außerdem wird die lokale Benutzergruppe "Siemens TIA Openness" erzeugt.

    Hinweis

    Mit dem Optionspaket "TIA Portal Openness V13 SP1" haben Sie noch keinen Zugriff auf das TIA Portal. Abhängig von den Zugriffsrechten sind unterschiedliche Zugangsvoraussetzungen erforderlich (siehe Auto-Hotspot). Alternativ müssen Sie mindestens in der Benutzergruppe "Siemens TIA Openness" Mitglied sein (siehe Benutzer der Benutzergruppe "Siemens TIA Openness" hinzufügen (Seite 28)).

    7.2.2 Benutzer der Benutzergruppe "Siemens TIA Openness" hinzufügen

    EinleitungWenn Sie TIA Portal Openness V13 SP1 auf dem PC installieren, wird automatisch die Benutzergruppe "Siemens TIA Openness" angelegt.

    Wenn Sie mit Ihrer Openness-Anwendung auf das TIA Portal zugreifen, prüft das TIA Portal, ob Sie entweder direkt oder indirekt über eine andere Gruppe Mitglied der Benutzergruppe "Siemens TIA Openness" sind. Wenn Sie Mitglied der Benutzergruppe "Siemens TIA Openness" sind, startet die Openness-Anwendung und baut eine Verbindung zum TIA Portal auf.

    Vorgehen Sie fügen einen Benutzer der Benutzergruppe "Siemens TIA Openness" mit Anwendungen Ihres Betriebssystems hinzu. Das TIA Portal unterstützt diesen Vorgang nicht.

    Hinweis

    Je nach Konfiguration Ihrer Domain oder Ihres PCs werden für die Erweiterung einer Benutzergruppe die Administrator-Rechte benötigt.

    Grundlagen7.2 Installation

    Projekte über Skripte automatisieren28 Systemhandbuch

  • Bei dem Betriebssystem Windows 7 (englische Spracheinstellung) können Sie einen Benutzer zur Benutzergruppe folgendermaßen hinzufügen:

    1. Rufen Sie den Menüpfad "Start" > "Control Panel" auf.

    2. Doppelklicken Sie in der Systemsteuerung auf den Eintrag "Administrative Tools".

    3. Klicken Sie auf den Eintrag "Computer Management", um den gleichnamigen Konfigurationsdialog zu öffnen.

    Grundlagen7.2 Installation

    Projekte über Skripte automatisierenSystemhandbuch 29

  • 4. Markieren Sie "Local Users and Groups > Groups", um alle angelegten Benutzergruppen anzuzeigen.

    5. Wählen Sie rechts in der Liste der Benutzergruppen den Eintrag "Siemens TIA Openness" aus.

    Grundlagen7.2 Installation

    Projekte über Skripte automatisieren30 Systemhandbuch

  • 6. Wählen Sie den Menübefehl "Action > Add to Group...".

    Daraufhin öffnet sich der Eigenschaftsdialog der Benutzergruppe:

    Grundlagen7.2 Installation

    Projekte über Skripte automatisierenSystemhandbuch 31

  • 7. Klicken Sie auf die Schaltfläche "Add".Ein Auswahldialog mit den auswählbaren Benutzern wird geöffnet:

    8. Geben Sie einen gültigen Benutzernamen in das Eingabefeld ein.

    Hinweis

    Über die Schaltfläche "Check Names" können Sie überprüfen, ob der erfasste Benutzer ein gültiges Benutzerkonto dieser Domain oder dieses Computers besitzt.

    Das Feld "From this location" zeigt die Domain bzw. den Computernamen des erfassten Benutzernamens an. Weitere Informationen erhalten Sie von Ihrem Systemadministrator.

    9. Bestätigen Sie die Auswahl mit "OK".Der neue Benutzer wird im Eigenschaftsdialog der Benutzergruppe angezeigt.

    Weitere Benutzer erfassen Sie mithilfe der Schaltfläche "Add".

    Grundlagen7.2 Installation

    Projekte über Skripte automatisieren32 Systemhandbuch

  • 10.Klicken Sie anschließend auf "OK", um den Vorgang zu beenden.

    11.Damit die Änderungen wirksam werden, melden Sie sich am PC neu an.

    7.2.3 Auf das TIA Portal zugreifen

    Überblick

    Vorgehen1. Um auf das TIA Portal zuzugreifen und zu starten, richten Sie die Entwicklungsumgebung

    ein.

    2. Um das Portal zu starten, Instanziieren Sie in Ihrem Programm das Objekt der Portalanwendung.

    3. Suchen Sie das gewünschte Projekt und öffnen Sie es.

    4. Greifen Sie auf die Projektdaten zu.

    5. Schließen Sie das Projekt und beenden Sie das TIA Portal.

    Siehe auchVerbindung zum TIA Portal aufbauen (Seite 59)

    Verbindung zum TIA Portal beenden (Seite 71)

    Grundlagen7.2 Installation

    Projekte über Skripte automatisierenSystemhandbuch 33

  • 7.2.4 Enabler-File und Usage-File

    EinleitungDamit Sie Bausteine eines PLC-Geräts importieren können, benötigen Sie zwei Dateien:

    ● Enabler-File

    ● Usage-File

    Die Beschreibung zum Erhalt der beiden Dateien erhalten Sie in der Lieferfreigabe STEP 7 V13 SP1 jeweils am Ende des Beitrags unter der Überschrift "Informationsmaterial"

    Stichwort: TIA Portal Openness Anleitung EnablerFile/UsageFile: TIA Portal Openness Anleitung zu Enabler-File und Usage-File (http://support.automation.siemens.com/WW/view/de/103627307)

    Funktion der Dateien Enable-Files und Usage-FileEin Import und die Verwendung von Bausteinen eines PLC-Geräts ist an zwei verschiedene Dateien gebunden.

    Im Bausteine zu importieren benötigen Sie das "Enabler-File" und das "Usage-File". Damit sie auf dem selben PC den improtierten Baustein auch verwenden können, benötigen Sie das "Usage-File".

    Wenn Sie den importierten Baustein auf einem anderen PC kopieren und verwenden wollen, müssen Sie das "Usage-File" des kopierten Bausteins ebenfalls auf den anderen PC mitkopieren.

    Grundlagen7.2 Installation

    Projekte über Skripte automatisieren34 Systemhandbuch

    http://support.automation.siemens.com/WW/view/de/103627307http://support.automation.siemens.com/WW/view/de/103627307

  • 7.3 Aufgaben von Openness

    7.3.1 Einsatzmöglichkeiten

    EinleitungTIA Portal Openness V13 SP1 ermöglicht Ihnen verschiedene Zugriffe auf das TIA Portal und stellt Ihnen eine Auswahl von Funktionen für definierte Aufgaben zur Verfügung.

    Auf folgende Bereiche des TIA Portals greifen Sie über die Public API-Schnittstelle zu:

    ● Projektdaten

    ● PLC-Daten

    ● HMI-Daten

    Hinweis

    Über die Public API-Schnittstelle dürfen Sie keine Prüfungen vornehmen oder Daten erzeugen, die zu einer Abnahme einer fehlersicheren Anlage verwendet werden. Für eine Abnahme ist ausschließlich ein Sicherheitsausdruck über das Optionspaket STEP 7 Safety bzw. der Funktionstest geeignet. Die Public API-Schnittstelle ist kein Ersatz dafür.

    Zugriff auf das TIA PortalÜber TIA Portal Openness V13 SP1 stehen Ihnen verschieden Varianten zur Verfügung, auf das TIA Portal zuzugreifen. Sie erzeugen dabei eine externe TIA Portal-Instanz wahlweise mit oder ohne UI. Auch auf laufende TIA Portal-Prozesse können Sie parallel zugreifen.

    Zugriff auf Projekte und ProjektdatenBeim Zugriff auf Projekte und Projektdaten verwenden Sie TIA Portal Openness V13 SP1 hauptsächlich für folgende Aufgaben:

    ● Projekt schließen, öffnen und speichern

    ● Objekte enumerieren und abfragen

    ● Objekte anlegen

    ● Objekte löschen

    Grundlagen7.3 Aufgaben von Openness

    Projekte über Skripte automatisierenSystemhandbuch 35

  • 7.3.2 Export/Import

    EinleitungTIA Portal Openness V13 SP1 unterstützt den Import und Export von Projektdaten über XML-Dateien. Die Import/Export-Funktion ermöglicht das externe Projektieren von vorhandenen Engineering-Daten. Sie verwenden diese Funktion, um Ihren Engineering-Ablauf effektiv und fehlersicher zu machen.

    AnwendungSie nutzen die Import/Export-Funktion für folgende Zwecke:

    ● Datenaustausch

    ● Kopieren von Teilen eines Projekts

    ● Externe Bearbeitung von Projektierungsdaten, z. B. für Massendatenoperationen über Suchen und Ersetzen

    ● Externe Bearbeitung von Projektierungsdaten für neue Projekte auf Basis vorhandener Projektierungen

    ● Import von extern erzeugten Projektierungsdaten, z. B. Textlisten und Variablen

    ● Bereitstellung von Projektdaten für externe Anwendungen

    7.4 Objektliste

    EinleitungDie folgenden Tabellen zeigen die verfügbaren Objekte bis einschließlich Runtime Advanced und ob diese Objekte von Openness unterstützt werden.

    Runtime Professional sowie Geräte-Proxy-Daten werden von Openness in WinCC V13 SP1 nicht unterstützt.

    Objekte Abhängig vom Bediengerät können Sie folgende Projektdaten ansteuern:

    Tabelle 7-1 Bilder

    Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedBild ja ja ja ja ja jaGlobales Bild ja ja ja ja ja jaVorlagen ja ja ja ja ja jaPermanentfens‐ter

    nein ja ja ja ja ja

    Grundlagen7.4 Objektliste

    Projekte über Skripte automatisieren36 Systemhandbuch

  • Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedPop-up-Bild nein nein nein nein nein neinSlide-in-Bild nein nein nein nein nein nein

    Tabelle 7-2 Bildobjekte

    Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedLinie ja ja ja ja ja jaPolygonzug nein ja ja ja ja jaPolygon nein ja ja ja ja jaEllipse nein ja ja ja ja jaEllipsensegment nein nein nein nein nein neinKreissegment nein nein nein nein nein neinEllipsenbogen nein nein nein nein nein neinKamera-Anzeige nein nein nein nein nein neinKreisbogen nein nein nein nein nein neinKreis ja ja ja ja ja jaPDF-Anzeige nein nein nein nein nein neinRechteck ja ja ja ja ja jaVerbinder nein nein nein nein nein neinTextfeld ja ja ja ja ja jaGrafikanzeige ja ja ja ja ja jaRohr nein nein nein nein nein neinDoppel-T-Stück nein nein nein nein nein neinT-Stück nein nein nein nein nein neinRohrbogen nein nein nein nein nein neinE/A-Feld ja ja ja ja ja jaDatum/Uhrzeit-Feld

    ja ja ja ja ja ja

    Grafisches E/A-Feld

    ja ja ja ja ja ja

    Editierbares Textfeld

    nein nein nein nein nein nein

    Listenfeld nein nein nein nein nein neinKombinations‐feld

    nein nein nein nein nein nein

    Schaltfläche ja ja ja ja ja jaRundschaltflä‐che

    nein nein nein nein nein nein

    Leuchtdrucktas‐ter

    nein nein nein nein ja nein

    Schalter ja ja ja ja ja jaSymbolisches E/A-Feld

    ja ja ja ja ja ja

    Grundlagen7.4 Objektliste

    Projekte über Skripte automatisierenSystemhandbuch 37

  • Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedSchlüsselschal‐ter

    nein nein nein nein ja nein

    Balken ja ja ja ja ja jaSymbolbibliothek nein ja ja ja ja jaSchieberegler nein ja ja ja ja jaBildlaufleiste nein nein nein nein nein neinKontrollkästchen nein nein nein nein nein neinOptionsschaltflä‐chen

    nein nein nein nein nein nein

    Zeigerinstrument nein ja ja ja ja jaUhr nein ja ja ja ja jaSpeicherplatzan‐zeige

    nein nein nein nein nein nein

    Funktionstasten ja ja ja ja ja jaBildbaustein-In‐stanzen

    nein nein nein nein nein nein

    Bildfenster nein nein nein nein nein neinBenutzeranzeige ja ja ja ja ja jaHTML-Browser nein nein nein nein nein neinDruckauftrag / Skriptdiagnose

    nein nein nein nein nein nein

    Rezepturanzeige nein nein nein nein nein neinMeldeanzeige nein nein nein nein nein neinMeldeindikator nein nein nein nein nein neinMeldefenster nein nein nein nein nein neinf(x)-Kurvenan‐zeige

    nein nein nein nein nein nein

    f(t)-Kurvenanzei‐ge

    nein nein nein nein nein nein

    Tabellenanzeige nein nein nein nein nein neinWertetabelle nein nein nein nein nein neinMedia Player nein nein nein nein nein neinKanaldiagnose nein nein nein nein nein neinWLAN-Empfang nein nein nein nein nein neinZonen-Name nein nein nein nein nein neinZonen-Signal nein nein nein nein nein neinWirkbereichs-Name

    nein nein nein nein nein nein

    Wirkbereichs-Name (RFID)

    nein nein nein nein nein nein

    Wirkbereichs-Signal

    nein nein nein nein nein nein

    Ladezustand nein nein nein nein nein neinHandrad nein nein nein nein ja nein

    Grundlagen7.4 Objektliste

    Projekte über Skripte automatisieren38 Systemhandbuch

  • Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedHilfeindikator nein nein nein nein nein [email protected]‐zeige

    nein nein nein nein nein nein

    Status/Steuern nein nein nein nein nein neinSystem-Diagno‐seanzeige

    nein nein nein nein nein nein

    System-Diagno‐sefenster

    nein nein nein nein nein nein

    Tabelle 7-3 Dynamik

    Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedAnzeige ja ja ja ja ja jaBedienbarkeit nein ja ja ja ja jaSichtbarkeit ja ja ja ja ja jaBewegungen ja ja ja ja ja ja

    Tabelle 7-4 Weitere Objekte

    Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedGruppen ja ja ja ja ja jaSoftkeys ja ja ja ja ja jaZyklen ja ja ja ja ja jaVB Skripte nein ja ja ja ja jaFunktionslisten ja ja ja ja ja jaProjektgrafiken ja ja ja ja ja ja

    Tabelle 7-5 Variablen

    Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedMultiplex Vari‐ablen

    ja ja ja ja ja ja

    Arrays ja ja ja ja ja jaAnwenderda‐tentypen

    ja ja ja ja ja ja

    Internal nein ja ja ja ja jaVerwendungs‐stellen von elemtaren Da‐tentypen

    ja ja ja ja ja ja

    Grundlagen7.4 Objektliste

    Projekte über Skripte automatisierenSystemhandbuch 39

  • Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedVerwendungs‐stellen von An‐wenderdatenty‐pen

    ja ja ja ja ja ja

    Verwendungs‐stellen von Ar‐rays

    ja ja ja ja ja ja

    Zusätzlich unterstützt Openness alle Wertebereiche, die von den Kommunikationstreibern unterstützt werden.

    Verbindungen

    Openness unterstützt alle Verbindungen, die auch von den jeweiligen Bediengeräten unterstützt werden. Detaillierte Informationen dazu finden Sie in der Online-Hilfe des TIA-Portals unter "Prozesse visualisieren > Mit Steuerungen kommunizieren > Geräteabhängigkeit".

    Tabelle 7-6 Listen

    Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedTextlisten ja ja ja ja ja jaGrafiklisten ja ja ja ja ja ja

    Tabelle 7-7 Texte

    Objekt Basic Panels Panels Comfort Panels Multi Panels Mobile Panels RT AdvancedMehrsprachige Texte

    ja ja ja ja ja ja

    Formatierte Texte und de‐ren Verwen‐dungsstellen

    nein ja ja ja ja ja

    Grundlagen7.4 Objektliste

    Projekte über Skripte automatisieren40 Systemhandbuch

  • 7.5 Standard-BibliothekenDamit die Code-Beispiele funktionieren, fügen Sie am Anfang des entsprechenden Code-Beispiels folgende Namespace-Anweisungen ein:

    using System;using Siemens.Engineering;using Siemens.Engineering.HW;using Siemens.Engineering.SW;using Siemens.Engineering.Hmi;using ControllerTarget = Siemens.Engineering.HW.ControllerTarget;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.Online;using Siemens.Engineering.Compiler; //for Compiler related methodsusing Siemens.Engineering.Library;using Siemens.Engineering.Library.Types;using Siemens.Engineering.Library.MasterCopies;using Siemens.Engineering.Compare;using System.IO; //for certain export related methods

    7.6 Hinweise zur Performance von TIA Portal Openness V13 SP1

    Root-ObjekteIn Import-Dateien können Sie mehrere Root-Objekte angeben.

    Beispiel: Sie können mehrere Textlisten in einer XML-Datei statt einer Textliste pro XML-Datei anlegen.

    Openness-FunktionenWenn Sie eine Openness-Funktion zum ersten Mal aufrufen, kann der Aufruf länger dauern als die nachfolgenden Aufrufe der Openness-Funktion.

    Beispiel: Wenn Sie mehrere Exporte von Projektierungsdaten nacheinander ausführen, kann der erste Export länger dauern als die nachfolgenden Exporte.

    Grundlagen7.6 Hinweise zur Performance von TIA Portal Openness V13 SP1

    Projekte über Skripte automatisierenSystemhandbuch 41

  • Grundlagen7.6 Hinweise zur Performance von TIA Portal Openness V13 SP1

    Projekte über Skripte automatisieren42 Systemhandbuch

  • Public API 88.1 Einleitung

    ÜbersichtTIA Portal Openness unterstützt eine Auswahl von Funktionen für definierte Aufgaben, die Sie außerhalb vom TIA Portal über die Public API aufrufen können.

    HinweisPublic API - Openness V13 und Openness V13 SP1

    Wenn Sie Openness V13 SP1 installiert haben wird der Inhalt des Ordners "Public API" von Openness V13 mit "Public API" von Openness V13 SP1 überschrieben.

    Im Folgenden erhalten Sie eine Übersicht über die typischen Programmierschritte. Sie erfahren, wie die einzelnen Code-Abschnitte zusammenwirken und wie Sie die jeweiligen Funktionen in ein vollständiges Programm integrieren. Außerdem erhalten Sie einen Überblick, welche Code-Bestandteile für jede Aufgabe angepasst werden müssen.

    BeispielprogrammAnhand der Beispielfunktion "API-Zugriff in einer Konsolenapplikation erstellen" werden die einzelnen Programmierschritte erläutert. In diesen Programm-Code integrieren Sie die bereitgestellten Funktionen und passen die entsprechenden Code-Bestandteile für diese Aufgabe an.

    FunktionenIm folgenden Abschnitt sind die Funktionen für definierte Aufgaben gelistet, die Sie mit TIA Portal Openness außerhalb vom TIA Portal aufrufen können

    Siehe auchEinsatzmöglichkeiten (Seite 35)

    Objektliste (Seite 36)

    Projekte über Skripte automatisierenSystemhandbuch 43

  • 8.2 Programmierschritte

    ÜbersichtTIA Portal Openness erfordert für den Zugriff über die Public API folgende Programmierschritte:

    1. TIA Portal in Entwicklungsumgebung bekannt machen

    2. Programmzugriff auf TIA Portal einstellen

    3. Programmzugriff auf TIA Portal aktivieren

    4. TIA Portal bekannt machen und starten

    5. Projekt öffnen

    6. Befehle ausführen

    7. Projekt speichern und schließen

    8. Verbindung zum TIA Portal beenden

    HinweisZulässige Zeichenketten

    Im TIA Portal sind in Zeichenketten nur bestimmte Zeichen zulässig. Alle per Openness-Anwendung an das TIA-Portal übergebenen Zeichenketten unterliegen diesen Regeln. Wenn Sie in einem Parameter ein nicht zulässiges Zeichen übergeben, wird eine Exception ausgelöst.

    Siehe auchBeispielprogramm (Seite 51)

    Einsatz der Codebeispiele (Seite 56)

    Public API8.2 Programmierschritte

    Projekte über Skripte automatisieren44 Systemhandbuch

  • 8.3 Openness-Objektmodell

    ÜbersichtDie folgende Abbildung des Openness-Objektmodells stellt nur die verfügbaren Objekttypen dar. Die Auflistungen können Sie über IntelliSense ermitteln.

    ControllerTagUserFolder

    ControllerTagTable

    ControllerTag

    ControllerConstant

    ControllerTagSystemFolder

    SystemblockSystemFolder

    ScreenTemplateSystemFolder

    ScreenTemplateUserFolder

    ScreenTemplate

    ScreenGlobalElements

    ScreenOverview

    ExternalSourceSystemFolder

    ExternalSource

    SystemblockComponentFolder

    Project

    DeviceItem

    CodeBlock

    DataBlock

    Connection

    Cycle

    GraphicList

    TextList Tag

    Screen

    ScreenUserFolder

    ScreenSystemFolder

    TagTable

    TagSystemFolder

    TagUserFolder

    VBScriptSystemFolder

    VBScriptUserFolder

    VBScript

    CodeBlock

    DataBlock

    HmiTarget

    ControllerTarget

    NonProgrammableTarget

    ProgramblockSystemFolder

    ProgramblockUserFolder

    DeviceUserFolder

    Device

    MultiLingualGraphic

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    ControllerDatatype

    ControllerDatatypeUserFolder

    ControllerDatatypeFolder1

    MasterCopy

    MasterCopyUserFolder

    ProjectLibrary

    GlobalLibrary

    2

    3

    2

    MasterCopySystemFolder

    ILibraryType

    ILibraryTypeVersion

    LibraryTypeUserFolder

    LibraryTypeSystemFolder

    TIAPortal

    1 Nur eine Instanz erlaubt2 Import wird nur für die Programmiersprache AWL unterstützt. 3 Enthält dieselben Objekttypen wie "ProjectLibrary".

    Public API8.3 Openness-Objektmodell

    Projekte über Skripte automatisierenSystemhandbuch 45

  • Nur Export möglich

    Export und Import möglich

    Nur Import möglich

    Zugriff auf Objekte in AuflistungenUm ein Objekt in einer Auflistung zu adressieren, haben Sie folgende Möglichkeiten:

    ● Über den Index adressieren. Die Zählung innerhalb der Auflistungen beginnt bei 0. ● Methode Find verwenden.

    Mit dieser Methode adressieren Sie ein Objekt über dessen Namen. Die Methode können Sie auf eine Aggregation oder Auflistung anwenden. Die Methode Find ist nicht rekursiv. Beispiel: ScreenAggregation screens = folder.ScreensScreen screen = screens.Find("myScreen")

    ● Symbolischen Namen verwenden. Nur möglich bei Bausteinen mit symbolischer Adressierung.

    Public API8.3 Openness-Objektmodell

    Projekte über Skripte automatisieren46 Systemhandbuch

  • Zusammenhang zwischen TIA Portal und Openness-ObjektmodellDie folgende Abbildung zeigt den Zusammenhang zwischen dem Objektmodell und einem Projekt im TIA Portal:

    Project

    DeviceItem

    HmiTarget

    ControllerTarget

    NonProgrammableTarget

    DeviceUserFolder

    Device1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    2 2

    ① Das Objekt "Project" entspricht einem geöffneten Projekt im TIA Portal. ② Das Objekt "ControllerTarget" ist vom Typ "DeviceItem" ④ und entspricht einer PLC. Die Inhalte des Objekts

    entsprechen einer PLC in der Projektnavigation mit Zugriff auf Objekte wie Bausteine oder PLC-Variablen. ③ Das Objekt "HmiTarget" ist vom Typ "DeviceItem" ④ und entspricht einem Bediengerät. Die Inhalte des Objekts

    entsprechen einem Bediengerät in der Projektnavigation mit Zugriff auf Objekte wie Bilder oder HMI-Variablen.

    Public API8.3 Openness-Objektmodell

    Projekte über Skripte automatisierenSystemhandbuch 47

  • ④ Das Objekt "DeviceItem" entspricht einem Objekt im Editor "Geräte & Netze". Ein Objekt vom Typ "DeviceItem" kann sowohl ein Baugruppenträger als auch ein gestecktes Modul sein.

    ⑤ Das Objekt "NonProgrammableTarget" entspricht einem nicht programmierbaren Objekt im Editor "Geräte & Netze", z. B. einem Kommunikationsprozessor in einer dezentralen Peripherie.

    Siehe auchHierarchie von Hardware-Objekten des Objektmodells (Seite 49)

    Public API (Seite 43)

    Export/Import (Seite 171)

    Externe Datei hinzufügen (Seite 156)

    Grafiken eines Projektes exportieren (Seite 185)

    Bausteine und Anwenderdatentypen exportieren (Seite 223)

    System-Bausteine exportieren (Seite 227)

    PLC-Variablentabellen exportieren (Seite 231)

    PLC-Variablentabelle importieren (Seite 233)

    Einzelne Variable einer PLC-Variablentabelle exportieren (Seite 233)

    Einzelne Variable in eine PLC-Variablentabelle importieren (Seite 235)

    Verbindungen exportieren (Seite 204)

    Verbindungen importieren (Seite 205)

    Zyklen exportieren (Seite 187)

    Zyklen importieren (Seite 188)

    Grafiklisten exportieren (Seite 202)

    Grafikliste importieren (Seite 203)

    Textlisten aus einem HMI-Gerät exportieren (Seite 199)

    Textliste in ein HMI-Gerät importieren (Seite 200)

    VB-Skripte exportieren (Seite 196)

    VB-Skripte importieren (Seite 198)

    HMI-Variablentabellen exportieren (Seite 189)

    HMI-Variablentabelle importieren (Seite 192)

    Einzelne Variable einer HMI-Variablentabelle exportieren (Seite 192)

    Einzelne Variable in eine HMI-Variablentabelle importieren (Seite 193)

    Grafiken in ein Projekt importieren (Seite 186)

    Alle Bilder eines HMI-Geräts exportieren (Seite 210)

    Bilder in ein HMI-Gerät importieren (Seite 213)

    Bildvorlagen importieren (Seite 221)

    Public API8.3 Openness-Objektmodell

    Projekte über Skripte automatisieren48 Systemhandbuch

  • Bildvorlagen aus einem Ordner exportieren (Seite 218)

    Permanentfenster exportieren (Seite 216)

    Permanentfenster importieren (Seite 217)

    8.4 Hierarchie von Hardware-Objekten des Objektmodells

    Beziehung zwischen den sichtbaren Elementen im TIA Portal und den modellierten Elementen im Objektmodell

    Hardware-Objekt ErläuterungGerät (Device)

    Container-Objekt für eine zentrale oder dezentrale Konfiguration

    Geräteelement (IDeviceItem)

    Jedes Geräteelement-Objekt hat ein Container-Objekt. Das umgekehrte Verhältnis ist "Elemente".

    Internes Geräteelement (IInternalDeviceItem)

    Internes Gerät, das für einen TIA Portal-Benutzer nicht sichtbar vorhanden istAnwendungsbeispiel: Das ProfiNet-IO-Controller-Objekt bei den Submodulen.

    Bei den Geräteelement-Objekten ist das Container-Element-Verhältnis mit dem Verhältnis der Module vergleichbar.

    Beispiel: Ein Gerät enthält ein oder mehrere Steckplätze. Ein Steckplatz enthält Module. Ein Modul enthält Submodule.

    Dies ist das Verhältnis ähnlich der Darstellung in der Netzwerkanzeige und Geräteanzeige des TIA Portals. Das Attribut "PositionNumber" eines Geräteelement-Elements ist einzigartig im Bereich des Containers.

    Im Objektmodell ist das Eltern-Kind-Verhältnis zwischen Geräteelement-Objekten eine rein logische Beziehung. Ein Kind kann nicht ohne seine Eltern existieren.

    ● Wenn ein Submodul als Bestandteil eines Moduls (Kind) modelliert ist, kann das Submodul ohne das Modul nicht entfernt werden.

    ● Wenn Sie dem Modul ein Submodul hinzufügen und wieder entfernen, hat dieses Kind die gleichen Eltern wie das Modul.

    Die folgende Abbildung zeigt Folgendes:

    ● Links: Verhältnis zwischen Geräteelement-Objekten

    ● Rechts: Eltern-Kind-Verhältnis

    Public API8.4 Hierarchie von Hardware-Objekten des Objektmodells

    Projekte über Skripte automatisierenSystemhandbuch 49

  • Die folgende Abbildung zeigt ein HMI-Bediengerät mit einer "Runtime Advanced".

    Public API8.4 Hierarchie von Hardware-Objekten des Objektmodells

    Projekte über Skripte automatisieren50 Systemhandbuch

  • Über die Container-Elemente "ControllerTarget" und "HmiTarget" greifen Sie über das Openness-Objektmodell auf deren Objekte zu.

    Siehe auchPublic API (Seite 43)

    Export/Import (Seite 171)

    8.5 Beispielprogramm

    Anwendungsbeispiel: API-Zugriff in einer Applikation erstellen Im Folgenden ist der vollständige Programmcode des Anwendungsbeispiels dargestellt. Im Anschluss daran sind die typischen Programmierschritte anhand dieses Beispiels erklärt.

    Public API8.5 Beispielprogramm

    Projekte über Skripte automatisierenSystemhandbuch 51

  • Das Anwendungsbeispiel benötigt eine Anwendungskonfigurationsdatei (Seite 59).

    Public API8.5 Beispielprogramm

    Projekte über Skripte automatisieren52 Systemhandbuch

  • using System;using Siemens.Engineering;using Siemens.Engineering.HW;using Siemens.Engineering.SW;using Siemens.Engineering.Hmi;using HmiTarget = Siemens.Engineering.Hmi.HmiTarget;using ControllerTarget = Siemens.Engineering.HW.ControllerTarget;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; //for Compiler related methodsusing Siemens.Engineering.GlobalLibrary; //for global library and update check related methodsusing System.IO; //for certain export related methods namespace HelloTIA{ internal class Program { private static void Main(string[] args) { RunTiaPortal(); } private static void RunTiaPortal() { Console.WriteLine("Starting TIA Portal"); using (TiaPortal tiaPortal = new TiaPortal(TiaPortalMode.WithUserInterface)) { Console.WriteLine("TIA Portal has started"); ProjectAggregation projects = tiaPortal.Projects; Console.WriteLine("Opening Project..."); string projectPath = @"C:\Demo\AnyCompanyProject.ap13"; Project project = null; try { project = projects.Open(projectPath); } catch (Exception) { Console.WriteLine(String.Format("Could not open project {0}", projectPath)); Console.WriteLine("Demo complete hit enter to exit"); Console.ReadLine(); return; }

    Public API8.5 Beispielprogramm

    Projekte über Skripte automatisierenSystemhandbuch 53

  • Console.WriteLine(String.Format("Project {0} is open", project.Path)); IterateThroughDevices(project); project.Save(); project.Close(CloseMode.PromptIfModified); Console.WriteLine("Demo complete hit enter to exit"); Console.ReadLine(); } } private static void IterateThroughDevices(Project project) { if (project == null) { Console.WriteLine("Project cannot be null"); return; } Console.WriteLine(String.Format("Iterate through {0} device(s)", project.Devices.Count)); foreach (Device device in project.Devices) { Console.WriteLine(String.Format("Device: \"{0}\".", device.Name)); } Console.WriteLine(); } }}

    Vorgehen in Schritten

    1. TIA Portal in Entwicklungsumgebung bekannt machenErstellen Sie in Ihrer Entwicklungsumgebung eine Referenz auf alle "dll-Dateien" im Verzeichnis "C:\Program Files\Siemens\Automation\PortalV13\PublicAPI\V13 SP1".

    Im Folgenden wird dieser Vorgang exemplarisch für die Datei "Siemens.Engineering.dll" gezeigt.

    Die Datei "Siemens.Engineering.dll" finden Sie im Verzeichnis "C:\Program Files\Siemens\Automation\PortalV13\PublicAPI\V13 SP1". Erstellen Sie in Ihrer Entwicklungsumgebung eine Referenz auf die Datei "Siemens.Engineering.dll".

    Hinweis

    Achten Sie darauf, dass in den Eigenschaften der Referenz der Parameter "CopyLocal" mit dem Wert "False" belegt sein muss.

    Public API8.5 Beispielprogramm

    Projekte über Skripte automatisieren54 Systemhandbuch

  • 2. Machen Sie den Namespace für das TIA Portal bekanntFügen Sie folgenden Code hinzu:

    using Siemens.Engineering;

    3. TIA Portal bekannt machen und startenUm das TIA Portal bekannt zu machen und zu starten, fügen Sie folgenden Code ein:

    using (TiaPortal tiaPortal = new TiaPortal())

    4. Projekt öffnenUm ein Projekt zu öffnen, verwenden Sie beispielsweise folgenden Code:

    ProjectAggregation projects = tiaPortal.Projects; Console.WriteLine("Opening Project..."); string projectPath = @"C:\Demo\AnyCompanyProject.ap13";Project project = null;try{ project = projects.Open(projectPath);}catch (Exception){ Console.WriteLine(String.Format("Could not open project {0}", projectPath)); Console.WriteLine("Demo complete hit enter to exit"); Console.ReadLine(); return;} Console.WriteLine(String.Format("Project {0} is open", project.Path));

    Public API8.5 Beispielprogramm

    Projekte über Skripte automatisierenSystemhandbuch 55

  • 5. Geräte eines Projektes enumerierenUm alle Geräte des Projektes zu enumerieren, fügen Sie folgenden Code ein:

    static private void IterateThroughDevices(Project project) { if (project == null) { Console.WriteLine("Project cannot be null"); return; } Console.WriteLine(); Console.WriteLine(String.Format("Iterate through {0} device(s)", project.Devices.Count)); foreach (Device device in project.Devices) { Console.WriteLine(String.Format("Device: \"{0}\".", device.Name)); } Console.WriteLine(); }

    6. Projekt speichern und schließenUm das Projekt abschließend zu speichern und zu schließen, fügen Sie folgenden Code ein:

    project.Save();project.Close(CloseMode.PromptIfModified);

    8.6 Einsatz der Codebeispiele

    Aufbau der CodebeispieleJedes Codebeispiel in dieser Dokumentation ist als Funktion ohne Rückgabewert mit einer Objektreferenz als Übergabeparameter realisiert. Objekte des TIA Portals werden mithilfe der Methode Find über ihren Namen angesprochen.

    Public API8.6 Einsatz der Codebeispiele

    Projekte über Skripte automatisieren56 Systemhandbuch

  • Im folgenden Codebeispiel wird ein Bild "MyScreen" aus der Gruppe "myScreenFolder" gelöscht:

    private static void DeleteScreenFromFolder(HmiTarget hmitarget)//Deletes a single screen from a user folder or a system folder{ //Change the names according to the names in your project string screenName = "MyScreen"; ScreenUserFolder folder = hmitarget.ScreenFolder.Folders.Find("myScreenFolder"); //or ScreenSystemFolder folder = hmitarget.ScreenFolder; ScreenAggregation screens = folder.Screens; Screen screen = screens.Find(screenName); if (screen != null) { screens.Delete(screen); }}

    Um dieses Codebeispiel auszuführen, benötigten Sie Folgendes:

    ● Ein WinCC-Projekt mit einem Bediengerät, das eine Gruppe mit wenigstens einem Bild enthält

    ● Eine Funktion, die das Bediengerät instanziiert

    Hinweis

    Wenn Sie Verzeichnispfade angeben, verwenden Sie den absoluten Verzeichnispfad, z. B. "C:/path/file.txt".

    Relative Verzeichnispfade sind nur in den XML-Dateien für den Import und Export erlaubt, z. B. "file.txt" oder "C:/path01/.../path02/file.txt".

    Public API8.6 Einsatz der Codebeispiele

    Projekte über Skripte automatisierenSystemhandbuch 57

  • Beispiel für die Ausführung des CodebeispielsUm das Codebeispiel "DeleteScreenFromFolder" im Rahmen des Beispielprogramms "Hello TIA" auszuführen, verwenden Sie folgendes Beispiel:

    //In the sample program "Hello TIA" replace the function call //"IterateThroughDevices(project)" by the following functions calls: HmiTarget hmiTarget = GetTheFirstHmiTarget(project); DeleteScreenFromFolder(hmiTarget); //Put the following the function definitions before or after the //function definition of "private static void IterateThroughDevices(Project project)": private static HmiTarget GetTheFirstHmiTarget(Project project){ if (project == null) { Console.WriteLine("Project cannot be null"); throw new ArgumentNullException("project"); } foreach (Device device in project.Devices) { foreach (IDeviceItem deviceItem in device.DeviceItems) { if (deviceItem is HmiTarget) { return deviceItem as HmiTarget; } } } return null;} private static void DeleteScreenFromFolder(HmiTarget hmitarget)//Deletes a single screen from a user folder or a system folder{ string screenName = "MyScreen"; ScreenUserFolder folder = hmitarget.ScreenFolder.Folders.Find("myScreenFolder"); //or ScreenSystemFolder folder = hmitarget.ScreenFolder; ScreenAggregation screens = folder.Screens; Screen screen = screens.Find(screenName); if (screen != null) { screens.Delete(screen); }}

    Public API8.6 Einsatz der Codebeispiele

    Projekte über Skripte automatisieren58 Systemhandbuch

  • 8.7 Allgemeine Funktionen

    8.7.1 Verbindung zum TIA Portal aufbauen

    EinleitungMit TIA Portal Openness starten Sie das TIA Portal oder Sie verbinden sich mit einem bereits laufenden TIA Portal. Beim Starten des TIA Portals über eine Openness-Anwendung legen Sie fest, ob das TIA Portal mit oder ohne grafische Benutzeroberfläche gestartet wird. Wenn Sie das TIA Portal ohne Benutzeroberfläche betreiben, wird das TIA Portal vom Betriebssystem nur als Prozess gestartet. Mit einer Openness-Anwendung erzeugen Sie bei Bedarf mehrere Instanzen des TIA Portals.

    Hinweis

    Wenn Sie Openness mit der TIA Portal Oberfläche nutzen, darf der aktive Editor kein HMI-Editor sein. Sie können z. B. die Editoren "Geräte & Netze" oder den Programmiereditor manuell oder über Public API aufrufen.

    Um das TIA Portal über eine Openness-Anwendung zu starten, haben Sie folgende Möglichkeiten:

    ● Sie verwenden eine Anwendungskonfigurationsdatei.

    ● Sie verwenden die Technik "AssemblyResolve".

    TIA Portal über eine Anwendungskonfigurationsdatei startenReferenzieren Sie in der Anwendungskonfigurationsdatei alle benötigten Programmbibliotheken. Die Anwendungskonfigurationsdatei verteilen Sie zusammen mit der Openness-Anwendung.

    Legen Sie die Anwendungskonfigurationsdatei im gleichen Verzeichnis wie die Openness-Anwendung ab.

    Public API8.7 Allgemeine Funktionen

    Projekte über Skripte automatisierenSystemhandbuch 59

  • Verwenden Sie für die Anwendungskonfigurationsdatei z. B. folgenden Inhalt:

    Public API8.7 Allgemeine Funktionen

    Projekte über Skripte automatisieren60 Systemhandbuch

  • Um eine Verbindung zum TIA Portal über die Anwendungskonfigurationsdatei aufzubauen, verwenden Sie folgenden Programmcode:

    //Connect an openness application via API using using System;using System.IO;using Siemens.Engineering; namespace UserProgram{ internal class MyProgram { private static void Main(string[] args) { RunTiaPortal(); } } private static void RunTiaPortal() { // To start TIA Portal with user interface: // using (TiaPortal tiaPortal = new TiaPortal(TiaPortalMode.WithUserInterface) // // To start TIA Portal without user interface: // using (TiaPortal tiaPortal = new TiaPortal(TiaPortalMode.WithoutUserInterface) using (TiaPortal tiaPortal = new TiaPortal(TiaPortalMode.WithUserInterface)) { //begin of code for further implementation //... //end of code } } }}

    TIA Portal über Technik "AssemblyResolve" startenGestalten Sie den Programmcode der Openness-Anwendung so, dass Sie sich so früh wie möglich auf das Ereignis "AssemblyResolve" registrieren. Kapseln Sie den Zugriff auf das TIA Portal in einem weiteren Objekt oder einer Methode.

    Public API8.7 Allgemeine Funktionen

    Projekte über Skripte automatisierenSystemhandbuch 61

  • Um eine Verbindung zum TIA Portal aufzubauen, verwenden Sie folgenden Programmcode.

    Public API8.7 Allgemeine Funktionen

    Projekte über Skripte automatisieren62 Systemhandbuch

  • //Connect an openness application via API with TIAP using System;using System.IO;using System.Reflection;using Siemens.Engineering; namespace UserProgram{ static class MyProgram { static int Main(string[] args) { AppDomain.CurrentDomain.AssemblyResolve += MyResolver; MyApplication myApplication = new MyApplication(); myApplication.Run(); return 0; } private static Assembly MyResolver(object sender, ResolveEventArgs args) { int index = args.Name.IndexOf(','); if (index == -1) { return null; } string name = args.Name.Substring(0, index) + ".dll"; string path = Path.Combine(@"..\PublicAPI\V13 SP1\", name); // User must provide the correct path string fullPath = Path.GetFullPath(path); if (File.Exists(fullPath)) { return Assembly.LoadFrom(fullPath); } return null; } } public class MyApplication { public void Run() { // To start TIA Portal with user interface: // using (TiaPortal tiaPortal = new TiaPortal(TiaPortalMode.WithUserInterface) // // To start TIA Portal without user interface: // using (TiaPortal tiaPortal = new TiaPortal(TiaPortalMode.WithoutUserInterface) using (TiaPortal tiaPortal = new TiaPortal()) { //begin of code for further implementation //... //end of code