MOVE_BYTES

바이트 데이터 이동

이 함수는 SourceData로 지정된 소스 데이터(소스 바이트 오프셋 iSourceByteOffset)에서 DestData로 지정된 대상 데이터(대상 바이트 오프셋 iDestByteOffset)까지 iNumberOfBytes로 지정된 바이트 수의 데이터를 이동합니다.

소스 바이트 오프셋 및 대상 바이트 오프셋은 0부터 시작하는 첫 번째 바이트를 기준으로 합니다.

입력

SourceData (ANY) BOOL 데이터를 포함하지 않은 모든 단순 및 파생 데이터 유형(ARRAY, DUT)

바이트를 가져온 소스 데이터

iSourceByteOffset (INT, DINT, UINT, UDINT)

소스 데이터의 첫 번째 바이트(0부터 시작)을 기준으로 한 바이트 오프셋은 0 이상이어야 합니다.

iNumberOfBytes (INT, DINT, UINT, UDINT)

소스 데이터에서 대상 데이터로 이동되는 바이트 수는 0 이상이어야 합니다

iDestByteOffset (INT, DINT, UINT, UDINT)

대상 데이터의 첫 번째 바이트(0부터 시작)을 기준으로 한 바이트 오프셋은 0 이상이어야 합니다.

입력/출력

DestData (ANY) BOOL 데이터를 포함하지 않은 모든 단순 및 파생 데이터 유형(ARRAY, DUT)

바이트가 쓰인 대상 데이터

주석

  • Control FPWIN Pro7이 액세스할 데이터의 유효성을 확인하지 않으므로 입력 데이터의 유효성을 확인하십시오.

  • 소스 바이트 영역과 대상 바이트 영역이 겹치지 않도록 하십시오.

POU 헤더

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

	VAR
		bMoveToWordBoundary: BOOL:=FALSE;
		awSourceByteData: ARRAY [0..7] OF WORD:=[16#6160,16#6362,16#6564,16#6766,16#6968,16#6b6a,16#6d6c,16#6f6e];
		awDestByteData: ARRAY [0..7] OF WORD:=[8(16#FFFF)];
		iSourceByteOffset3: INT:=3;
		iDestByteOffset9: INT:=9;
		iNumberOfBytes5: INT:=5;
		iNumberOfBytes4: INT:=4;
		bMoveFromWordBoundary: BOOL:=FALSE;
	END_VAR

LD 본문

bMoveToWordBoundary 또는 bMoveFromWordBoundary 변수가 TRUE로 설정된 경우 함수가 실행됩니다.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 10 ;
        NETWORK_BODY
B(B_COMMENT,,Move bytes to word boundary:,1,0,29,1,);
B(B_CONTACT,,bMoveToWordBoundary,8,3,10,5,);
B(B_F,E_MOVE_BYTES!,,19,2,30,10,,?DEN?DSourceData?DiSourceByteOffset?DiNumberOfBytes?DiDestByteOffset?DDestData?ADestData?AENO);
B(B_VARIN,,awSourceByteData,17,4,19,6,);
B(B_VARIN,,iSourceByteOffset3,17,5,19,7,);
B(B_VARIN,,iNumberOfBytes5,17,6,19,8,);
B(B_VARIN,,2,17,7,19,9,);
B(B_VARIN,,awDestByteData,17,8,19,10,);
L(1,0,1,10);
L(1,4,8,4);
L(10,4,19,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 10 ;
        NETWORK_BODY
B(B_COMMENT,,Move bytes from word boundary:,1,0,29,1,);
B(B_CONTACT,,bMoveFromWordBoundary,8,3,10,5,);
B(B_F,E_MOVE_BYTES!,,19,2,30,10,,?DEN?DSourceData?DiSourceByteOffset?DiNumberOfBytes?DiDestByteOffset?DDestData?ADestData?AENO);
B(B_VARIN,,awSourceByteData,17,4,19,6,);
B(B_VARIN,,2,17,5,19,7,);
B(B_VARIN,,iNumberOfBytes4,17,6,19,8,);
B(B_VARIN,,iDestByteOffset9,17,7,19,9,);
B(B_VARIN,,awDestByteData,17,8,19,10,);
L(1,0,1,10);
L(1,4,8,4);
L(10,4,19,4);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

// Move bytes to word boundary:
if (bMoveToWordBoundary) then
	MOVE_BYTES(	SourceData := awSourceByteData, 
				iSourceByteOffset := iSourceByteOffset3, 
				iNumberOfBytes := iNumberOfBytes5, 
				iDestByteOffset := 2, 
				DestData := awDestByteData);
end_if;

// Move bytes from word boundary:
if (bMoveFromWordBoundary) then
	MOVE_BYTES(	SourceData := awSourceByteData, 
				iSourceByteOffset := 2, 
				iNumberOfBytes := iNumberOfBytes4, 
				iDestByteOffset := iDestByteOffset9, 
				DestData := awDestByteData);
end_if;

최종 수정일: 2025-07-03이 페이지에 대한 피드백Panasonic 직통 전화