F109_BITL

16비트 데이터 범위의 복수 비트 왼쪽으로 시프트

이 펑션은 출력 d1d2에서 시작과 끝을 지정하는 지정된 데이터 범위의 비트를 왼쪽으로 시프트합니다. 데이터 범위가 왼쪽으로 시프트되는 비트 수는 입력 n에서 할당된 값으로 지정됩니다. 값의 범위는 0과 16 사이입니다. 시프트로 인해 삭제된 비트는 0이 됩니다.

  • 입력 n = 0인 경우에는 시프트가 발생하지 않습니다.

  • 입력 n = 16인 경우에는 1워드 시프트가 발생합니다. 즉 펑션 F111_WSHL와 같은 프로세스가 진행됩니다.

파라미터

입력

n (INT)

시프트할 비트 수

출력

d1_Start (WORD, INT, UINT)

16비트 영역 시작

d2_End (WORD, INT, UINT)

16비트 영역 끝

주석

  • F 명령을 사용하는 대신 해당 FP7 명령을 사용하는 것이 좋습니다.

  • 입력 d1d2의 변수 어드레스 유형은 동일해야 합니다.

  1.  (1) 지정된 데이터 범위
  2.  (2) 시작: ON
  3.  (3) 끝 n 비트가 시프트아웃됩니다.
  4.  (4) n 비트

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)

출력 d1_Start > d2_End의 변수 어드레스 또는 입력의 값이 n³ 16인 경우.

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)

출력 d1_Start > d2_End의 변수 어드레스 또는 입력의 값이 n³ 16인 경우.

POU 헤더

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

	VAR
		start: BOOL:=FALSE;
			(*activates the function*)
		data_array: ARRAY [0..2] OF WORD:=[16#1234,16#5678,16#9012];
			(*result after a 0->1 leading edge
from start:
[16#2340,16#6781,16#9012]*)
	END_VAR

POU 본문

변수 startFALSE에서 TRUE로 변경되면 펑션이 실행됩니다.

4비트(16진수 표시의 한 위치에 해당)를 왼쪽으로 시프트아웃합니다. 시프트에 따른 data_field[0]의 4비트는 0으로 채워집니다. 입력 n에서는 정수 4가 직접 펑션에 할당됩니다. 하지만 POU 헤더에서 입력 변수를 선언할 수도 있습니다.

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_VARIN,,4,7,2,9,4,);
B(B_VAROUT,,data_field[0],16,2,18,4,);
B(B_VAROUT,,data_field[2],16,3,18,5,);
B(B_CONTACT,,start,3,1,5,3,R);
B(B_F,F109_BITL!,Instance,9,0,16,5,,?DEN?Dn?AENO?Cd1_Start?Cd2_End);
L(1,0,1,5);
L(1,2,3,2);
L(5,2,9,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF DF(start) then
    F109_BITL( n:=4,
         d1_Start=> data_field[0],
         d2_End=> data_field[2]);
END_IF;

IL 본문

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