 FP_MOVE_BITS
FP_MOVE_BITS비트 데이터 이동
이 FP 명령은 트리거 EN이 TRUE이면 비트 데이터를 s1_Start 및 s2_End에서 지정한 비트 데이터 영역에서 d_Start에서 지정한 비트 데이터 영역에서 시작되는 비트 데이터 블록으로 이동합니다.

입력
소스 비트 데이터 영역의 시작 어드레스
소스 비트 데이터 영역의 종료 어드레스
출력
대상 비트 데이터 영역의 시작 어드레스
입력 변수와 출력 변수의 데이터 형식은 동일해야 합니다.
오퍼랜드 s1_Start 및 s2_End는 다음과 같아야 합니다.
같은 메모리 영역에 있어야 합니다(예: DT, WR, FL, LD...).
s1_Start £ s2_End
s1_Start > s2_End인 경우
해당 F 명령: F5_BTM
글로벌 변수 리스트에서 프로젝트의 모든 POU에서 액세스할 수 있는 변수를 정의합니다.


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

	VAR
		bStart: BOOL:=FALSE;
			(*activates the function*)
	END_VAR
	VAR_EXTERNAL
		bStartAddress: BOOL:=FALSE;
		bEndAddress: BOOL:=FALSE;
		bTargetAddress: BOOL:=FALSE;
	END_VAR변수 bStart가 TRUE로 설정되면 펑션이 실행됩니다. 비트 X1~X8을 타겟 영역 YD~Y14로 이동합니다.


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,FP_MOVE_BITS!,,13,1,22,6,,?DEN?Ds1_Start?Ds2_End?AENO?Cd_Start);
B(B_CONTACT,,bStart,6,2,8,4,);
B(B_VARIN,,bStartAddress,11,3,13,5,);
B(B_VARIN,,bEndAddress,11,4,13,6,);
B(B_VAROUT,,bTargetAddress,22,3,24,5,);
L(1,3,6,3);
L(8,3,13,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY
If (bStart) then
    FP_MOVE_BITS(s1_Start := bStartAddress, s2_End := bEndAdress, d_Start => bTargetAddress);
End_if;