F64_BCMP

Confronta blocco dati

Confronta i contenuti del blocco di dati specificato da s2_Start con i contenuti del blocco di dati specificato da s3_Start in base ai contenuti specificati da s1_Control se il trigger EN è in stato TRUE.

Parametri

Ingresso

s1_Control (WORD)

codice di controllo che specifica le posizioni dei byte e il numero di byte da confrontare

s2_Start (WORD, INT, UINT)

area a 16 bit iniziale da confrontare con s3_Start

s3_Start (WORD, INT, UINT)

area a 16 bit iniziale da confrontare con s2_Start

Note

Specificazione del codice di controllo s1_Control

(1)

Numero di byte da confrontare

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

(2)

Posizione del byte iniziale del blocco di dati specificato da s2_Start

1: inizio dal byte più significativo

0: inizio dal byte meno significativo

(3)

Posizione del byte iniziale del blocco di dati specificato da s3_Start

1: inizio dal byte più significativo

0: inizio dal byte meno significativo

Il risultato dell'operazione di confronto è memorizzato nel flag interno speciale R900B. Quando s2_Start=s3_Start, il flag interno speciale è in stato TRUE.

Il flag sys_bIsEqual utilizzato per l'istruzione di confronto viene rinnovato ogni qualvolta viene eseguita un'istruzione di confronto. Per questo il programma che utilizza R900B dovrebbe trovarsi subito dopo F64_BCMP .

Le variabili s1 e s2 devono presentare lo stesso tipo di dato.

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

	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

Corpo del POU

Quando la variabile start è impostata su TRUE, la funzione viene eseguita.

Corpo LD

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

Corpo ST

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

Corpo IL

L'ultima revisione: 2024-10-18Feedback su questa paginaPanasonic hotline