적분기(INTG)
이 정보
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, CompactLogix
5380, ControlLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램 로직에서는 사용할 수 없습니다.
펑션 블록

구조화된 텍스트
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가 LowLimit이면 명령어는 HighAlarm과 LowAlarm을 설정하고, Status에 적절한 비트를 설정한 다음, Out = LowLimit를 설정합니다.유효값 = 모든 부동 소수점 수 기본값 = 최대 양의 부동 소수점 수 |
LowLimit | REAL | Out의 하한값. HighLimit가 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 HighLimit일 때, HighAlarm이 설정되고 출력은 HighLimit 값으로 제한됩니다. |
LowAlarm | BOOL | 하한 알람 표시기. Out LowLimit일 때, LowAlarm이 설정되고, 출력은 LowLimit 값으로 제한됩니다. |
DeltaT | REAL | 업데이트 간 경과 시간. 컨트롤 알고리즘에서 프로세스 출력 계산에 사용되는 경과 시간(초)입니다. |
Status | DINT | 펑션 블록의 상태. |
InstructFault (Status.0) | BOOL | 명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다. |
IGainInv (Status.1) | BOOL | IGain > 최대값 또는 IGain < 최소값. |
HighLowLimsInv (Status.2) | BOOL | HighLimit 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이면 이 제어 알고리즘을 실행합니다.

출력에 대해 계산된 값이 유효하지 않거나 NAN,
INF인 경우 명령어는 Out을 유효하지 않은 값으로 설정합니다. 내부 파라미터는 업데이트되지 않습니다. 각 후속 스캔에서는 마지막으로 출력이 유효했던 스캔의 내부 파라미터를 사용하여 출력을 계산합니다.
INF인 경우 명령어는 Out을 유효하지 않은 값으로 설정합니다. 내부 파라미터는 업데이트되지 않습니다. 각 후속 스캔에서는 마지막으로 출력이 유효했던 스캔의 내부 파라미터를 사용하여 출력을 계산합니다.제한
INTG 명령어는 와인드업 제한을 수행하여 HoldHigh 및 HoldLow 입력의 상태에 따라 Out이 변경되지 않도록 합니다. HoldHigh가 설정되고 Out>Out
n-1
이면 Out = Outn-1
입니다. HoldLow가 설정되고 Out<Outn-1
이면 Out = Outn-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 명령어는 다음 등식을 이용해 출력을 계산합니다.

아래 차트에서 블록에 대한 입력은 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 명령어가 어떻게 사용되는지 확인하십시오. HighLimit과 LowLimit 입력은 많은 경우 적분 게인 요소가 조절기 총출력의 함수로서 갖게 될 수도 있는 제어의 총 백분율을 제한합니다. 반면 HoldHigh와 HoldLow 입력은 출력이 양의 방향 또는 음의 방향으로 가지 않도록 막는 역할을 합니다. HoldHigh와 HoldLow 입력은 INTG 명령어가 제어 대상 변수의 한도를 이미 넘어선 방향에서 "와인드업" 방지합니다.
펑션 블록
이 예는 INTG 함수 블록의 최소 유효 프로그래밍으로서, 이 명령어에 대해 생성된 코드와 중립 텍스트를 보여주는 데 사용됩니다. 이것은 적분 목적에 한하며 검증 가능한 사례는 아닙니다.

구조화된 텍스트
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);
의견을 작성 부탁드립니다.
LowLimit이면 명령어는 HighAlarm과 LowAlarm을 설정하고, Status에 적절한 비트를 설정한 다음, Out = LowLimit를 설정합니다.
HighLimit일 때, HighAlarm이 설정되고 출력은 HighLimit 값으로 제한됩니다.