Voraussetzung
-
Die Anwendung ist über TIA Portal Openness mit TIA Portal verbunden
Siehe Verbindung zum TIA Portal herstellen -
Ein Projekt ist geöffnet
Siehe Öffnen eines Projekts
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:
|
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); } |
Siehe auch