위로/아래로 카운트(Count Up/Down, CTUD)
CUEnable이 해제에서 설정으로 전환할 때 CTUD 명령어는 1씩 위로 카운트합니다. CDEnable이 해제에서 설정으로 전환할 때는 명령어에 의해 1씩 카운트다운됩니다.
아키텍처 및 안전 지원 세부 정보
이 표에는 이 명령어를 지원하는 컨트롤러 및 응용 프로그램이 나와 있습니다.
아키텍처 | 표준 응용 프로그램 | 안전 응용 프로그램 |
|---|---|---|
CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370, GuardLogix 5570 | 예 | 아니요 |
CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580, ControlLogix 5590 | 예 | 예 |
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램에 사용할 수 없습니다.
펑션 블록

구조화된 텍스트
CTUD(CTUD_tag)
피연산자
구조화된 텍스트
변수 | 유형 | 형식 | 설명 |
|---|---|---|---|
CTUD 태그 | FBD_COUNTER | 구조 | CTUD 구조 |
스트럭처드 텍스트 내 식의 구문에 대한 자세한 내용은 구조화된 텍스트 구문 항목을 참조하십시오.
펑션 블록
피연산자 | 유형 | 형식 | 설명 |
|---|---|---|---|
CTUD tag | FBD_COUNTER | 구조 | CTUD 구조 |
FBD_COUNTER 구조
입력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableIn | BOOL | 선택하지 않으면 명령이 실행되지 않고 출력이 업데이트되지 않습니다. 설정하면 명령어가 실행됩니다. 기본값은 설정 상태입니다. |
CUEnable | BOOL | 카운트업 활성화. 입력이 해제에서 설정으로 전환할 때 누적기는 1씩 위로 카운트합니다. 기본값은 해제 상태입니다. |
CDEnable | BOOL | 카운트다운 활성화. 입력이 해제에서 설정으로 전환할 때 누적기는 1씩 아래로 카운트합니다. 기본값은 해제 상태입니다. |
PRE | DINT | 카운터 사전 설정 값. DN으로 설정되기 전 누산 값이 도달해야 하는 값입니다. 유효값 = 모든 정수 기본값은 0입니다. |
Reset | BOOL | 타이머 리셋 요청. 설정되면 카운터가 리셋됩니다. 기본값은 해제 상태입니다. |
출력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableOut | BOOL | 명령어에 의해 유효한 결과가 산출됩니다. |
ACC | DINT | 누산 값. |
CU | BOOL | 위로 카운트이 활성화됩니다. |
CD | BOOL | 아래로 카운트이 활성화됩니다. |
DN | BOOL | 카운팅 완료. 누산 값이 사전 설정 값보다 크거나 같으면 설정됩니다. |
OV | BOOL | 카운터 오버플로. 카운터가 상한인 2,147,483,647을 초과했음을 나타냅니다. 그러면 카운터가 -2,147,483,648로 롤오버되고 카운트다운을 다시 시작합니다. |
UN | BOOL | 카운터 언더플로. 카운터가 하한인 -2,147,483,648을 초과했음을 나타냅니다. 그러면 카운터가 2,147,483,647로 롤오버되고 카운트다운을 다시 시작합니다. |
설명
참이고 CUEnable이 참일 때 CTUD 명령어에 의해 카운터가 1씩 증가합니다. 참이고 CDEnable이 참일 때 CTUD 명령어에 의해 카운터가 1씩 감소합니다.
CUEnable 및 CDEnable 입력 파라미터 모두 동일한 스캔 도중에 전환 가능합니다. 명령어는 아래로 카운트에 앞서 위로 카운트을 실행합니다.
위로 카운트

아래로 카운트

비활성화되면 CTUD 명령어가 누산 값을 그대로 유지됩니다. 명령어를 재설정하려면 재설정 입력 매개 변수를 설정합니다.
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 에서 피연산자 관련 폴트를 참조하십시오.
실행
펑션 블록
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag.EnableIn이 거짓임 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. CuEnable 또는 CdEnable 파라미터의 "0 ~ 1" 전환을 요청하여 ACC를 적용하려면 데이터를 초기화합니다. |
Tag.EnableIn이 참임 | EnableIn 및 EnableOut 비트가 참으로 설정됩니다. 명령어가 실행됩니다. |
명령어 최초 실행 | CuEnable 또는 CdEnable 파라미터의 "0 ~ 1" 전환을 요청하여 ACC를 적용하려면 데이터를 초기화합니다. |
명령어 최초 스캔 | CuEnable 또는 CdEnable 파라미터의 "0 ~ 1" 전환을 요청하여 ACC를 적용하려면 데이터를 초기화합니다. |
명령어 첫 번째 참 | 상태별 조치가 취해지지 않았습니다. |
재설정 | 명령어가 CUEnablen-1, CDEnablen-1, CU, CD, DN, OV 및 UN을 해제하고, ACC를 0으로 설정합니다. |
사후 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
구조화된 텍스트
구조화된 텍스트에서 정상 스캔 중에 EnableIn은 항상 참입니다. 명령어가 로직에서 활성화한 제어 경로에 있는 경우 해당 명령어가 실행됩니다.
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | 펑션 블록 표의 사전 스캔을 참조하십시오. |
정상 실행 | 펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오. |
사후 스캔 | 펑션 블록 표에서 사후 스캔을 참조하십시오. |
예
펑션 블록

구조화된 텍스트
CTUD_01.PRE := 500;
CTUD_01.Reset := Reset;
CTUD_01.CUEnable := Input;
CTUD(CTUD_01);
counter_state := CTUD_01.DN;
의견을 작성 부탁드립니다.