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

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

명령어를 재설정하려면 재설정 입력 매개 변수를 설정합니다. Reset이 설정되었을 때 TimerEnable이 설정되면 Reset이 해제될 때 RTOR 명령어에 의해 타이밍이 다시 시작됩니다.
타이머 실행 방식
타이머는 현재 시간에서 타이머의 마지막 스캔 시간을 빼는 식으로 실행됩니다.
- 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 비트가 참으로 설정됩니다. 명령어가 실행됩니다. Reset 입력 파라미터가 설정된 경우 명령어에 의해 EN, TT, DN이 해제되고 ACC = 0으로 설정됩니다. |
명령어 최초 실행 | EN, TT, DN이 거짓으로 해제됩니다. 명령어가 실행됩니다. |
명령어 최초 스캔 | N/A |
재설정 | .EnableIn과 .EnableOut 비트가 참으로 설정됩니다. 주 명령어 알고리즘이 실행되고 업데이트가 출력됩니다. |
사후 스캔 | EnableIn과 EnableOut이 거짓으로 해제됩니다. |
구조화된 텍스트
구조화된 텍스트에서 정상 스캔 중에 EnableIn은 항상 참입니다. 명령어가 로직에서 활성화한 제어 경로에 있는 경우 해당 명령어가 실행됩니다.
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | 펑션 블록 표의 사전 스캔을 참조하십시오. |
정상 실행 | 펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오. |
사후 스캔 | 펑션 블록 표에서 사후 스캔을 참조하십시오. |
예
펑션 블록

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