F64_BCMP

Datenblöcke vergleichen

Die Daten des Datenblocks von s2_Start werden mit denen des Datenblocks von s3_Start gemäß den Daten in s1_Control verglichen, wenn der EN-Eingang auf TRUE gesetzt ist.

Parameter

Eingang

s1_Control (WORD)

Steuercode, der die Bytepositionen und die Anzahl der Bytes, die verglichen werden, spezifiziert

s2_Start (WORD, INT, UINT)

16-Bit-Anfangsbereich, der mit s3_Start verglichen wird

s3_Start (WORD, INT, UINT)

16-Bit-Anfangsbereich, der mit s2_Start verglichen wird

Anmerkungen

Spezifikationen für den Steuercodes1_Control

(1)

Anzahl der Bytes, die verglichen werden sollen

Bereich: 16#01–16#99 (BCD)

(2)

Startbyteposition des Datenblocks von s2_Start

1: Start vom höherwertigen Byte

0: Start vom niederwertigen Byte

(3)

Startbyteposition des Datenblocks von s3_Start

1: Start vom höherwertigen Byte

0: Start vom niederwertigen Byte

Das Ergebnis des Vergleichs steht in den Sondermerkern R900B. Wenn s2_Start=s3_Start, ist der Sondermerker im Status TRUE.

Der Merker sys_bIsEqual, der für den Vergleichsbefehl verwendet wird, wird immer dann zurückgesetzt, wenn ein Vergleichsbefehl ausgeführt wird. Das Programm, das R900B verwendet, sollte deshalb direkt auf F64_BCMP folgen. 

Die Variablen s1 und s2 müssen vom gleichen Datentyp sein.

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		start: BOOL:=FALSE;
			(*activates the function*)
		ControlCode: WORD:=16#1106;
			(*s2 starting from upper byte
s3 starting from upper byte
compare 6 bytes*)
		DataBlock1: ARRAY [0..5] OF INT:=[6(1234)];
		DataBlock2: ARRAY [0..5] OF INT:=[6(1234)];
		equal_block: BOOL:=FALSE;
	END_VAR

POE-Rumpf

Wenn die Variable start auf TRUE gesetzt wird, wird die Funktion ausgeführt.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,start,4,1,6,3,);
B(B_F,F64_BCMP!,Instance,10,0,18,6,,?DEN?Ds1_Control?Ds2_Start?Ds3_Start?AENO);
B(B_VARIN,,ControlCode,8,2,10,4,);
B(B_VARIN,,DataBlock1[0],8,3,10,5,);
B(B_VARIN,,DataBlock2[0],8,4,10,6,);
L(1,2,4,2);
L(6,2,10,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

IF start then
    F64_BCMP( s1_Control:= ControlCode,
         s2_Start:= DataBlock1[0],
         s3_Start:= DataBlock2[0]);
END_IF;

AWL-Rumpf

Letzte Änderung: 2024-10-18Feedback zu dieser SeitePanasonic Hotline