켜짐 지연 타이머(Timer On Delay, TON)
이 정보는
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.TON 명령어는 명령어가 활성화된 시간을 누산하는 비적산 타이머입니다.
사용 가능한 언어
래더 다이어그램

펑션 블록
이 명령어는 함수 블록에서 사용할 수 없습니다.
구조화된 텍스트
이 명령어는 구조화된 텍스트에서 사용할 수 없습니다.
피연산자
중요:
다음과 같은 경우 작업 시 예외가 발생할 수 있습니다.
- 출력 태그 피연산자가 덮어써집니다.
- 구조 피연산자의 구성원이 덮어써집니다.
- 지정된 경우를 제외하고 여러 명령어에서 구조 피연산자를 공유합니다.
래더 다이어그램
피연산자 | 데이터 유형 | 형식 | 설명 |
|---|---|---|---|
Timer | TIMER | 태그 | 타이머 구조 |
Preset | DINT | 즉시 | Timer.PRE 값 |
Accum | DINT | 즉시 | Timer.ACC 값 |
피연산자 | CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580 및 ControlLogix 5590 컨트롤러 데이터 유형 | 형식 | 설명 |
|---|---|---|---|
Timer | TIMER_T | 태그 | Timer_t 구조 |
Accum | TIME | 즉시 | Timer.ACC 값 |
Preset | TIME | 즉시 | Timer.PRE 값 |
Preset 및 Accum(타이머 태그의 .PRE 및 .ACC에 해당)은 의사 피연산자입니다. 자세한 내용은 의사 피연산자 초기화 항목을 참조하십시오.
TIMER 구조
니모닉 | 데이터 유형 | 설명 |
|---|---|---|
.EN | BOOL | 활성화 비트에는 명령어가 마지막으로 실행되었을 때 렁-입력-조건이 들어 있습니다. |
.TT | BOOL | 타이밍 비트는 설정된 경우 타이밍 작업이 진행 중임을 나타냅니다. |
.DN | BOOL | 완료 비트는 설정된 경우 타이밍 작업이 완료(또는 일시 중지)되었음을 나타냅니다. |
.PRE | DINT | 사전 설정 값으로 명령어가 완료된 것으로 나타나기 전에 누산 값이 도달해야 하는 값(1밀리초 단위)을 지정합니다. |
.ACC | DINT | 누산 값은 TON 명령어가 활성화된 이후로 경과한 시간을 밀리초로 지정합니다. |
TIMER_T 구조
니모닉 | 데이터 유형 | 설명 |
|---|---|---|
.EN | BOOL | 활성화 비트에는 명령어가 마지막으로 실행되었을 때 렁-입력-조건이 들어 있습니다. |
.TT | BOOL | 타이밍 비트는 설정된 경우 타이밍 작업이 진행 중임을 나타냅니다. |
.DN | BOOL | 완료 비트는 설정된 경우 타이밍 작업이 완료(또는 일시 중지)되었음을 나타냅니다. |
.ACC | TIME | 누산 값은 명령어가 활성화된 이후 경과 시간을 마이크로초 단위로 지정합니다. |
.PRE | TIME | 사전 설정 값은 명령어가 완료되었음을 나타내기 위해 누산 값이 도달해야 하는 값을 마이크로초 단위로 지정합니다. |
설명
TON 명령어는 활성화된 때부터 다음 시점까지의 시간을 누산합니다.
- 타이머가 비활성화됨
- 타이머 완료
시간 기준은 항상 1밀리초입니다. 예를 들어 2초 타이머의 경우 .PRE 값으로 2000을 입력합니다.
타이머는 타이머가 완료할 때 .DN 비트를 참으로 설정합니다.
활성화되면 .DN 비트를 참으로 설정하여 타이밍을 일시 중단하고 .DN 비트를 거짓으로 해제하여 타이밍을 다시 시작할 수 있습니다.

타이머 실행 방식
타이머는 현재 시간에서 타이머의 마지막 스캔 시간을 빼는 식으로 실행됩니다.
ACC = ACC + (current_time - last_time_scanned)
ACC를 업데이트한 후에 타이머는 last_time_scanned = current_time으로 설정됩니다. 다음 스캔에 대비하여 준비됩니다.
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
메이저 폴트는 다음과 같은 경우에 발생합니다. | 폴트 유형 | 폴트 코드 |
|---|---|---|
.PRE < 0 | 4 | 34 |
.ACC < 0 | 4 | 34 |
배열 인덱싱 폴트의 경우 배열을 통한 인덱스 항목을 참조하십시오.
실행
래더 다이어그램
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | .EN 비트가 거짓으로 해제됩니다. .TT 비트가 거짓으로 해제됩니다. .DN 비트가 거짓으로 해제됩니다. .ACC 값이 0으로 해제됩니다. |
렁-입력-조건이 거짓임 | 렁-출력-조건을 렁-입력-조건으로 설정합니다. .EN 비트가 거짓으로 해제됩니다. .TT 비트가 거짓으로 해제됩니다. .DN 비트가 거짓으로 해제됩니다. .ACC 값이 0으로 해제됩니다. |
렁-입력-조건이 참임 | 렁-출력-조건을 렁-입력-조건으로 설정합니다. TON 흐름도(참) 참조. |
사후 스캔 | .EN 비트가 거짓으로 해제됩니다. .TT 비트가 거짓으로 해제됩니다. .DN 비트가 거짓으로 해제됩니다. .ACC 값이 0으로 해제됩니다. |
TON 흐름도(참)

예
래더 다이어그램

limit_switch_10이 참으로 설정되면 light_6이 20000밀리초 동안 켜짐으로 됩니다(Timer_4가 타이밍 중). Timer_4.acc가 20000에 이르면 light_6은 꺼짐, light_7은 켜짐으로 됩니다. Timer_4가 타이밍하는 동안 limit_switch_10이 거짓으로 해제되는 경우 light_6은 꺼짐으로 됩니다. limit_switch_10이 거짓으로 해제되면 Timer_4 상태 비트 및 .ACC 값이 리셋됩니다.

tglTest21이 참으로 설정되면 timing21
(TIMER_T 유형 포함)
이 1분 10초 + 200밀리초 동안 켜집니다(TIMER_T가 있는 Timer21이 타이밍 중). timer21.acc가 1분 10초 + 200밀리초에 도달하면 timing21이 꺼지고 done21이 켜집니다. timer21이 타이밍 중일 때 tglTest21이 거짓으로 해제되면 timing21이 꺼집니다. tglTest21이 거짓으로 해제되면 timer21 상태 비트와 .ACC 값이 리셋됩니다.의견을 작성 부탁드립니다.