F52_BDIV

4자리 BCD 나누기, 대상 지정 가능

트리거 EN이 이 ON 상태이면 4자리 BCD 해당 상수 또는 s1에서 지정한 4자리 BCD 데이터의 16비트 영역을 4자리 BCD 해당 상수 또는 s2에서 지정한 4자리 BCD 데이터의 16비트 영역으로 나눕니다.

파라미터

입력

s1 (WORD)

나뉨수, BCD 데이터의 16비트 영역 또는 4자리 BCD 해당 상수

s2 (WORD)

제수, BCD 데이터의 16비트 영역 또는 4자리 BCD 해당 상수

출력

d (WORD)

몫, BCD 데이터의 16비트 영역(나머지는 시스템 변수 sys_iDivRemainder에 저장됨)

  1.  (1) 예제값 16#0037(BCD)
  2.  (2) 예제값 16#0015(BCD)
  3.  (3) 결과값 16#0002
  4.  (4) 나머지 16#0007
  5.  (5) 트리거: ON

주석

몫은 d에서 지정한 영역에 저장되고 나머지는 시스템 변수 sys_iDivRemainder에 저장됩니다.

에러 플래그

sys_bIsEqual(스캔 1회에 대해 TRUE로 전환)

계산 결과가 0인 경우.

POU 헤더

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

	VAR
		start: BOOL:=FALSE;
			(*activates the fuction*)
		dividend: WORD:=16#0037;
			(*dividend*)
		divisor: WORD:=16#0015;
			(*divisor*)
		output_value: WORD:=0;
			(*result after 0->1 leading edge
from start: 16#0002*)
	END_VAR

LD 본문

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

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_CONTACT,,start,5,1,7,3,);
B(B_VARIN,,dividend,7,2,9,4,);
B(B_VARIN,,divisor,7,3,9,5,);
B(B_VAROUT,,output_value,15,2,17,4,);
B(B_F,F52_BDIV!,Instance,9,0,15,5,,?DEN?D@'s1'?Ds2?AENO?Cd);
L(1,2,5,2);
L(7,2,9,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF start then
    F52_BDIV(dividend, divisor, output_value);
END_IF;

IL 본문

LD

start

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

F52_BDIV

dividend, divisor, output_value

(* s1 = dividend (source1) *)

(* s2 = divisor (source2) *)

(* d = output_value (destination) *)

(* s1 / s2 = d *)

ST

out

(* option *)

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