S-곡선(SCRV)

이 정보
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370,
GuardLogix
5570,
CompactLogix
5380,
ControlLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.
SCRV 명령어는 저크 비율을 추가하여 램프 기능을 수행합니다. 저크 비율은 출력을 입력으로 램핑하는 데 사용되는 비율의 최대 변화율입니다.
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램에 사용할 수 없습니다.
펑션 블록
RSL5K_SCRV Function Block_v31
구조화된 텍스트
SCRV(SCRV_tag);
피연산자
펑션 블록
피연산자
유형
형식
설명
SCRV tag
S_CURVE
구조
SCRV 구조
구조화된 텍스트
피연산자
유형
형식
설명
SCRV tag
S_CURVE
구조
SCRV 구조
스트럭쳐드 텍스트 내에서 식의 구문에 대한 자세한 내용은 스트럭쳐드 텍스트 구문을 참조하십시오.
S_CURVE 구조
입력 매개 변수
데이터 유형
설명
EnableIn
BOOL
활성화 입력. 선택하지 않으면 명령이 실행되지 않고 출력이 업데이트되지 않습니다.
기본값은 설정 상태입니다.
In
REAL
명령어의 아날로그 신호 입력.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
Initialize
BOOL
명령어에 대한 초기화 입력. 설정되면 명령어는 Out = InitialValue를 유지합니다.
기본값은 해제 상태입니다.
InitialValue
REAL
S-곡선 초기값. Initialize가 설정되면 Out = InitialValue입니다.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
AbsAlgRamp
BOOL
램프 유형. 설정하면 이 명령어는 절대값 램프로 동작합니다. 해제되면 명령어가 대수 램프로 동작합니다.
기본값은 설정 상태입니다.
AccelRate
REAL
초당 입력 단위의 가속률
2
. 값을 0으로 설정하면 Out이 가속화되는 것을 방지할 수 있습니다. AccelRate < 0이면 명령어가 AccelRate = 0으로 간주하여 Status에서 적절한 비트를 설정합니다.
유효값 = 0.0 ~ 최대 양의 부동 소수점 수
기본값 = 0.0
DecelRate
REAL
초당 입력 단위의 감속률
2
. 값을 0으로 설정하면 Out이 감속되는 것을 방지할 수 있습니다. DecelRate < 0이면 명령어가 DecelRate = 0으로 간주하여 Status에서 적절한 비트를 설정합니다.
유효값 = 0.0 ~ 최대 양의 부동 소수점 수
기본값 = 0.0
JerkRate
REAL
초당 입력 단위의 저크 비율
3
. 출력을 입력으로 램핑할 때 가속률 및 감속률의 최대 변화율을 지정합니다. (JerkRate * DeltaT)가 AccelRate 또는 DecelRate이면 가속률 및 감속률이 바인딩되지 않습니다. 이러한 경우 명령어는 램프 함수로 작동합니다. JerkRate < 0이면 명령어가 JerkRate = 0으로 간주하여 Status에서 적절한 비트를 설정합니다.
유효값 = 0.0 ~ 최대 양의 부동 소수점 수
기본값 = 0.0
HoldMode
BOOL
S-곡선 유지 모드 파라미터. 이 파라미터는 HoldEnable 파라미터와 함께 사용됩니다. HoldEnable이 설정되고 Rate = 0인 상태에서 HoldMode를 설정하면 명령어가 Out을 일정하게 유지합니다. 이 경우 HoldEnable이 설정되는 즉시 명령어가 Out을 유지하고 JerkRate가 무시되며 Out이 해당 프로파일에 "모서리"를 만듭니다. HoldEnable이 설정된 상태에서 HoldMode가 해제되면 명령어가 JerkRate를 사용하여 Out을 상수 값으로 전환합니다. Rate = 0이면 Out이 유지됩니다. HoldEnable이 설정된 경우에는 명령어가 변경을 무시하므로 HoldMode를 변경하지 마십시오.
기본값은 해제 상태입니다.
HoldEnable
BOOL
S-곡선 유지 활성화 파라미터. 설정되면 Out이 유지됩니다. 해제되면 Out이 In과 동일해질 때까지 현재 값에서 이동합니다.
기본값은 해제 상태입니다.
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
활성화 출력.
S_Mode
BOOL
S_Mode 출력. (Jerk * DeltaT)가 Less than or equal to Rate이고
Rate < Accel 또는 Decel이면 S_Mode가 설정됩니다. 그렇지 않으면 S_Mode가 해제됩니다.
Out
REAL
S-곡선 명령어의 출력. 이 출력에 대해 연산 상태 플래그가 설정됩니다.
Rate
REAL
초당 단위의 Out 내부 변경.
DeltaT
REAL
업데이트 간 경과 시간. 컨트롤 알고리즘에서 프로세스 출력 계산에 사용되는 경과 시간(초)입니다.
Status
DINT
펑션 블록의 상태.
InstructFault (Status.0)
BOOL
명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다.
AcceRateInv (Status.1)
BOOL
AccelRate는 음수임.
DecelRateInv (Status.2)
BOOL
DecelRate는 음수임.
JerkRateInv (Status.3)
BOOL
JerkRate는 음수임.
TimingModeInv (Status.27)
BOOL
유효하지 않은 타이밍 모드입니다.
타이밍 모드에 대한 자세한 내용은 함수 블록 속성을 참조하세요.
RTSMissed (Status.28)
BOOL
실시간 샘플링 모드에서만 사용.
ABS | DeltaT - RTSTime | > 1 (.001 초)일 때 설정.
RTSTimeInv (Status.29)
BOOL
유효하지 않은 RTSTime 값.
RTSTimeStampInv (Status.30)
BOOL
유효하지 않은 RTSTimeStamp 값.
DeltaT (Status.31)
BOOL
유효하지 않은 DeltaT 값.
설명
SCRV 명령어의 기본 요구 사항은 비율은 지정된 저크 비율을 초과해서 변경되면 안 된다는 것입니다.
단계 입력을 위한 S-곡선 프로파일 또는 램프 프로파일을 생성하도록 SCRV 명령어를 구성할 수 있습니다.
S-곡선 프로파일
S-곡선 프로파일을 생성하려면 JerkRate를 (JerkRate * DeltaT) < AccelRate 및/또는 DecelRate와 같이 설정합니다.
S-곡선 프로파일 모드에서는 SCRV 명령어가 비율이 지정된 JerkRate를 초과해서 변경되지 않게 합니다. S-곡선 프로파일을 생성하는 데 사용되는 알고리즘은 단계 입력을 위한 매끄러운 대칭 S-곡선을 생성하도록 고안되었습니다. Out의 사다리꼴 적분이 이 작업을 수행하기 위해 통합됩니다. 따라서 프로파일 내에서는 Rate가 JerkRate보다 변화가 작습니다.
입력에서 단계 변경이 발생하면 비율이 프로그래밍된 AccelRate 또는 DecelRate까지 증가합니다. AccelRate 또는 DecelRate는 비율이 0에 도달할 대 출력이 입력에 도달하도록 속도가 줄어들기 시작하는 지점까지 유지됩니다.
때로는 가속도, 감속도 및 저크의 값에 따라 비율이 저크 비율만큼 감속되지 않으면 가속율 또는 감속률에 도달하지 않을 수 있습니다.
매우 작은 단계 변경의 경우 SCRV 명령어가 'S' 프로파일을 생성하려고 시도하지 않습니다. 이 모드에서는 전체 단계가 출력이 되고 Rate가 출력 변경을 반영합니다. 이 동작은 Out = In이고 속도가 프로그래밍된 JerkRate 이하인 비율로 In에 대한 다음 단계 변경이 출력될 수 있는 경우에 발생합니다.
SCRV 명령어는 대수 램프와 절대값 램프를 지원합니다. 대수 램프의 경우 가속 조건은 양수 쪽에 더 가까워지는 입력에 의해 정의되고, 감속 조건은 음수 쪽에 더 가까워지는 입력에 의해 정의됩니다. 절대값 램프의 경우 가속 조건은 0에서 멀어지는 입력에 의해 정의되고, 감속 조건은 0에 가까워지는 입력에 의해 정의됩니다.
램프 프로파일
램프 프로파일을 생성하려면 (JerkRate * DeltaT) Less than or equal to AccelRate 및/또는 DecelRate가 되도록 JerkRate를 설정합니다.
램프 프로파일 모드에서는 SCRV 명령어가 Out과 In의 차이가 끝점에 도달하기 위한 AccelRate 또는 DecelRate보다 작을 때까지 항상 프로그래밍된 AccelRate 또는 DecelRate와 같은 변화율을 생성합니다.
HoldMode = 0은 HoldMode = 1과 동일하게 작동합니다. HoldEnable을 설정하면 Out이 즉시 유지되고 Rate가 0이 됩니다.
다음 다이어그램은 명령어가 Out을 수정하는 방법을 보여줍니다.
SCRV Ramp Profile
(1)
Initialize가 설정되면 명령어는 다음과 같이 설정합니다.
Outn = InitialValue
Outn-1 = Outn
Raten = 0
Raten-1 = 0
(2)
HoldMode가 해제되면 Out이 In 방향으로 이동하고, HoldEnable이 설정되고, 비율은 저크 비율로 0 방향으로 줄어들기 시작합니다. JerkRate 때문에 Out이 속도가 0에 도달했을 때의 값으로 유지됩니다. Out이 드디어 일정하게 유지되면 HoldEnable이 설정된 시점의 값과 다른 값을 갖습니다.
HoldMode가 설정되면 Out이 In 방향으로 이동하고, HoldEnable이 설정되고, 비율이 즉시 0으로 설정됩니다. Out이 HoldEnable이 설정되었을 때의 값으로 유지됩니다.
전환 중 JerkRate를 줄이면 Out이 In을 오버슈트합니다. 오버슈트가 발생한다면 이는 입력된 JerkRate를 강제 적용했기 때문입니다. 전환 중이 아닌 Out = In인 상태에서 JerkRate를 변경하거나 튜닝 중에 JerkRate를 조금씩 단계적으로 줄여 오버슈트를 피할 수 있습니다.
Out이 입력 변경 값과 같아지는 데 필요한 시간은 AccelRate, JerkRate, In과 Out의 차이에 대한 함수입니다.
출력 및 속도 값 계산
초기값에서 최종값으로 전환하는 과정에서 Out은 3가지 영역을 거치게 됩니다. 영역 1과 영역 3에서는 Out의 속도 병환율이 JerkRate를 기반으로 결정됩니다. 영역 2에서는 Out의 속도 병환율이 AccelRate 또는 DecelRate를 기반으로 결정됩니다.
SCRV Calculating Output and Rate Values
각 영역에 대해 다음과 같이 Out이 계산됩니다.
SCRV_fbd_Out_eq
각 영역에 대해 다음 수식 사용:
영역
수식
영역 1
SCRV_fbd_region1_eq
영역 2
SCRV_fbd_region2_eq
영역 3
SCRV_fbd_region3_eq
다음과 같은 경우:
SCRV_fbd_InitOutput_eq
SCRV 블록이 AccelRate 또는 DecelRate에 도달하지 않습니다. Out이 다음을 수행합니다.
SCRV Graph
여기에서:
SCRV_fbd_TotalTime_eq
연산 상태 플래그에 영향
아니요
폴트 조건
부 폴트 발생 조건
폴트 유형
폴트 코드
기능이 활성화되고 오버플로가 감지됨
4
4
피연산자 관련 폴트에 대해서는 공통 속성 항목을 참조하십시오.
실행
펑션 블록
조건
펑션 블록 조치
사전 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
Tag.EnableIn이 거짓임
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
Tag.EnableIn이 참임
EnableIn 및 EnableOut 비트가 참으로 설정됩니다.
명령어가 실행됩니다.
명령어 최초 실행
N/A
명령어 최초 스캔
이전 스캔 데이터를 지웁니다.
사후 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
구조화된 텍스트
조건/상태
수행한 작업
사전 스캔
펑션 블록 표의 사전 스캔을 참조하십시오.
정상 실행
펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오.
사후 스캔
펑션 블록 표에서 사후 스캔을 참조하십시오.
예
대부분의 조정 드라이브 적용에서는 마스터 참조 값이 전체 드라이브 그룹의 라인 속도를 명령합니다. 다양한 참조 값이 선택되어 부하 관성, 모터 토크 및 튜닝의 차이로 인해 개별 드라이브 섹션이 조정된 방식으로 반응하지 못하므로 드라이브가 속도 참조 값에서 “단계” 변경으로 표시될 수 없습니다. SCRV 명령어는 드라이브 섹션에 맞춰 참조 신호의 램프 및 모양을 설정하도록 고안되었으므로 가속도, 감속도 및 저크(가속도 미분)가 제어됩니다. 이 명령어는 드라이브에 대한 참조가 연결된 시스템 및 장비에 대한 과도한 영향과 과도한 힘을 제거하는 방식으로 지정된 참조 설정값에 도달할 수 있게 하는 메커니즘을 제공합니다.
펑션 블록
RSL5K_SCRV Function Block Example_v31
구조화된 텍스트
SSUM_01.In1 := Master_reference;
SSUM_01.Select1 := master_select;
SSUM_01.In2 := Jog_reference;
SSUM_01.Select2 := jog_select;
SSUM(SSUM_01);
select_out := SSUM_01.Out;
SCRV_01.In := select_out;
SCRV_01.AccelRate := accel;
SCRV_01.DecelRate := accel;
SCRV_01.JerkRate := jerk_rate;
SCRV(SCRV_01);
scurve_out := SCRV_01.Out
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal