F40_BADD

4자리 BCD 더하기

트리거 EN이 ON 상태이면 4자리 BCD 해당 상수 또는 s에서 지정한 4자리 BCD 데이터의 16비트 영역과 d에서 지정한 4자리 BCD 데이터의 16비트 영역을 함께 더합니다. 결과는 d에 저장됩니다.

파라미터

입력

s (WORD)

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

출력

d (WORD)

피가산수와 결과, 4자리 BCD 데이터의 16비트 영역

  1.  (1) 예제값 16#2111(BCD)
  2.  (2) 예제값 16#0011(BCD)
  3.  (3) 트리거가 ON인 경우 결과값 16#2122(BCD)

주석

F 명령을 사용하는 대신 해당 FP7 명령을 사용하는 것이 좋습니다.FP_ADD_BCD

주석

이 명령을 사용하면 피가산수 d의 영역을 더한 결과로 덮어 씁니다. 덮어 쓰기를 방지하려면 F41_DBADD 명령을 사용하는 것이 좋습니다.

에러 플래그

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

계산 결과가 0인 경우.

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

결과가 4자리 범위를 초과하는 경우

POU 헤더

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

	VAR
		start: BOOL:=FALSE;
			(*activates the function*)
		summand: WORD:=16#2111;
			(*this value will be added
to the output_value*)
		output_value: WORD:=16#0011;
			(*result after 0->1 leading
edge from start: 16#2122*)
	END_VAR

LD 본문

변수 startFALSE에서 TRUE로 변경되면 펑션이 실행됩니다.

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,3,2,5,4,R);
B(B_F,F40_BADD!,Instance,9,1,15,5,,?DEN?D@'s'?AENO?Cd);
B(B_VARIN,,summand,7,3,9,5,);
B(B_VAROUT,,output_value,15,3,17,5,);
L(1,0,1,6);
L(1,3,3,3);
L(5,3,9,3);
        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
    F40_BADD(summand, output_value);
END_IF;

IL 본문

LD

start

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

F40_BADD

summand, output_value

(* s = summand (source) *)

(* d = output_value (destination) *)

(* s + d = d *)

ST

out

(* option *)

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