TP

기간이 정의된 타이머

펑션블럭 TP를 사용하면 정의된 클록 기간이 있는 펄스 타이머를 프로그램할 수 있습니다.

파라미터

입력

IN (BOOL)

클록 생성기

IN에서 상승 엣지가 감지되면 PT에서 정의한 기간이 있는 클록이 생성됩니다.

PT (TIME)

클록 기간

16비트 값: 0~327.27s

32비트 값: 0~21,474,836.47s(FP3, FPC, FP5, FP10/10S에 32비트를 사용할 수 없습니다.)

각 해상도 10ms

기간 PT가 있는 타이머는 IN의 각 상승 엣지를 발생시킵니다. 펄스 기간 내 IN에서 감지된 새 상승 엣지는 새 타이머를 발생시키지 않습니다.

출력

Q (BOOL)

신호 출력

상승 엣지가 IN에서 감지되자마자 PT 기간 설정

ET (TIME)

경과 시간

타이머 경과 기간을 포함합니다. PT = ET이면 Q가 초기화됨

계산 연산 중에 프로그래밍 에디터에서 변수를 쓰면 값이 변경될 수 있습니다.

주석

  • FP2, FP2SHFP10SHPT의 32비트 값을 사용합니다.

  • IN 신호 켜짐 시간과 독립적으로 클록은 PT에서 정의한 길이가 있는 출력 Q에서 생성됩니다. 상승 엣지가 입력 IN에서 감지되면 펑션블럭 TP가 트리거됩니다.

  • PT 처리 중에는 입력 IN의 상승 엣지가 영향을 받지 않습니다.

시간 차트

POU 헤더

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

	VAR
		copy_name: TP;
		start: BOOL:=FALSE;
		set_value: TIME:=T#0s;
		signal_output: BOOL:=FALSE;
		current_value: TIME:=T#0s;
	END_VAR

POU 본문

start가 설정되면(상태 = TRUE) 클록 기간의 set_value에 도달할 때까지 클록은 signal_output에서 내보내기됩니다.

LD 본문

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,);
B(B_VARIN,,set_value,7,3,9,5,);
B(B_VAROUT,,current_value,14,3,16,5,);
B(B_COIL,,signal_output,21,2,23,4,);
B(B_FB,TP!,copy_name,9,1,14,5,,?BIN?BPT?AQ?AET);
L(1,3,3,3);
L(1,0,1,6);
L(5,3,9,3);
L(14,3,21,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

copy_name( IN:= start ,
        PT:= set_value ,
        Q=> signal_output ,
        ET=> current_value );

IL 본문

비상정지와 사전 설정 시간 초기화 예

POU 헤더

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

	VAR
		TP1: TP;
		bIN: BOOL:=FALSE;
		tPT: TIME:=T#30s;
		tET: TIME:=T#0s;
		bQ: BOOL:=FALSE;
		bEmergencyStop: BOOL:=FALSE;
	END_VAR

POU 본문

IN의 상승 엣지 후 타이머는 카운트를 시작하고 QTRUE로 설정됩니다. 클록 기간이 경과되기 전에 bEmergencyStopTRUE로 설정되면 카운팅이 정지하고 출력 Q가 즉시 초기화됩니다. 이 예에서 타이머는 클록 시간 PT(30초)로 초기화됩니다.

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_F,E_MOVE!,,16,0,22,4,,?DEN?D?AENO?C);
B(B_VARIN,,tPT,14,2,16,4,);
B(B_VAROUT,,TP1.ET,22,2,24,4,);
B(B_CONTACT,,TP1.Q,12,1,14,3,);
B(B_CONTACT,,bEmergencyStop,7,1,9,3,);
L(14,2,16,2);
L(1,2,7,2);
L(9,2,12,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_VARIN,,tPT,14,3,16,5,);
B(B_VAROUT,,tET,21,3,23,5,);
B(B_CONTACT,,bIN,7,2,9,4,);
B(B_COIL,,bQ,33,2,35,4,);
B(B_FB,TP!,TP1,16,1,21,5,,?BIN?BPT?AQ?AET);
B(B_CONTACT,,bEmergencyStop,27,2,29,4,N);
L(1,3,7,3);
L(9,3,16,3);
L(29,3,33,3);
L(21,3,27,3);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

if (bEmergencyStop AND TP1.Q) then
    TP1.ET:=tPT;
end_if;
TP1(IN := bIN, PT := tPT, ET => tET);
bQ := NOT bEmergencyStop AND TP1.Q;

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