Variablen-/Textdefinitionen konfigurieren - WinCC

SiVArc Openness

ft:publication_title
SiVArc Openness
Product
WinCC
Version
V20
Publication date
01/2025
Language
de-DE
Variablen-/Textdefinitionen konfigurieren

Voraussetzung

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

  • PLC mit dem zugehörigen Baustein

Variablendefinitionen erstellen

Um eine Variablendefinition für einen Baustein zu erstellen, müssen Sie zuerst die PLC gefolgt vom zugehörigen Baustein identifizieren und dann auf den SiVArc-Datenprovider für diesen Baustein zugreifen. Sobald Sie auf den SiVArc-Datenprovider zugreifen können, erstellen Sie mit TagDefinitionComposition eine neue Variablendefinition. Das folgende Code-Snippet zeigt dies an:

CodeBlock block = plcSoftware.BlockGroup.Blocks.Find("Block_1") as CodeBlock;

// Zugriff auf Dienst SivarcDataProvider

SivarcDataProvider sivarcDataProvider = block.GetService<SivarcDataProvider>();
// Eintrag für Variablendefinition erstellen

TagDefinition tagDefinition = sivarcDataProvider.TagDefinitions.Create("Tag_definition_1");

if (tagDefinition != null)

{

tagDefinition.Value = "Tag_Definition_1_Value";

tagDefinition.Comment = "Tag_Definition_1_Comment";

}

Zugriff auf Textdefinitionen

Um auf Textdefinitionen für einen Baustein zuzugreifen, müssen Sie zuerst die PLC gefolgt vom zugehörigen Baustein identifizieren und dann auf den SiVArc-Datenprovider für diesen Baustein zugreifen. Wenn Sie Zugriff auf den SiVArc-Datenprovider erhalten haben, legen Sie mit TextDefinitionComposition fest, für welche Textdefinitionsspalte die Werte geschrieben werden sollen.

Das folgende Code-Snippet zeigt dies an:

TextDefinitionComposition textDefinitions = sivarcDataProvider.TextDefinitions;

TextDefinition textDefinition = textDefinitions.Find("Text_definition");

if (textDefinition != null)

{

textDefinition.Name = "Updated_Text_definition";

textDefinition.Expression = "Block.DB.SymbolicName";

textDefinition.Comment = "Updated_Text_definition_Comment";

var text = textDefinition.Text;

//Deutschen Text aktualisieren

Language germanLanguage = project.LanguageSettings.Languages.Find(new CultureInfo("de-DE"));

text.Items.Find(germanLanguage).Text = "GermanText";

}

Für den Lesezugriff können Sie die gleichen Schritte ausführen.

Sie können auch auf den konfigurierten Wert für Textdefinitionen zugreifen, die mehrsprachige Anwendungen unterstützen. Wählen Sie mit "project.LanguageSettings.Languages.Find(“<Name_der_Sprache>”)" die Sprache, für die Sie Werte lesen/schreiben möchten.

Objekt MultilingualTextItem enthält den Wert für den Sprachtyp.

Variablen-/Textdefinitionen löschen

Um Variablendefinitionen für einen Baustein zu löschen, müssen Sie zuerst die PLC gefolgt vom zugehörigen Baustein identifizieren und dann auf den SiVArc-Datenprovider für diesen Baustein zugreifen. Sobald Sie auf den SiVArc-Datenprovider zugreifen können, suchen Sie die Variablendefinition, die Sie mit tagDefinition.Delete löschen möchten.

Die gleiche Vorgehensweise gilt für Textdefinitionen, für die Löschung wird die API textDefinitions.Delete verwendet.

Das folgende Code-Snippet zeigt dies an:

string projectPath = @"D:\Temp\Project\Project.ap19";

Project project = portal.Projects.Open(new System.IO.FileInfo(projectPath));

Device myDevice = null;

foreach (var device in project.Devices)

{

//Gerät suchen

if (!device.Name.Equals("S71500/200 station_1"))

{

continue;

}

 myDevice = device;

}

if (myDevice?.DeviceItems != null)

{

foreach (var deviceItem in myDevice.DeviceItems)

{
//PLC suchen

if (deviceItem.Name == "PLC_1")

{

SoftwareContainer container = deviceItem.GetService<SoftwareContainer>();

Software target = container.Software;

PlcSoftware software = (PlcSoftware) target;

//Programmbaustein suchen

CodeBlock block = software.BlockGroup.Blocks.Find("Block_1") as CodeBlock;

// Zugriff auf Dienst SivarcDataProvider

SivarcDataProvider sivarcDataProvider = block.GetService<SivarcDataProvider>();

// Variablendefinition löschen

sivarcDataProvider.TagDefinitions.Find("Tag_definition").Delete();

// Textdefinition löschen

sivarcDataProvider.TextDefinitions.Find("Text_definition").Delete();

}

}

}