F64_BCMP

블록 데이터 비교

트리거 EN이 ON 상태인 경우 s1_Control에서 지정한 콘텐츠에 따라 s2_Start에서 지정한 데이터 블록 콘텐츠와 s3_Start에서 지정한 데이터 블록 콘텐츠를 비교합니다.

파라미터

입력

s1_Control (WORD)

비교할 바이트 위치와 바이트 수를 지정하는 제어 코드

s2_Start (WORD, INT, UINT)

s3_Start와 비교할 시작 16비트 영역

s3_Start (WORD, INT, UINT)

s2_Start와 비교할 시작 16비트 영역

주석

제어 코드 s1_Control

(1)

비교할 바이트 수

범위: 16#01~16#99(BCD)

(2)

s2_Start에서 지정한 데이터 블록의 시작 바이트 위치

1: 상위 바이트에서 시작

0: 하위 바이트에서 시작

(3)

s3_Start에서 지정한 데이터 블록의 시작 바이트 위치

1: 상위 바이트에서 시작

0: 하위 바이트에서 시작

비교 연산 결과는 특수 내부 플래그 R900B에 저장됩니다. s2_Start=s3_Start이면 특수 내부 플래그는 ON 상태가 됩니다.

비교 명령에 사용된 sys_bIsEqual 플래그는 비교 명령이 실행될 때마다 갱신됩니다. 따라서 F64_BCMP 바로 다음에 R900B를 사용하는 프로그램이 있어야 합니다 .

변수 s1s2의 데이터 형식은 같아야 합니다.

POU 헤더

이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.

	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

POU 본문

변수 startTRUE로 설정되면 펑션이 실행됩니다.

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

ST 본문

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

IL 본문

최종 수정일: 2019-08-01이 페이지에 대한 피드백Panasonic 직통 전화