재설정 포함 꺼짐 지연 타이머(Timer Off Delay with Reset, TOFR)
TOFR 명령어는 TimerEnable이 해제된 시간을 누산하는 비적산 타이머입니다.
아키텍처 및 안전 지원 세부 정보
이 표에는 이 명령어를 지원하는 컨트롤러 및 응용 프로그램이 나와 있습니다.
아키텍처 | 표준 응용 프로그램 | 안전 응용 프로그램 |
|---|---|---|
CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370, GuardLogix 5570 | 예 | 아니요 |
CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580, ControlLogix 5590 | 예 | 예 |
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램에 사용할 수 없습니다.
펑션 블록

구조화된 텍스트
TOFR(TOFR_tag)
피연산자
구조화된 텍스트
변수 | 유형 | 형식 | 설명 |
|---|---|---|---|
TOFR 태그 | FBD_TIMER | 구조 | TOFR 구조 |
스트럭처드 텍스트 내 식의 구문에 대한 자세한 내용은 구조화된 텍스트 구문 항목을 참조하십시오.
펑션 블록
피연산자 | 유형 | 형식 | 설명 |
|---|---|---|---|
TOFR tag | FBD_TIMER | 구조 | TOFR 구조 |
FBD_TIMER 구조
입력 파라미터 | 데이터 유형 | 설명 |
|---|---|---|
EnableIn | BOOL | 선택하지 않으면 명령이 실행되지 않고 출력이 업데이트되지 않습니다. 설정하면 명령어가 실행됩니다. 기본값은 설정 상태입니다. |
TimerEnable | BOOL | 해제된 경우 타이머가 실행되어 시간이 누산됩니다. 기본값은 해제 상태입니다. |
PRE | DINT | 타이머 사전 설정 값. 타이밍이 완료되기 전 ACC가 도달해야 하는 1밀리초 단위의 값입니다. 유효하지 않을 경우 명령어에서 Status에 해당하는 비트를 설정하고 타이머가 실행되지 않습니다. 유효값 = 0~최대 양수 |
Reset | BOOL | 타이머 리셋 요청. 설정된 경우 타이머가 리셋됩니다. 기본값은 해제 상태입니다. Reset 입력 파라미터가 설정된 경우 명령어에 의해 EN, TT, DN이 해제되고 ACC = PRE로 설정됩니다. TOF 명령어 실행 후 RES 명령어를 사용하는 것과 다릅니다. |
출력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableOut | BOOL | 명령어에 의해 유효한 결과가 산출됩니다. |
ACC | BOOL | 밀리초 단위 누산 시간. |
EN | BOOL | 타이머 활성화 출력. 타이머 명령어가 활성화되었음을 나타냅니다. |
TT | BOOL | 타이머 타이밍 출력. 설정되면 타이밍 작업이 진행 중입니다. |
DN | BOOL | 타이밍 완료 출력. 누산 시간이 사전 설정 값 이상임을 나타냅니다. |
Status | DINT | 펑션 블록의 상태. |
InstructFault (Status.0) | BOOL | 명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다. |
PresetInv (Status.1) | BOOL | 사전 설정 값이 유효하지 않습니다. |
설명
참인 경우 TOFR 명령어에 의해 다음 시점까지 시간이 누산됩니다.
- TOFR 명령어가 비활성화됨
- ACC가 PRE보다 크거나 같음
시간 기준은 항상 1밀리초입니다. 예를 들어 2초 타이머의 경우 PRE 값으로 2000을 입력합니다.

명령어를 재설정하려면 재설정 입력 매개 변수를 설정합니다. Reset이 참일 때 TimerEnable이 거짓인 경우 Reset이 거짓으로 될 때 TOFR 명령어에서 다시 타이밍을 시작하지 않습니다.
타이머 실행 방식
타이머는 현재 시간에서 타이머의 마지막 스캔 시간을 빼는 식으로 실행됩니다.
ACC = ACC + (current_time - last_time_scanned)
ACC를 업데이트한 후에 타이머는 last_time_scanned = current_time으로 설정됩니다. 다음 스캔에 대비하여 준비됩니다.
중요:
타이머가 실행되는 동안 최소한 69분마다 타이머를 스캔해야 합니다. 그렇지 않을 경우 ACC 값이 정확하지 않습니다.
last_time_scanned 값의 범위는 최대 69분입니다. 69분 이내에 타이머를 스캔하지 않을 경우 타이머 계산이 종료됩니다. 이 경우 ACC 값이 정확하지 않습니다.
다음에서 타이머를 설정한 경우 타이머가 실행되는 동안 69분 이내에 타이머를 스캔합니다.
- 서브루틴
- JMP 및 LBL 명령어 간 코드 섹션
- 순차 함수 차트(Sequential Function Chart, SFC)
- 이벤트 또는 주기 태스크
- 단계 상태 루틴
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 에서 피연산자 관련 폴트를 참조하십시오.
실행
펑션 블록
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag. EnableIn이 거짓임 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag. EnableIn이 참임 | EnableIn 및 EnableOut 비트가 참으로 설정됩니다. 명령어의 주 알고리즘이 실행되고 출력이 업데이트됩니다. |
명령어 최초 실행 | N/A |
명령어 최초 스캔 | EN, TT, DN이 해제되고 ACC 값이 수정되지 않습니다. |
재설정 | Reset 입력 파라미터가 설정된 경우 명령어에 의해 EN, TT, DN이 해제되고 ACC = PRE로 설정됩니다. (이는 TOF 명령어에 RES 명령어를 사용하는 것과는 다릅니다.) |
사후 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
구조화된 텍스트
구조화된 텍스트에서 정상 스캔 중에 EnableIn은 항상 참입니다. 명령어가 로직에서 활성화한 제어 경로에 있는 경우 해당 명령어가 실행됩니다.
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | 펑션 블록 표의 사전 스캔을 참조하십시오. |
정상 실행 | 펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오. |
사후 스캔 | 펑션 블록 표에서 사후 스캔을 참조하십시오. |
예
limit_switch1이 해제된 후 스캔할 때마다 TOFR 명령어는 ACC 값이 PRE 값에 도달할 때까지 경과된 시간만큼 ACC 값을 증가시킵니다. ACC
PRE일 경우 DN 파라미터가 해제되고 timer_state2가 설정됩니다.
PRE일 경우 DN 파라미터가 해제되고 timer_state2가 설정됩니다.펑션 블록

구조화된 텍스트
TOFR_01.PRE := 500;
TOFR_01.Reset := Reset;
TOFR_01.TimerEnable := Input;
TOFR(TOFR_01);
timer_state := TOFR_01.DN;
의견을 작성 부탁드립니다.