분할 범위 시간 비례(SRTP)
이 정보는
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.분할 범위 시간 비례(SRTP) 명령어는 PID 루프의 0 ~ 100% 출력을 가져와서 주기적인 펄스를 사용하여 가열 및 냉각 디지털 출력 접점을 구동합니다. 이 명령어는 압출기의 배럴 온도 제어 같은 적용을 제어합니다.
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램 로직에서는 사용할 수 없습니다.
펑션 블록

구조화된 텍스트
SRTP(SRTP_tag)
피연산자
펑션 블록
피연산자 | 유형 | 형식 | 설명 |
SRTP 태그 | SPLIT_RANGE | 구조 | SRTP 구조 |
구조화된 텍스트
피연산자 | 유형 | 형식 | 설명 |
SRTP 태그 | SPLIT_RANGE | 구조 | SRTP 구조 |
스트럭쳐드 텍스트 내 식의 구문에 대한 자세한 내용은
스트럭쳐드 텍스트 구문
을 참조하십시오.SPLIT_RANGE 구조
입력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableIn | BOOL | 활성화 입력. 거짓이면 명령어가 실행되지 않고 출력이 업데이트되지 않습니다. 기본값은 참입니다. |
In | REAL | 가열 또는 냉각을 요청하는 아날로그 신호 입력. 이 입력은 일반적으로 PID 루프의 CVEU에서 얻습니다. 유효값 = 모든 부동 소수점 수 |
CycleTime | REAL | 초 단위 출력 펄스 기간. 값이 0인 경우 가열 및 냉각 출력이 모두 꺼집니다. 이 값이 유효하지 않다면 명령어는 0이라는 값을 가지며 Status에서 적절한 비트를 설정합니다. 유효값 = 임의의 양의 부동 소수점 수. 기본값 = 0.0 |
MaxHeatIn | REAL | 최대 가열 입력. 이 값은 최대한의 가열을 발생시키는 In 백분율을 지정합니다. 가열/냉각 루프의 경우 일반적으로 100%입니다. 유효값 = 모든 부동 소수점 수 기본값 = 100.0 |
MinHeatIn | REAL | 최소 가열 입력. 가열 범위의 시작을 표시하고 최소한의 가열을 발생시키는 In 백분율을 지정합니다. 가열/냉각 루프의 경우 일반적으로 50%입니다. 유효값 = 모든 부동 소수점 수 기본값 = 50.0 |
MaxCoolIn | REAL | 최대 냉각 입력. 최대한의 냉각을 일으키는 In 백분율을 지정합니다. 가열/냉각 루프의 경우 일반적으로 0%입니다. 유효값 = 모든 부동 소수점 수 기본값 = 0.0 |
MinCoolIn | REAL | 최소 냉각 입력. 최소한의 냉각을 일으키는 In 백분율을 지정합니다. 가열/냉각 루프의 경우 일반적으로 50%입니다. 유효값 = 모든 부동 소수점 수 기본값 = 50.0 |
MaxHeatTime | REAL | 최대 가열 시간(초). 가열 펄스가 작동하는 최대 시간(초)을 지정합니다. 명령어 계산 결과에 따라 HeatTime이 이 값보다 큰 경우 HeatTime이 MaxHeatTime으로 제한됩니다. MaxHeatTime이 유효하지 않은 경우 명령어는 CycleTime 값을 가정하고 Status에 적절한 비트를 설정합니다. 유효값 = 0.0~CycleTime 기본값 = CycleTime |
MinHeatTime | REAL | 최소 가열 시간(초). 가열 펄스가 작동하는 최소 시간(초)을 지정합니다. 명령어 계산 결과에 따라 HeatTime이 이 값보다 작은 경우 HeatTime이 0으로 설정됩니다. MinHeatTime이 유효하지 않은 경우 명령어는 값을 0으로 가정하고 Status에 적절한 비트를 설정합니다. 유효값 = 0.0~MaxHeatTime 기본값 = 0.0 |
MaxCoolTime | REAL | 최대 냉각 시간(초). 냉각 펄스가 작동하는 최대 시간(초)을 지정합니다. 명령어 계산 결과에 따라 CoolTime이 이 값보다 크면 CoolTime이 MaxCoolTime으로 제한됩니다. MaxCoolTime이 유효하지 않은 경우 명령어는 CycleTime 값을 가정하고 Status에 적절한 비트를 설정합니다. 유효값 = 0.0~CycleTime 기본값 = CycleTime |
MinCoolTime | REAL | 최소 냉각 시간(초). 낵각 펄스가 작동하는 최소 시간(초)을 지정합니다. 명령어 계산 결과에 따라 CoolTime이 이 값보다 작으면 CoolTime이 0으로 설정됩니다. MinCoolTime이 유효하지 않은 경우 명령어는 값을 0으로 가정하고 Status에 적절한 비트를 설정합니다. 유효값 = 0.0~MaxCoolTime 기본값 = 0.0 |
출력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableOut | BOOL | 명령어의 활성화 여부를 나타냅니다. HeatTimePercent 또는 CoolTimePercent가 오버플로되는 경우 거짓으로 해제됩니다. |
HeatOut | BOOL | 가열 출력 펄스. 명령어에서는 가열 접점에 이 출력 펄스를 생성합니다. |
CoolOut | BOOL | 냉각 출력 펄스. 명령어에서는 냉각 접점에 이 출력 펄스를 생성합니다. |
HeatTimePercent | REAL | 가열 출력 펄스 시간(%) 이 값은 현재 주기에서 HeatingOutput이 작동하는 백분율을 계산한 값입니다. 필요한 경우 이 계산 값을 이용하여 아날로그 출력이 포함된 명령어를 가열에 사용할 수 있습니다. |
CoolTimePercent | REAL | 냉각 출력 펄스 시간(%) 이 값은 현재 주기에서 CoolingOutput이 작동하는 백분율을 계산한 값입니다. 필요한 경우 이 계산 값을 이용하여 아날로그 출력이 포함된 명령어를 냉각에 사용할 수 있습니다. |
Status | DINT | 펑션 블록의 상태. |
InstructFault (Status.0) | BOOL | 명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다. |
CycleTimeInv (Status.1) | BOOL | 유효하지 않은 CycleTime 값. 명령어에서 0을 사용합니다. |
MaxHeatTimeInv (Status.2) | BOOL | 유효하지 않은 MaxHeatTime 값. 명령어에서 CycleTime 값을 사용합니다. |
MinHeatTimeInv (Status.3) | BOOL | 유효하지 않은 MinHeatTime 값. 명령어에서 0을 사용합니다. |
MaxCoolTimeInv (Status.4) | BOOL | 유효하지 않은 MaxCoolTime 값. 명령어에서 CycleTime 값을 사용합니다. |
MinCoolTimeInv (Status.5) | BOOL | 유효하지 않은 MinCoolTime 값. 명령어에서 0을 사용합니다. |
HeatSpanInv (Status.6) | BOOL | MaxHeatIn = MinHeatIn. |
CoolSpanInv (Status.7) | BOOL | MaxCoolIn = MinCoolIn. |
설명
SRTP 펄스 길이는 PID 출력에 비례합니다. 명령어 매개 변수는 가열 및 냉각 적용에 맞춰 조정됩니다.
내부 주기 타이머 사용
명령어에서는 0부터 프로그래밍된 CycleTime까지 순환하는 자유 실행 주기 타이머를 유지합니다. 내부 타이머는 DeltaT에 의해 업데이트됩니다. DeltaT는 명령어를 마지막으로 실행한 후 경과 시간입니다. 이 타이머는 출력을 켜야 하는지를 결정합니다.
언제든지 CycleTime을 변경할 수 있습니다. CycleTime = 0인 경우 내부 타이머가 지워지고 HeatOut 및 CoolOut이 거짓으로 해제됩니다.
가열 및 냉각 시간 계산
명령어를 실행할 때마다 가열 및 냉각 시간이 계산됩니다.
HeatTime은 CycleTime 내에서 가열 출력이 켜져 있는 시간입니다.

HeatTime < MinHeatTime인 경우 HeatTime = 0으로 설정합니다.
HeatTime > MaxHeatTime인 경우 HeatTime = MaxHeatTime으로 제한합니다.
HeatTimePercent는 HeatOut 펄스가 참인 CycleTime 백분율입니다.

CoolTime은 CycleTime 내에서 냉각 출력이 켜져 있는 시간입니다.

CoolTime < MinCoolTime인 경우 CoolTime = 0으로 설정합니다.
CoolTime > MaxCoolTime인 경우 CoolTime = MaxCoolTime으로 제한합니다.
CoolTimePercent는 CoolOut 펄스가 참인 CycleTime 백분율입니다.

명령어에서는 다음의 규칙을 사용하여 가열 및 냉각 출력을 제어합니다.
- HeatTime
내부 주기 시간 누적기이면 HeatOut을 참으로 설정합니다. 내부 주기 타이머 > HeatTime인 경우 HeatOut을 거짓으로 해제합니다. - CoolTime
내부 주기 시간 누적기이면 CoolOut을 참으로 설정합니다. 내부 주기 타이머가 CoolTime보다 크면 CoolOut을 거짓으로 해제합니다. - CycleTime = 0인 경우 HeatOut 및 CoolOut을 거짓으로 해제합니다.
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 피연산자 관련 폴트에 대해서는 공통 속성 항목을 참조하십시오.
실행
펑션 블록
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag.EnableIn이 거짓임 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag.EnableIn이 참임 | EnableIn 및 EnableOut 비트가 참으로 설정됩니다. 명령어가 실행됩니다. |
명령어 최초 실행 | N/A |
명령어 최초 스캔 | HeatOut 및 CoolOut이 거짓으로 해제되었습니다. HeatTimePercent 및 CoolTimePercent가 0.0으로 해제되었습니다. |
사후 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
구조화된 텍스트
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | 펑션 블록 표의 사전 스캔을 참조하십시오. |
정상 실행 | 펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오. |
사후 스캔 | 펑션 블록 표에서 사후 스캔을 참조하십시오. |
예
이 예는 저속의 온도 회로이므로 PIDE 명령어가 낮은 우선순위의 저속 태스크로 실행됩니다. PIDE 명령어 출력은 SRTP 명령어의 입력이 되므로 컨트롤러 범위 태그입니다. SRTP 명령어가 높은 우선순위의 고속 태스크로 실행되므로 펄스 출력이 보다 정확합니다.
펑션 블록
PIDE 명령어를 낮은 우선순위의 저속 태스크에 배치합니다.

SRTP 명령어를 높은 우선순위의 고속 태스크에 배치합니다.

구조화된 텍스트
PIDE 명령어를 낮은 우선순위의 저속 태스크에 배치합니다.
BarrelTempLoop.PV := BarrelTemp;
PIDE(BarrelTempLoop);
LoopOutput := BarrelTempLoop.CVEU;
SRTP 명령어를 높은 우선순위의 고속 태스크에 배치합니다.
SRTP_02.In := LoopOutput;
SRTP(SRTP_02);
ResistiveHeater := SRTP_02.HeatOut;
CoolingSolenoid := SRTP_02.CoolOut;
의견을 작성 부탁드립니다.