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
LGF_CompareVariant (FC) | ||||||||
---|---|---|---|---|---|---|---|---|
Ret_Val | Bool | |||||||
error | Bool | |||||||
status | Word | |||||||
subFunctionStatus | Word | |||||||
Variant | variableA | Variant | ||||||
Variant | variableB | Variant | ||||||
Bezeichner | Datentyp | Beschreibung |
---|---|---|
Ret_Val | Bool | FALSE: Werte der Vergleichsvariablen oder PLC-Datentypen sind unterschiedlich.TRUE: Werte der Vergleichsvariablen sind gleich und PLC-Datentypen sind identisch. |
error | Bool | FALSE: Kein Fehler / TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten |
status | Word | 16#0000-16#7FFF: Status des FB / 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle) |
subFunctionStatus | Word | Status oder Rückgabewert von aufgerufenen FB's / FC's und Systemfunktionen |
Bezeichner | Datentyp | Beschreibung |
---|---|---|
variableA | Variant | Erste Vergleichsvariable mit beliebigen Datentyp |
variableB | Variant | Zweite Vergleichsvariable mit beliebigen Datentyp |
Code / Wert | Bezeichner / Beschreibung |
---|---|
16#0000 | STATUS_NO_ERROR Abarbeitung ohne Fehler beendet |
16#8201 | ERR_INPUT_TYPES_MUST_MATCH Fehler, die Eingabetypen müssen übereinstimmen, z.B. Struct |
16#8202 | ERR_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#8601 | ERR_SERIALIZE_VARIABLE_A Fehler während der Serialisierung von `variableA` - weitere infos in `subFunctionStatus` |
16#8602 | ERR_SERIALIZE_VARIABLE_B Fehler während der Serialisierung von `variableB` - weitere infos in `subFunctionStatus` |
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.
Folgende Unterschiede können mit der Vergleichsmethode (Bytelevel) nicht erkannt werden:
Struct
können nicht verglichen werden.REAL
Zahlen in der Struktur kann auch bei "gleichen" Variablen eine Ungleichheit angezeigt werden.ARRAY of BOOL
können mit der Funktion nicht auf Gleichheit geprüft werden, da die verwendete Anweisung CountOfElements
auch die Füllelemente mitzählt (z.B. bei einem ARRAY[0..1] of BOOL
wird 8 zurückgegeben).Version & Datum | Änderungsbeschreibung | |
---|---|---|
01.00.00 | Siemens Industry Online Support | |
03.09.2015 | First released version | |
01.00.01 | Siemens Industry Online Support | |
11.02.2015 | Bug fix | |
01.00.02 | Siemens Industry Online Support | |
02.01.2017 | Upgrade: TIA V14 Update 1 | |
01.00.03 | Siemens Industry Online Support | |
17.08.2018 | Upgrade: TIA V15 Update 2 | |
01.00.04 | Siemens Industry Online Support | |
23.11.2018 | Upgrade: TIA V15.1 | |
01.00.05 | Simatic Systems Support | |
03.06.2019 | Refactoring and performance improvment Change error handling to status and subFctStatus update serialize instruction add eno handling | |
03.00.00 | Simatic Systems Support | |
23.04.2020 | Set version to V3.0.0, harmonize the version of the whole library | |
03.00.01 | Simatic Systems Support | |
19.01.2020 | Insert documentation |