LGF_CompareVariant (FC / V3.0.1)


Autor: Siemens Digital Industry

Kurzbeschreibung

Die Funktion vergleicht zwei strukturierte Aktualparameter (Array, PLC-Datentyp) und gibt aus, ob sie dem gleichen Typ entsprechen und gleiche Werte haben.

Vergleich von Arrays oder PLC Datentypen mit einer Länge von maximal 200 Bytes. Sobald eines der verglichenen Bytes unterschiedlich ist, ist das Funktionsergebniss FALSE.

Einschränkungen: Die verschlatenen Strukturen dürfen keine Strings enthalten Die verschaltenen Strukturen dürfen eine größe von 200 Bytes nicht überschreiden wegen der Internen Nuffergröße

Baustein Schnittstelle

LGF_CompareVariant (FC)
   Ret_Val  Bool
    
   error  Bool
    
   status  Word
    
   subFunctionStatus  Word
    
Variant  variableA  Variant
       
Variant  variableB  Variant
       
   

Output Parameter

BezeichnerDatentypBeschreibung
Ret_ValBoolFALSE: Werte der Vergleichsvariablen oder PLC-Datentypen sind unterschiedlich.TRUE: Werte der Vergleichsvariablen sind gleich und PLC-Datentypen sind identisch.
errorBoolFALSE: Kein Fehler / TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten
statusWord16#0000-16#7FFF: Status des FB / 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle)
subFunctionStatusWordStatus oder Rückgabewert von aufgerufenen FB's / FC's und Systemfunktionen

In/Out Parameter

BezeichnerDatentypBeschreibung
variableAVariantErste Vergleichsvariable mit beliebigen Datentyp
variableBVariantZweite Vergleichsvariable mit beliebigen Datentyp

Status & Error Meldungen

Code / WertBezeichner / Beschreibung
16#0000STATUS_NO_ERROR
Abarbeitung ohne Fehler beendet
16#8201ERR_INPUT_TYPES_MUST_MATCH
Fehler, die Eingabetypen müssen übereinstimmen, z.B. Struct
16#8202ERR_INPUT_TYPES_LENGTH_NOT_EQUAL
Fehler, die Eingabetypen haben nach der Serialisierung unterschiedliche Längen.`subFunctionStatus` liefert einen Indikator für die unterschiedliche Länge.
16#8601ERR_SERIALIZE_VARIABLE_A
Fehler während der Serialisierung von `variableA` - weitere infos in `subFunctionStatus`
16#8602ERR_SERIALIZE_VARIABLE_B
Fehler während der Serialisierung von `variableB` - weitere infos in `subFunctionStatus`

Funktionsbeschreibung

Hinweis
In subFunctionStatus wird der Status von aufgerufenen Anweisungen ausge-geben. Der Ausgangswert in status gibt in diesem Fall an, welche Anweisung den Fehler verursacht hat. Holen Sie sich in diesem Fall die Informationen aus der TIA Portal Online Hilfe zu den jeweiligen Anweisungen.

Dieser Baustein vergleicht zwei (strukturierte) Aktualparameter und gibt aus, ob sie dem gleichen Wert entsprechen.

Hinweis

Folgende Unterschiede können mit der Vergleichsmethode (Bytelevel) nicht erkannt werden:

Änderungshistorie

Version & DatumÄnderungsbeschreibung
01.00.00Siemens Industry Online Support
03.09.2015First released version
01.00.01Siemens Industry Online Support
11.02.2015Bug fix
01.00.02Siemens Industry Online Support
02.01.2017Upgrade: TIA V14 Update 1
01.00.03Siemens Industry Online Support
17.08.2018Upgrade: TIA V15 Update 2
01.00.04Siemens Industry Online Support
23.11.2018Upgrade: TIA V15.1
01.00.05Simatic Systems Support
03.06.2019Refactoring and performance improvment
Change error handling to status and subFctStatus
update serialize instruction
add eno handling
03.00.00Simatic Systems Support
23.04.2020Set version to V3.0.0, harmonize the version of the whole library
03.00.01Simatic Systems Support
19.01.2020Insert documentation