Voraussetzung
-
Starten Sie die TIA Portal Openness-Anwendung. Weitere Informationen zu Verbindungen finden Sie im Benutzerhandbuch zum TIA Portal.
-
Ein TIA Portal-Projekt mit Bildregeltabelle, die als Standardbildregeltabelle benannt ist, ist vorhanden. Die Tabelle umfasst Bildregeln und Bildregelgruppen.
Fall 1: Wenn Sie Regeln/Regelgruppen aus der Kopiervorlage in die Standardbildregeltabelle kopieren
Mit der API "CreateFrom" können Sie die Kopiervorlage der Regeln/Regelgruppen von der Bibliothek in den Regeleditor kopieren. Wenn erfolgreich, gibt die API-Funktion die ScreenRule/ScreenRuleGroup zurück. Der folgende Code zeigt, wie Regeln oder Regelgruppen aus der Kopiervorlage in die SiVArc-Regeltabelle kopiert werden:
// Regelkopiervorlage aus der Bibliothek in die Regeltabelle kopieren
|
MasterCopy screenRuleMasterCopy = project.ProjectLibrary.MasterCopyFolder.MasterCopies.Find("Screen rule_1"); if (screenRuleMasterCopy != null { var rule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.CreateFrom(screenRuleMasterCopy); if (rule != null) { Console.WriteLine("Copied screen rule name - " + rule.Name); Console.WriteLine("Copied screen rule comment - " + rule.Comment); Console.WriteLine("Copied screen rule enabled - " + rule.Enabled); Console.WriteLine("Copied screen rule condition - " + rule.Condition); } } |
Standardmäßig ist das Verhalten "Ersetzen".
Fall 2: Wenn Sie Regeln/Regelgruppen aus der Kopiervorlage kopieren, können die vorhandenen Regeln/Regelgruppen basierend auf der zweiten Parametervorgabe umbenannt oder ersetzt werden.
Wenn Regeln/Regelgruppen der Kopiervorlage bereits in der SiVArc-Regeltabelle vorhanden sind und Sie versuchen, diese zu kopieren, werden die Regeln/Regelgruppen umbenannt. Die API "CreateOptions" erstellt die Regeln/Regelgruppen im SiVArc-Editor, sofern sie nicht vorhanden sind, und ersetzt andernfalls bereits vorhandene Regeln/Regelgruppen. Wenn erfolgreich, benennt die API-Funktion die ScreenRule/ScreenRuleGroup um. Das folgende Code-Snippet zeigt das Ersetzen von Regeln/Regelgruppen:
|
MasterCopy screenRuleMasterCopy = project.ProjectLibrary.MasterCopyFolder.MasterCopies.Find("Screen rule_1"); if (screenRuleMasterCopy != null) { var rule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.CreateFrom(screenRuleMasterCopy, CreateOptions.Rename); if (rule != null) { Console.WriteLine("Copied screen rule name - " + rule.Name); Console.WriteLine("Copied screen rule comment - " + rule.Comment); Console.WriteLine("Copied screen rule enabled - " + rule.Enabled); Console.WriteLine("Copied screen rule condition - " + rule.Condition); } } |
Beim Erstellen von Kopierregeln können Sie die Ordner mit Kopiervorlagen in den Ordnern Projektbibliothek und Globale Bibliothek durchsuchen. Zum Kopieren von Regeln rufen Sie SiVArc mit GetService auf. Die API CopyRule kopiert das Objekt mit Hilfe der API MasterCopyFolder und ProjectLibrary in den Ordner mit den Kopiervorlagen. Das folgende Code-Snippet zeigt, wie Sie Ordner mit der Kopierregel durchsuchen können:
|
TiaPortal portal = new TiaPortal(TiaPortalMode.WithUserInterface); string projectPath = @"D:\Temp\Project\Project.ap19"; Project project = portal.Projects.Open(new System.IO.FileInfo(projectPath)); Sivarc sivarc = project.GetService<Sivarc>(); if (sivarc != null) { CopyRule copyRule = sivarc.CopyRules.Tables.Find("Default copy rule table").Rules.Find("Copy rule_1"); MasterCopyFolder masterCopyFolder = project.ProjectLibrary.MasterCopyFolder.Folders.Find("CopyRuleFolder"); if (masterCopyFolder != null && copyRule != null { copyRule.LibraryObject = masterCopyFolder; } } |
Bei Kopierregeln können Sie die Ordner mit Kopiervorlagen in den Ordnern Projektbibliothek und Globale Bibliothek durchsuchen. Zum Kopieren von Regeln rufen Sie SiVArc mit GetService auf. Die API CopyRule kopiert das Objekt in den Ordner Kopiervorlagen mit Hilfe des copyrule.LibraryObject. Das System zeigt eine Ausnahme an, wenn ein Wert Null im copyrule.LibraryObject gesetzt ist.