적분기(INTG)

이 정보
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370,
GuardLogix
5570,
CompactLogix
5380,
ControlLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.
INTG 명령어는 적분 동작을 구현합니다. 이 명령어는 스캔 속도가 일정한 태스크에서 실행됩니다.
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램 로직에서는 사용할 수 없습니다.
펑션 블록
RSL5K_INTG Function Block_v31
구조화된 텍스트
INTG(INTG_tag);
피연산자
펑션 블록
피연산자
유형
형식
설명
INTG tag
INTEGRATOR
구조
INTG 구조
INTEGRATOR 구조
입력 매개 변수
데이터 유형
설명
EnableIn
BOOL
활성화 입력. 선택하지 않으면 명령이 실행되지 않고 출력이 업데이트되지 않습니다.
기본값은 설정 상태입니다.
In
REAL
명령어의 아날로그 신호 입력.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
Initialize
BOOL
제어 알고리즘 초기화 요청. Initialize가 설정되면 출력 = InitialValue.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
InitialValue
REAL
명령어의 초기값. Initialize가 설정되면 출력 = InitialValue.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
IGain
REAL
적분 게인 승수. IGain < 0이면, 명령어는 IGain = 0.0을 설정하고, Status에 적절한 비트를 설정하고, 출력은 그대로 둡니다.
유효값 = 0.0 ~ 최대 양의 부동 소수점 수
기본값 = 0.0
HighLimit
REAL
Out의 상한값. HighLimit가 Less than or equal to LowLimit이면 명령어는 HighAlarm과 LowAlarm을 설정하고, Status에 적절한 비트를 설정한 다음, Out = LowLimit를 설정합니다.
유효값 = 모든 부동 소수점 수
기본값 = 최대 양의 부동 소수점 수
LowLimit
REAL
Out의 하한값. HighLimit가 Less than or equal to LowLimit이면 명령어는 HighAlarm과 LowAlarm을 설정하고, Status에 적절한 비트를 설정한 다음, Out = LowLimit를 설정합니다.
유효값 = 모든 부동 소수점 수
기본값 = 최대 음의 부동 소수점 수
HoldHigh
BOOL
출력 높게 유지 요청. 설정되면 출력은 값을 늘릴 수 없습니다.
기본값은 해제 상태입니다.
HoldLow
BOOL
출력 낮게 유지 요청. 설정되면 출력은 값을 줄일 수 없습니다.
기본값은 해제 상태입니다.
TimingMode
DINT
타이밍 실행 모드 선택.
0 = 주기 모드
1 = 오버 샘플링 모드
2 = 실시간 샘플링 모드
타이밍 모드에 대한 자세한 내용은 함수 블록 속성을 참조하세요.
유효값 = 0~2
기본값 = 0
OversampleDT
REAL
오버 샘플링 모드에 대한 실행 시간.
값 = 0~4194.303초
기본값 = 0
RTSTime
DINT
실시간 샘플링 모드에 대한 모듈 업데이트 기간
유효값 = 1~32,767ms
기본값 = 1
RTSTimeStamp
DINT
실시간 샘플링 모드에 대한 모듈 타임 스탬프 값.
유효값 = 0~32,767ms
기본값 = 0
출력 매개 변수
데이터 유형
설명
EnableOut
BOOL
명령어의 활성화 여부를 나타냅니다. Out이 오버플로되는 경우 거짓으로 해제됩니다.
Out
REAL
알고리즘의 계산된 출력.
HighAlarm
BOOL
상한 알람 표시기. Out Greater than or equal to HighLimit일 때, HighAlarm이 설정되고 출력은 HighLimit 값으로 제한됩니다.
LowAlarm
BOOL
하한 알람 표시기. Out Less than or equal to LowLimit일 때, LowAlarm이 설정되고, 출력은 LowLimit 값으로 제한됩니다.
DeltaT
REAL
업데이트 간 경과 시간. 컨트롤 알고리즘에서 프로세스 출력 계산에 사용되는 경과 시간(초)입니다.
Status
DINT
펑션 블록의 상태.
InstructFault (Status.0)
BOOL
명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다.
IGainInv (Status.1)
BOOL
IGain > 최대값 또는 IGain < 최소값.
HighLowLimsInv (Status.2)
BOOL
HighLimit Less than or equal to LowLimit.
TimingModeInv (Status.27)
BOOL
유효하지 않은 TimingMode 값.
타이밍 모드에 대한 자세한 내용은 함수 블록 속성을 참조하세요.
RTSMissed (Status.28)
BOOL
실시간 샘플링 모드에서만 사용.
ABS | DeltaT - RTSTime | > 1 (.001 초)일 때 설정.
RTSTimeInv (Status.29)
BOOL
유효하지 않은 RTSTime 값.
RTSTimeStampInv (Status.30)
BOOL
유효하지 않은 RTSTimeStamp 값.
DeltaTInv (Status.31)
BOOL
유효하지 않은 DeltaT 값.
구조화된 텍스트
피연산자
유형
형식
설명
INTG tag
INTEGRATOR
구조
INTG 구조
스트럭쳐드 텍스트 내 식의 구문에 대한 자세한 내용은 스트럭쳐드 텍스트 구문을 참조하십시오.
설명
INTG 명령어는 스캔 속도가 일정한 태스크에서 실행됩니다.
INTG 명령어는 Initialize가 해제되고 DeltaT > 0이면 이 제어 알고리즘을 실행합니다.
INTG Description
출력에 대해 계산된 값이 유효하지 않거나 NAN, Plus or Minus sign INF인 경우 명령어는 Out을 유효하지 않은 값으로 설정합니다. 내부 파라미터는 업데이트되지 않습니다. 각 후속 스캔에서는 마지막으로 출력이 유효했던 스캔의 내부 파라미터를 사용하여 출력을 계산합니다.
제한
INTG 명령어는 와인드업 제한을 수행하여 HoldHigh 및 HoldLow 입력의 상태에 따라 Out이 변경되지 않도록 합니다. HoldHigh가 설정되고 Out>Out
n-1
이면 Out = Out
n-1
입니다. HoldLow가 설정되고 Out<Out
n-1
이면 Out = Out
n-1
입니다.
INTG 명령어는 HighLimit과 LowLimit을 사용하여 출력 제한도 수행합니다. Out ≥ HighLimit이면 Out = HighLimit이고 HighAlarm이 설정됩니다. Out ≤ LowLimit이면 Out = LowLimit이고 LowAlarm이 설정됩니다.
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
부 폴트 발생 조건
폴트 유형
폴트 코드
기능이 활성화되고 오버플로가 감지됨
4
4
피연산자 관련 폴트에 대해서는 공통 속성 항목을 참조하십시오.
실행
노트: 구조화된 텍스트에서 정상 스캔 중에 EnableIn은 항상 참입니다. 따라서 명령어가 로직에서 활성화한 컨트롤 경로에 있는 경우 해당 명령어가 실행됩니다. 모든 함수 블록 명령어의 정의와 일반 동작을 포함한 자세한 내용은 발행 번호 1756-RM006G-EN-P, 고급 공정 제어 및 구동 장치 지침을 참조하십시오.
조건/상태
수행한 작업
사전 스캔
취해진 조치가 없습니다.
사후 스캔
취해진 조치가 없습니다.
정상 스캔 모드에서만 발생하는 조건
조건/상태
수행한 작업
명령어 최초 실행
내부 파라미터와 Out은 0으로 설정됩니다. 기본 알고리즘이 실행되지 않지만 입력 파라미터를 검증합니다.
명령어 최초 스캔
내부 파라미터와 Out은 0으로 설정됩니다. 기본 알고리즘이 실행되지 않지만 입력 파라미터를 검증합니다.
EnableIn이 거짓임
.EnableOut 비트가 거짓으로 해제됩니다.
EnableIn이 참임
.EnableOut 비트가 참으로 설정됩니다.
이 명령어의 주된 알고리즘이 실행되고 출력이 업데이트됩니다.
예
많은 응용 프로그램에서 적분 게인 성분이 폐쇄 루프 조절기 설계에 포함돼 조절 대상 시스템 내 에러를 없애거나 최소화합니다. 직선 비례 전용 조절기는 시스템의 에러를 0으로 보내지 않는 경향이 있습니다. 그러나 비례 및 적분 게인을 이용하는 조절기는 일정 시간 에러 신호를 0으로 보내는 경향이 있습니다. INTG 명령어는 다음 등식을 이용해 출력을 계산합니다.
INTG Description
아래 차트에서 블록에 대한 입력은 0에서 +200 단위로 이동합니다. 이 시간에 블록의 출력은 2800 단위로 적분됩니다. In이 +200 단위에서 0 단위로 바뀌는 동안 Out은 2800 단위에서 유지됩니다. In이 0에서 -300 단위로 바뀌면 Out은 In이 다시 0으로 바뀔 때까지 -1400 단위로 서서히 적분됩니다. 마지막으로, In이 0에서 +100까지 움직일 때 Out은 0으로 다시 적분되며 여기서 In은 Out이 0에 도달할 때 우연히 0으로 설정됩니다.
적분기의 특징, 즉 함수에 대한 입력이 존재하는 동안 특정 방향으로 계속 구동하거나 입력이 0일 때 특정 레벨에서 머무는 특징 때문에 적분 게인을 이용하는 조절기가 일정 시간 0 에러 쪽으로 구동합니다.
INTG Graph
다음 예에서 INTG 명령어가 어떻게 사용되는지 확인하십시오. HighLimit과 LowLimit 입력은 많은 경우 적분 게인 요소가 조절기 총출력의 함수로서 갖게 될 수도 있는 제어의 총 백분율을 제한합니다. 반면 HoldHigh와 HoldLow 입력은 출력이 양의 방향 또는 음의 방향으로 가지 않도록 막는 역할을 합니다. HoldHigh와 HoldLow 입력은 INTG 명령어가 제어 대상 변수의 한도를 이미 넘어선 방향에서 "와인드업" 방지합니다.
펑션 블록
이 예는 INTG 함수 블록의 최소 유효 프로그래밍으로서, 이 명령어에 대해 생성된 코드와 중립 텍스트를 보여주는 데 사용됩니다. 이것은 적분 목적에 한하며 검증 가능한 사례는 아닙니다.
RSL5K_INTG Function Block example_v31
구조화된 텍스트
INTG_01.In := Input_Value;
INTG_01.Initialize := Initialize_flag;
INTG_01.InitialValue := Int_Init_Val;
INTG_01.IGain := I_Gain;
INTG_01.HighLimit := Int_saturate_high;
INTG_01.LowLimit := Int_saturate_low;
INTG_01.HoldHigh :=HAlarm_Status;
INTG_01.HoldLow := LAlarm_Status;
INTG(INTG_01);
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal