Bausteine mit Hilfe von Fingerabdrücken ändern - TIAPortal

TIA Portal Openness: API für die Automatisierung von Engineering-Workflows

ft:publication_title
TIA Portal Openness: API für die Automatisierung von Engineering-Workflows
Product
TIAPortal
Version
V20
Publication date
01/2025
Language
de-DE
Bausteine mit Hilfe von Fingerabdrücken ändern

Voraussetzung

Einleitung

TIA Portal Openness unterstützt Fingerabdrücke mit dem Namen "Program Code". Dieser vergleicht den reinen Programmcode und ignoriert mehrzeilige Kommentare, Zeilenumbrüche und Tabulatoren. Die FingerprintId "ProgramCode" in Openness dient dazu, den Prüfsummenwert des Fingerabdrucks “Program Code” zu extrahieren.

Über TIA Portal Openness können Sie Änderungen innerhalb von Bausteinen und UDTs erkennen. Bei dieser Funktion können Sie die Fingerabdrücke des Objekts miteinander vergleichen. Eine Fingerabdruck-Instanz enthält eine FingerprintId, die den Typ des Fingerabdrucks definiert, sowie den Fingerabdruck-Wert als String.

Alle bereitgestellten fingerprints berücksichtigen nur Benutzereingaben, kein Übersetzungsergebnis oder andere Änderungen, die das System vornimmt. Sie können den FingerprintProvider verwenden, um Instanzen von Fingerabdrücken aufzurufen. Der FingerprintProvider-Dienst ist für Bausteine (FB, FC, OB, DB) und UDTs, jedoch nicht für Variablentabellen verfügbar. GetFingerprints() wird für eine Instanz von Fingerabdrücken aufgerufen, um alle verfügbaren Fingerabdruck-Objekte zu berechnen und zurückzugeben. Um gültige Fingerabdrücke zu erhalten, muss der Baustein oder UDT vor dem Aufrufen von Fingerabdrücken konsistent sein. Andernfalls wird eine RecoverableException ausgelöst. Ist ein Fingerabdruck auch nach seiner Berechnung noch ungültig, wird eine RecoverableException ausgegeben.

Die Enumeration FingerprintId listet alle Arten von Fingerabdrücken auf, die in Openness unterstützt werden:

Wert

Beschreibung

Code

Berücksichtigt alle Änderungen am Code im Hauptteil des Bausteins. Das Übersetzungsergebnis wird nicht berücksichtigt.

Interface

Berücksichtigt alle Änderungen an der Schnittstelle eines Bausteins, einschließlich der Startwerte eines DB.

Properties

Berücksichtigt Änderungen an den Eigenschaften eines Bausteins, z. B. Name, Nummer.

Comments

Berücksichtigt Änderungen an den Kommentaren eines Bausteins. Bei OBs ändert sich der Fingerabdruck auch, wenn die Liste verfügbarer Sprachen in den Spracheinstellungen des Projekts geändert wird.

LibraryType

Vorhanden, wenn ein Baustein mit einem Bibliothekstyp verschaltet ist.

Texts

Bei V15 SP1 ist dieser Fingerabdruck nur für Graph-Bausteine vorhanden.

Alarms

Vorhanden, wenn ein Baustein mit der Meldungsfunktion arbeitet.

Supervision

Vorhanden, wenn ein Baustein eine Überwachungsfunktion enthält.

TechnologyObject

Nur für Technologieobjekt-DBs vorhanden.

Events

Nur für OBs vorhanden.

TextualInterface

Vorhanden, wenn der Baustein eine Textschnittstelle besitzt.

ProgramCode

Berücksichtigt ausschließlich Änderungen von Programmcode und ignoriert mehrzeilige Kommentare, Zeilenumbrüche und Tabulatoren

Programmcode

Ändert den folgenden Programmcode, um den Prüfsummenwert des Fingerabdrucks “Program Code” zu extrahieren:

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

var blocks = plcSoftware.BlockGroup.Blocks;

var block1 = blocks.Find("FBDBlock") as CodeBlock;

FingerprintProvider provider = block1.GetService<FingerprintProvider>();

IList<Fingerprint> fingerprints = provider.GetFingerprints();

foreach(var fingerprint in fingerprints)

{

 string fpValue = fingerprint.Value;

 FingerprintId fpId = fingerprint.Id;

 Console.WriteLine("Fingerprint Id:"+ fingerprint.Id+" checksum :"+ fingerprint.Value);

}