위/아래 누적기(Up/Down Accumulator, UPDN)
이 정보
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, CompactLogix
5380, ControlLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.UPDN 명령어는 누적된 값에 2개의 입력을 하나를 더하고 나머지를 뺍니다.
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램에 사용할 수 없습니다.
펑션 블록

구조화된 텍스트
UPDN(UPDN_tag)
피연산자
펑션 블록
피연산자 | 유형 | 형식 | 설명 |
|---|---|---|---|
UPDN tag | UP_DOWN_ACCUM | 구조 | UPDN 구조 |
UPDN 구조
입력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableIn | BOOL | 활성화 입력. 선택하지 않으면 명령이 실행되지 않고 출력이 업데이트되지 않습니다. 기본값은 설정 상태입니다. |
Initialize | BOOL | 명령어에 대한 초기화 입력 요청. Initialize가 설정되면 명령어가 Out으로 설정되고 내부 누적기는 InitialValue로 설정됩니다. 기본값은 해제 상태입니다. |
InitialValue | REAL | 명령어의 초기값입니다. 유효값 = 모든 부동 소수점 수 기본값 = 0.0 |
InPlus | REAL | 누적기에 추가된 입력입니다. 유효값 = 모든 부동 소수점 수 기본값 = 0.0 |
InMinus | REAL | 누적기에서 감산된 입력입니다. 유효값 = 모든 부동 소수점 수 기본값 = 0.0 |
Hold | BOOL | 명령어에 대한 입력 유지 요청. Hold가 설정되고 Initialize가 해제되면 Out이 유지됩니다. 기본값은 해제 상태입니다. |
출력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableOut | BOOL | 명령어의 활성화 여부를 나타냅니다. Out이 오버플로되는 경우 거짓으로 해제됩니다. |
Out | REAL | 명령어에 대한 출력. |
구조화된 텍스트
피연산자 | 유형 | 형식 | 설명 |
|---|---|---|---|
UPDN tag | UP_DOWN_ACCUM | 구조 | UPDN 구조 |
스트럭쳐드 텍스트 내에서 식의 구문에 대한 자세한 내용은 스트럭쳐드 텍스트 구문을 참조하십시오.
설명
UPDN 명령어는 다음과 같은 알고리즘을 따릅니다.
조건 | Action |
|---|---|
Hold가 해제되고 Initialize가 해제됨 | AccumValue n = AccumValue n-1 + InPlus - InMinus Out = AccumValue n |
Hold가 설정되고 Initialize가 해제됨 | AccumValue n = AccumValue n-1 Out = AccumValue n |
Initialize가 설정됩니다. | AccumValue n = InitialValueOut = AccumValue n |
연산 상태 플래그에 영향
아니요
폴트 조건
부 폴트 발생 조건 | 폴트 유형 | 폴트 코드 |
|---|---|---|
기능이 활성화되고 오버플로가 감지됨 | 4 | 4 |
피연산자 관련 폴트에 대해서는 공통 속성 항목을 참조하십시오.
실행
펑션 블록
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag.EnableIn이 거짓임 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag.EnableIn이 참임 | EnableIn 및 EnableOut 비트가 참으로 설정됩니다. 명령어가 실행됩니다. |
명령어 최초 실행 | 내부 누적기가 0으로 설정됩니다. |
명령어 최초 스캔 | N/A |
사후 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
구조화된 텍스트
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | 펑션 블록 표의 사전 스캔을 참조하십시오. |
정상 실행 | 펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오. |
사후 스캔 | 펑션 블록 표에서 사후 스캔을 참조하십시오. |
예
UPDN 명령어가 한 스캔의 카운트를 다음 스캔에 통합합니다. 이 명령어는 간단한 포지셔닝 응용 프로그램이나 프로세스의 차별화된 피드백 신호에서 누적된 값을 생성하는 데 간단한 적분이 필요한 다른 유형의 응용 프로그램에서 사용할 수 있습니다. 아래 예의 경우 Initial_Position은 0으로 설정되지만 Differential_Position_Plus와 Differential_Position_Minus는 시간이 지남에 따라 값이 달라집니다. 이 명령어를 사용하면 InPlus와 InMinus가 음의 값도 수락할 수 있습니다.

펑션 블록
미분 명령어는 시간 경과에 따른 신호 변화량을 초당 단위로 계산합니다. 이 명령어는 관성이 높은 프로세스를 보상하기 위해 조절기에 피드포워드 경로를 만드는 폐쇄 루프 제어에 종종 사용됩니다.

구조화된 텍스트
UPDN_01.Initialize := Initialize_Position;
UPDN_01.InitialValue := Initial_Position;
UPDN_01.InPlus := Differential_Position_Plus;
UPDN_01.InMinus := Differential_Position_Minus;
UPDN(UPDN_01);
Position_Integrated := UPDN_01.Out;
의견을 작성 부탁드립니다.