TM_1ms_FB

1ms 간격 타이머(0~32.767s)

이 0.001초 단위 타이머는 한시 동작 타이머로 작동합니다. 펑션블럭의 start 접점이 ON 상태이면 사전 시간 SV(설정값)가 시작됩니다. 이 시간이 경과하면 타이머 T가 켜집니다.

파라미터

입력

start (BOOL)

시작 접점

상승 엣지가 감지될 때마다 설정값 SV는 경과값 EV에 복사되고 타이머가 시작됨

SV (INT, WORD)

설정값

정의한 한시 동작 타이머(0~32.767초)

출력

T (BOOL)

타이머

SV에서 정의한 시간이 경과되면 설정됩니다. 즉, EV가 0이 됩니다.

EV (INT, WORD)

경과값

타이머 실행 중에 0.001초마다 1을 뺀 카운터값

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

주석

  • 사용 가능한 타이머 수는 제한되며 시스템 레지스터 5 및 6의 설정에 따릅니다.

  • 타이머 펑션블럭의 경우, 컴파일러는 NUM* 어드레스를 자동으로 매 타이머 인스턴스에 할당합니다. 주소는 빼기에 할당되고 가능한 최상위 어드레스에서 시작됩니다.

시간 차트

  1.  (1) 다운로드 PROG 모드
  2.  (2) RUN 모드

POU 헤더

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

	VAR
		Alarm_control: TM_1ms_FB;
		Start_contact: BOOL:=FALSE;
		Alarm_Relay_1: BOOL:=FALSE;
		Alarm_Relay_2: BOOL:=FALSE;
	END_VAR

이 예에서는 변수를 사용합니다. 또한 입력 변수에 정수를 사용할 수 있습니다.

POU 본문

변수 Start_contactTRUE가 되자마자 타이머 Alarm_control이 시작됩니다. 타이머의 변수 EVSV 값으로 설정됩니다. Start_contactTRUE로 설정되어 있으면 1ms마다 EV에서 값 1을 뺍니다. EV가 값 0에 도달하면(타이머 형식 TM_1ms_FB를 사용하여 SV = 1000인 1초 후) 변수 Alarm_Relay_2TRUE가 됩니다.

타이머의 변수 EV 값이 500(0.5초 후)과 같거나 작아지자마자 EV는 0이 아니고 Alarm_Relay_1TRUE로 설정됩니다.

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_VARIN,,Start_Contact,7,2,9,4,);
B(B_VARIN,,1000,7,3,9,5,);
B(B_VAROUT,,Alarm_Relay_2,16,2,18,4,);
B(B_FB,TM_1ms_FB!,Alarm_control,9,1,16,5,,?Bstart?BSV?AT?AEV);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_F,@LE-2!,Instance,11,0,16,3,,?D?D?C);
B(B_VARIN,,Alarm_control.EV,9,0,11,2,);
B(B_VARIN,,500,9,1,11,3,);
B(B_F,@NE!,Instance,11,5,16,8,,?D?D?C);
B(B_VARIN,,0,9,6,11,8,);
B(B_VARIN,,Alarm_control.EV,9,5,11,7,);
B(B_F,@AND-2!,Instance,20,2,25,5,,?D?D?C);
B(B_VAROUT,,Alarm_Relay_1,25,2,27,4,);
L(16,1,17,1);
L(17,1,17,3);
L(17,3,20,3);
L(17,4,20,4);
L(17,4,17,6);
L(16,6,17,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

Alarm_Control( start:= Start_Contact ,
        SV:= 1000,
        T=> Alarm_Relay_2 ,
        EV=> Alarm_Control.EV );
(*The ON-delay time is 1000ms*)
Alarm_Relay_1:= Alarm_Control.EV <= 500 & Alarm_Control.EV <> 0;
(*Alarm_Relay_1 is set to TRUE after 500ms*)

IL 본문

명령 목록에서 펑션블럭을 호출하려면 다음을 입력합니다.

CAL

Alarm_control (start:=Start_contact,

SV:= 1000 ,

T:= Alarm_Relay_2)

LD

Alarm_control.EV

LE

500

AND(

Alarm_control.EV

NE

0

)

ST

Alarm_Relay_1

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