F328_DINT

부동 소수점 데이터 -> 32비트 정수 데이터(최대 정수는 부동 소수점 데이터를 초과하지 않음)

이 기능은 입력 s(범위: -2147483000 ~ 214783000)의 부동 소수점 데이터를 정수 데이터(+/- 부호 포함)로 변환합니다. 기능 결과는 출력 d에서 변환됩니다.

파라미터

입력

s (REAL)

소스 REAL 숫자 데이터(2 워드)

출력

d (DINT, DWORD)

변환 데이터를 저장하는 대상

주석

출력 d에서 변환된 정수 값은 항상 입력 s의 부동 소수점 값과 같거나 작습니다.

  • 입력에 양의 부동 소수점 값이 있으면 양의 이전 10진수 값이 출력에서 반환됩니다.

  • 입력에 음의 부동 소수점 값이 있으면 다음으로 작은 이전 10진수 값이 출력에서 반환됩니다.

  • 소수점 다음에 0만 있는 부동 소수점 값의 경우, 이전 소수점 값이 반환됩니다.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 입력 s의 값이 REAL 숫자가 아니거나 변환 결과가 출력 d의 32비트 영역을 초과하는 경우.

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 입력 s의 값이 REAL 숫자가 아니거나 변환 결과가 출력 d의 32비트 영역을 초과하는 경우.

sys_bIsEqual(TRUE로 전환되어 TRUE로 유지됨)

계산 결과가 0인 경우.

POU 헤더

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

	VAR
		start: BOOL:=FALSE;
			(*activates the function*)
		input_value: REAL:=-1234567.89;
		output_value: DINT:=0;
			(*result after a 0->1 leading
edge from start: -1234568*)
	END_VAR

이 예에서는 입력 변수 input_value가 선언됩니다. 하지만 기능의 입력 접점에 직접 정수를 쓸 수 있습니다.

POU 본문

변수 startTRUE로 설정되면 펑션이 실행됩니다.

부동 소수점 값 -1234567.89가 정수 값 -1234568로 변환되고 output의 변수 output_value에 전송됩니다. 정수가 부동 소수점 값을 초과하지 않으면 기능은 여기를 내립니다.

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,F328_DINT!,Instance,12,1,19,5,,?DEN?D@'s'?AENO?Cd);
B(B_VARIN,,input_value,10,3,12,5,);
B(B_VAROUT,,output_value,19,3,21,5,);
B(B_CONTACT,,start,8,2,10,4,);
L(1,3,8,3);
L(10,3,12,3);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF start THEN         
    F328_DINT(input_value, output_value);
END_IF;

IL 본문

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