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>(); 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) { 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(); } } } |