F6_DGT

자릿수 데이터 이동

16비트 데이터 또는 s에서 지정한 16비트 동등 정수의 16진수 숫자는 n에서 지정한 대로 d에서 지정한 16비트 영역에 복사됩니다.

파라미터

입력

s (WORD, INT, UINT)

소스 16비트 영역

n (WORD, INT, UINT)

소스 및 대상 16진수 숫자 위치와 16진수 숫자 수를 지정합니다.

출력

d (WORD, INT, UINT)

대상 16비트 영역

주석

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

  • 자릿수는 데이터 처리 시 사용되는 4비트 단위입니다. 이 명령을 사용하면 16비트 데이터가 4자리로 구분됩니다. 최하위 4비트부터 16진수 숫자 0, 숫자 1, 숫자 2, 숫자 3의 순서대로 호출됩니다.

    1. 16비트 데이터

    2. 비트

    3. 16진수 숫자

  • n은 (3) 소스 16진수 숫자 위치, 자릿수(2) 및 다음과 같이 16진수 데이터를 사용하여 복사될 (1) 대상 16진수 숫자 위치를 지정합니다.

    1.  (1) 대상: 시작 16진수 숫자 위치

      0 16진수 숫자 0

      1 16진수 숫자 1

      2 16진수 숫자 2

      3 16진수 숫자 3

    2.  (2) 복사될 16진수 숫자 수

      0 16진수 숫자 1개(4비트)를 복사합니다.

      1 16진수 숫자 2개(8비트)를 복사합니다.

      2 16진수 숫자 3개(12비트)를 복사합니다.

      3 16진수 숫자 4개(16비트)를 복사합니다.

    3.  (3) 소스: 시작 16진수 숫자 위치

      0 16진수 숫자 0

      1 16진수 숫자 1

      2 16진수 숫자 2

      3 16진수 숫자 3

    다음은 n의 사양에 따른 숫자 전송 패턴입니다.

    • 소스의 16진수 숫자 1이 대상의 16진수 숫자 1에 복사되는 경우 n: 16#101을 지정합니다.

    • 소스의 16진수 숫자 3이 대상의 16진수 숫자 0에 복사되는 경우 n: 16#003(축약형: 16#3)을 지정합니다.

    • 소스의 복수 16진수 숫자(16진수 숫자 2와 3)가 대상의 복수 16진수 숫자(16진수 숫자 2와 3)에 복사되는 경우 n: 16#212를 지정합니다.

    • 소스의 복수 16진수 숫자(16진수 숫자 0과 1)가 대상의 복수 16진수 숫자(16진수 숫자 2와 3)에 복사되는 경우 n: 16#210를 지정합니다.

    • 소스의 16진수 숫자 4개(16진수 숫자 0과 3)가 대상의 16진수 숫자 4개(16진수 숫자 0과 3)에 복사되는 경우 n: 16#130를 지정합니다.

POU 헤더

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

	VAR
		start: BOOL:=FALSE;
		source: INT:=329;
			(*decimal 329 = 16#149*)
		specify_n: WORD:=16#111;
			(*Beginning from the end:
1: first hex. digit is digit 1, i.e. 4
1: copies 2 hex. digits, i.e. 14
1: destination is hex. digit 1*)
		output: INT:=0;
			(*16#140 = decimal 320*)
	END_VAR

POU 본문

변수 startTRUE로 설정되면 펑션이 실행됩니다. 사다리 다이어그램의 [헤더 모니터]에서 sourceoutput의 값이 도구 모음에서 [16진수] 버튼을 활성화하여 16진수 값을 표시하도록 설정되었습니다.

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_F,F6_DGT!,Instance,12,0,18,5,,?DEN?D@'s'?Dn?AENO?Cd);
B(B_VARIN,,source,8,2,10,4,);
B(B_VARIN,,specify_n,8,3,10,5,);
B(B_VAROUT,,output,18,2,20,4,);
B(B_CONTACT,,start,6,1,8,3,);
L(10,3,12,3);
L(10,4,12,4);
L(8,2,12,2);
L(1,2,6,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF start then
    F6_DGT( s:= source,
         n:= specify_n,
         d=> output);
END_IF;

IL 본문

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