Zugreifen auf Bibliotheksobjekte - WinCC

SiVArc Openness

ft:publication_title
SiVArc Openness
Product
WinCC
Version
V20
Publication date
01/2025
Language
de-DE
Zugreifen auf Bibliotheksobjekte

Voraussetzung

  • Die TIA Portal Openness-Anwendung ist mit dem TIA Portal verbunden. Weitere Informationen zu Verbindungen finden Sie im Benutzerhandbuch zum TIA Portal.

  • Erstellen oder Verwenden von bereits vorhandenen Bildregeln

  • Ein TIA Portal-Projekt mit als Standardbildregeltabelle genannter Bildregeltabelle, Kopiervorlagen von Bildern, Bildobjekten, Programmbausteinen und Bildbausteintypen ist vorhanden.

Lesen und Schreiben von Programmbausteineigenschaften

Fall 1: Betrachten wir das Lesen des Programmbausteinattributs einer Bildregel. Diese können projektiert werden von:

  • PLC-Baustein

  • Bibliothekstyp

  • Kopiervorlage der Bibliothek

Der folgende Code zeigt, wie das Programmbausteinattribut der Bildregel aus der PLC gelesen wird:

if (sivarc != null)

{

ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("ScreenRule")

ISivarcProgramBlockSource programblock = screenRule?.ProgramBlock;

if (programBlock ! = null)

{

CodeBlock plcBlock = programBlock as CodeBlock;

Console.WriteLine ("Screen Rule program block: " + plcBlock?.Name);

}

}

  • Wenn Sie den Programmbausteinwert aus dem Bibliothekstyp lesen, stellen Sie sicher, dass Sie programBlock in LibraryType typisieren

    LibraryType libraryType = programBlock as LibraryType

  • Wenn Sie den Programmbausteinwert aus der Kopiervorlage der Bibliothek lesen, stellen Sie sicher, dass Sie programBlock in MasterCopy typisieren

    MasterCopy masterCopy = programBlock as MasterCopy

Fall 2: Betrachten wir das Schreiben des Programmbausteinattributs einer Bildregel. Sie können den Wert für einen Programmbaustein aus Folgendem schreiben

  • PLC-Baustein

  • Bibliothekstyp

  • Kopiervorlage der Bibliothek

Der folgende Code zeigt, wie das Programmbausteinattribut der Bildregel aus der PLC geschrieben wird:

if (sivarc != null)

{

ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("ScreenRule")'

Device dev = myProject.Devices.Find("S71500/ET200MP station_1");

softwareContainer softwareContainer = null

var firstorDefault = dev.DeviceItems.FirstorDefault(name => name.Name.Equals("PLC_1"));

if (firstorDefault != null)

SoftwareContainer = firstorDefault.GetService<SoftwareContainer>();

if (softwareContainer ! =null)

{

Software softTarget = softwareContainer.Software;

PLCSoftware plcSoftware = (PLCSoftware) softTarget;

var userBlocks = plcSoftware.BlockGroup.Blocks;

screenRule.ProgramBlock=userBlocks.Find ("Block_2") as CodeBlock;

}

}

  • Wenn Sie den Programmbausteinwert aus dem Bibliothekstyp schreiben:

screenRule.ProgramBlock = project.ProjectLibrary.TypeFolder.Types.Find ("Block_Type");

  • Wenn Sie den Programmbausteinwert aus der Kopiervorlage der Bibliothek schreiben:

screenRule.ProgramBlock = project.ProjectLibrary.MasterCopyFolder.MasterCopies.Find ("Block_2");

Hinweis

  • Das Attribut ProgramBlock wird auch für andere unterstützte Editoren geändert.

  • ProgramBlock kann ebenfalls an der Bildgruppe aktualisiert werden.

Lesen und Schreiben der Eigenschaft ScreenObjectLibraryItem einer Bildregel

Fall 1: Betrachten wir das Lesen des Attributwertes ScreenObjectLibraryItem einer Bildregel. Sie können den Wert für ein Bibliothekselement des Bildobjekts aus der Kopiervorlage wie folgt lesen:

if (sivarc != null)

{

ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("ScreenRule")

ISivarcLibaryItem screenObjectMasterCopy = screenRule?.ScreenObjectLibraryItem;

if (screenObjectMasterCopy ! = null)

{

MasterCopy masterCopy= screenObjectMasterCopy as MasterCopy;

Console.WriteLine ("Screen object master copy name: " + masterCopy?.Name);

}

}

  • Wenn Sie das Bildobjekt aus dem Bibliothekstyp lesen, stellen Sie sicher, dass Sie screenObjectMasterCopy in LibraryType typisieren

    LibraryTypem libraryType = screenObjectMasterCopy as LibraryType;

Fall 2: Betrachten wir das Schreiben des Attributwertes ScreenObjectLibraryItem einer Bildregel. Sie können den Wert aus der Bibliothek wie folgt schreiben:

if (sivarc != null)

{

ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("ScreenRule");

screenRule.ScreenObjectLibraryItem = project.ProjectLibrary.MasterCopyFolder.MasterCopies.Find ("Button_Lib");

}

Hinweis

  • Der Benutzer außerdem kann das Attribut ScreenObjectLibraryItem für die Bildregelgruppe setzen.

  • Wenn Sie den Bildobjektwert aus dem Bibliothekstyp schreiben:

    screenRule.ScreenObjectLibraryItem = project.ProjectLibrary.TypeFolder.Types.Find ("Faceplate_Type");

Hinweis

Auf andere Attribute des Kopierregel-Bibliotheksobjekts (LibraryItem) vom Typ ISivarcLibraryItem kann zugegriffen werden, um den Wert auf ähnliche Weise zu lesen/schreiben.

Lesen und Schreiben der Bild-Master-Eigenschaft einer Bildregel

Fall 1: Betrachten wir das Lesen des Attributwertes LibraryScreen einer Bildregel. Sie können den Wert für ein Bibliothekselement des Bildes aus der Kopiervorlage wie folgt lesen:

if (sivarc != null)

{

ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("ScreenRule")

ISivarcLibaryMasterCopy screenLibraryMasterCopy = screenRule?.LibraryScreen;

if (screenLibraryMasterCopy ! = null)

{

MasterCopy masterCopy= screenLibraryMasterCopy as MasterCopy;

Console.WriteLine ("Screen master copy name: " + mastercopy?.Name);

}

}

Fall 2: Betrachten wir das Schreiben des Attributwertes LibraryScreen einer Bildregel. Sie können den Wert für die Kopiervorlage des Bildes der Bildregel aus der Kopiervorlage der Bibliothek wie folgt schreiben:

if (sivarc != null)

{

ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("ScreenRule");

screenRule.LibraryScreen = project.ProjectLibrary.MasterCopyFolder.MasterCopies.Find (Screen_lib");

}

Hinweis

  • Auf andere Attribute vom Typ ISivarcLibraryMasterCopy (TextlistLibraryItem und AlarmLibraryItem) kann zum Lesen/Schreiben des Wertes auf ähnliche Weise zugegriffen werden.

  • Der Benutzer kann auch das Bibliotheksbild für die Bildregelgruppe aktualisieren.

Das Attribut LibraryScreen wird genutzt, um Kopiervorlage und Typ eines Bilds zu lesen und zu bearbeiten. Mit dem LibraryScreen-Attribut können Sie in der Spalte Master copy/ Type of screen entweder nach der Kopiervorlage oder nach dem Typ suchen. Folgender Code zeigt die Navigation unter project > project Library > Typefolder> with name "<<screen_type>>". Das LibraryScreen-Attribut wird dem Wert des Bildtyps zugewiesen:

Sivarc sivarc = project.GetService<Sivarc>();

if (sivarc != null)

{

ScreenRules screenRuleEditor = sivarc.ScreenRules;

if (screenRuleEditor != null)

{

ScreenRuleComposition screenRuleComposition =
sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules;

if (screenRuleComposition != null && screenRuleComposition.Count > 0)

{

ScreenRule scRule = screenRuleComposition.Find("Screen rule");

if (scRule != null)

{

Console.WriteLine((scRule.LibraryScreen as MasterCopy)?.Name);

scRule.LibraryScreen = project.ProjectLibrary.TypeFolder.Types.Find("Screen_Type");

Console.WriteLine((scRule.LibraryScreen as LibraryType)?.Name);

}

}

}

}