F5_BTM

비트 데이터 이동

트리거 EN이 ON 상태이면 n에서 지정한 콘텐츠에 따라 s에서 지정한 16비트 데이터 또는 정수값의 1비트가 d에서 지정한 16비트 영역의 비트에 복사됩니다. 16비트에 해당하는 정수를 s에서 지정하면 비트 데이터 이동 연산이 내부적으로 수행되어 16비트 이진 식으로 변환됩니다.

파라미터

입력

s (WORD, INT, UINT)

소스 16비트 영역

n (WORD, INT, UINT)

소스 및 대상 비트 위치를 지정합니다.

출력

d (WORD, INT, UINT)

대상 16비트 영역

예제값 16#8888, 위치 2의 비트를 포함하는 설명은 비트 위치 15의 대상값으로 이동합니다.

  1.  (1) 소스: 비트 위치
  2.  (2) 타겟: 비트 위치
  3.  (3) 결과: 비트 위치

위치 15의 비트는 이 예에서 교환된 대상값입니다. 16#7FFF

주석

  • F 명령을 사용하는 대신 해당 FP7 명령을 사용하는 것이 좋습니다.FP_MOVE_BITS 비트 데이터 이동

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

  • 오퍼랜드 n은 비트 번호를 다음과 같이 지정합니다.

    1.  (1) 소스의 비트 위치
    2.  (2) 대상의 비트 위치

      비트 번호 0~3

      소스 번호(16#0~16#F)

      비트 번호 4~7

      FP2/2SH 및 10SH: 전송될 비트 수(16#0~16#F)

      FP3: 무효

      비트 번호 8~11

      대상 비트 번호(16#0~16#F)

      비트 번호 12~15

      무효

    예를 들어, 오른쪽부터 읽어들인 n = 16#C01은 비트 위치 1에서 비트 위치 12 (16#C)로 1비트 이동합니다.

POU 헤더

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

	VAR
		start: BOOL:=FALSE;
			(*activates the function*)
		input_value: WORD:=2#1000100010001000;
		copy_operand: WORD:=16#0F02;
			(*digit no.1 and no.3 are invalid, digit no.0 locates
the position of the source bit (here: 2),
digit no.2 locates the position of the destination bit
(here: 15)*)
		output_value: WORD:=2#1111111111111111;
			(*result after a 0->1 leading
edge from start:
2#0111111111111111*)
	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_F,F5_BTM,,12,0,19,5,,?DEN?D@'s'?Dn?AENO?Cd);
B(B_CONTACT,,start,8,1,10,3,);
B(B_VARIN,,input_value,10,2,12,4,);
B(B_VARIN,,copy_operand,10,3,12,5,);
B(B_VAROUT,,output_value,19,2,21,4,);
L(1,2,8,2);
L(10,2,12,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF start then
    F5_BTM( s:= input_value,
         n:= copy_operand,
         d=> output_value);
END_IF;

IL 본문

LD

start

(* EN = start; Starting signal for the F5_BTM function. *)

F5_BTM

input_value, copy_operand, output_value

(* s = input_value (source) *)

(* n = copy_operand; e.g. Var_1 = 16#0A0B *)

(* 11 source bit (B) Þ 10 destination bit (A) *)

(* d = output_value (destination) *)

ST

out

(* option *)

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