SHR

오른쪽으로 비트 시프트

SHR은 정의된 위치 수(N)만큼 비트 값을 오른쪽으로 시프트하고 공백 위치를 0으로 채웁니다.

오른쪽으로 비트 시프트, 0으로 왼쪽 채우기

  1.  (1) 소스 레지스터
  2.  (2) 타겟
  3.  (3) 최상위 4비트를 0으로 채웁니다.

파라미터

입력

IN (BOOL, WORD, DWORD)

1번째 입력: 입력값

N (BOOL, WORD, DWORD)

2번째 입력: 입력값을 오른쪽으로 시프트하는 비트 수

출력

Var_OUT (BOOL, WORD, DWORD)

입력으로 출력: 결과

주석

두 번째 입력 변수 N(시프트할 비트 수)의 DUT가 DWORD이면 하위 16비트만 고려합니다.

POU 헤더

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

	VAR
		source_register: WORD:=0;
		target_register: WORD:=0;
	END_VAR

이 예에서는 변수를 사용합니다. 또한 입력 변수에 정수를 사용할 수 있습니다.

LD 본문

source_register의 마지막 N(이 경우 4) 비트가 오른쪽으로 시프트됩니다. 왼쪽의 공백 위치는 0으로 채워집니다. 결과는 target_register에 작성됩니다.

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_F,SHR!,Instance,9,1,14,5,,?DIN?DN?C);
B(B_VARIN,,source_register,7,2,9,4,);
B(B_VARIN,,4,7,3,9,5,);
B(B_VAROUT,,target_register,14,2,16,4,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

IL 본문

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