이동 표준 편차(Moving Standard Deviation, MSTD)

이 정보는 CompactLogix 5370, ControlLogix 5570, CompactGuardLogix 5370, GuardLogix 5570, CompactGuardLogix 5380, CompactLogix 5380, ControlLogix 5580, GuardLogix 5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.
이동 표준 편차(Moving Standard Deviation, MSTD) 명령어는 입력 신호에 대한 이동 표준 편차와 평균값을 계산합니다.
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램 로직에서는 사용할 수 없습니다.
펑션 블록
MSTD_FBD_avail_v31
구조화된 텍스트
MSTD(MSTD_tag, StorageArray);
피연산자
펑션 블록
피연산자
유형
형식
설명
block tag
MOVING_STD_DEV
구조
MSTD 구조
StorageArray
REAL
배열
In 샘플을 유지합니다. 이 배열은 NumberOfSamples 이상이어야 합니다.
MOVING_STD_DEV 구조
입력 매개 변수
데이터 유형
설명
EnableIn
BOOL
활성화 입력. 선택하지 않으면 명령이 실행되지 않고 출력이 업데이트되지 않습니다.
기본값은 설정 상태입니다.
입력
REAL
명령어의 아날로그 신호 입력.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
InFault
BOOL
입력에 불량 상태 표시기. In을 아날로그 입력에서 읽어오는 경우 InFault는 일반적으로 아날로그 입력에 대한 폴트 상태에 의해 제어됩니다. 설정된 경우, InFault는 입력 신호에 에러가 있음을 나타내며, 이 명령어가 Status에 해당 비트를 설정하고 현재 값에서 Out과 Average를 유지합니다. InFault가 설정 상태에서 해제 상태로 전환되면 명령어는 평균 알고리즘을 초기화하고 계속 실행합니다.
기본값은 해제 상태입니다.
초기화
BOOL
이 명령어에 대한 입력을 초기화합니다. 설정된 경우, 이 명령어는 InFault가 설정된 경우(이 경우, 이 명령어는 Out과 Average 둘 다 현재 값에서 유지함)를 제외하고는 Out = 0.0과 Average = In을 설정합니다. Initialize가 설정 상태에서 해제 상태로 전환되는 경우 이 명령어는 표준 편차 알고리즘을 초기화하고 계속 실행합니다.
기본값은 해제 상태입니다.
SampleEnable
BOOL
In 샘플 획득 활성화. 설정된 경우, 이 명령어는 In의 값을 저장 배열에 넣고 새 Out 및 Average 값을 계산합니다. SampleEnable이 해제되고 Initialize가 해제되면, 이 명령어는 Out 및 Average를 현재 값에서 유지합니다.
기본값은 해제 상태입니다.
NumberOfSamples
DINT
계산에 사용될 샘플 수. 이 값이 유효하지 않으면 이 명령어는 Status에 해당 비트를 설정하고 Out 및 Average를 현재 값에서 유지합니다. NumberOfSamples가 다시 유효해지면, 명령어는 표준 편차 알고리즘을 초기화하고 계속 실행합니다.
Valid = 1~저장 배열의 크기
기본값 = 1
출력 매개 변수
데이터 유형
설명
EnableOut
BOOL
명령어의 활성화 여부를 나타냅니다. Out가 오버플로되면 해제됨
Out
REAL
알고리즘의 계산된 출력.
평균
REAL
알고리즘의 계산된 평균값.
상태
DINT
펑션 블록의 상태.
InstructFault (Status.0)
BOOL
명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다.
InFaulted (Status.1)
BOOL
In의 상태가 좋지 않습니다. InFault가 설정됨.
NumberOfSampInv (Status.2)
BOOL
NumberOfSamples가 유효하지 않거나 배열 크기와 호환되지 않습니다.
구조화된 텍스트
피연산자
유형
형식
설명
block tag
MOVING_STD_DEV
구조
MSTD 구조
StorageArray
REAL
배열
In 샘플을 유지합니다. 이 배열은 NumberOfSamples 이상이어야 합니다.
스트럭처드 텍스트 내 식의 구문에 대한 자세한 내용은 구조화된 텍스트 구문 항목을 참조하십시오.
설명
MSTD 명령어는 모든 입력 큐 길이를 지원합니다. SampleEnable이 설정되면 스캔할 때마다 명령어는 In의 값을 저장소 배열에 입력합니다. 저장소 배열이 가득 차면 In의 각 새 값으로 인해 가장 오래된 항목이 삭제됩니다.
MSTD 명령어는 출력에 대해 이러한 등식을 사용합니다.
조건
Action
평균
MSTD_fbd_eq1
Out
MSTD_fbd_eq2
명령어는 유효하지 않은 In 값(NAN 또는 Plus or Minus sign INF)을 저장 배열에 배치하지 않습니다. In이 유효하지 않으면 명령어는 Out = In을 설정하고 Average = In을 설정하며, 이 보고가 활성화된 경우 오버플로 마이너 폴트를 기록합니다. In이 유효해지면 이 명령어는 표준 편차 알고리즘을 초기화하고 계속 실행합니다.
NumberOfSamples 파라미터에 대한 런타임 변경을 수행할 수 있습니다. 값을 높이면 이 명령어는 현재 샘플 크기에서 새 샘플 크기까지 증분식으로 새 데이터를 처리합니다. 값을 낮추면 이 명령어는 샘플 배열의 시작부터 새 NumberOfSamples 값까지 표준 편차를 다시 계산합니다.
표준 편차 알고리즘 초기화
명령어 최초 스캔 및 명령어 최초 실행 등 특정 조건에서는 명령어를 통해 표준 편차 알고리즘을 초기화해야 합니다. 이러한 상황이 발생할 경우 이 명령어는 StorageArray가 비어 있다고 간주하고 1부터 NumberOfSamples 값까지 증분식으로 샘플을 처리합니다. 예:
MSTD_fbd_STDAlgorithm_eq
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 피연산자 관련 폴트에 대해서는 공통 특성 항목을 참조하십시오.
실행
펑션 블록
조건/상태
수행한 작업
사전 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
Tag.EnableIn이 거짓임
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
Tag.EnableIn이 참임
EnableIn 및 EnableOut 비트가 참으로 설정됩니다.
명령어가 실행됩니다.
명령어 최초 실행
이전 Output과 Average를 초기화합니다.
명령어 최초 스캔
Out을 0으로 초기화합니다.
Average를 Input으로 초기화합니다.
명령어 알고리즘을 초기화합니다.
사후 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
구조화된 텍스트
구조화된 텍스트에서 정상 스캔 중에 EnableIn은 항상 참입니다. 명령어가 로직에서 활성화한 제어 경로에 있는 경우 해당 명령어가 실행됩니다.
조건/상태
수행한 작업
사전 스캔
펑션 블록 표의 사전 스캔을 참조하십시오.
정상 실행
펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오.
사후 스캔
펑션 블록 표에서 사후 스캔을 참조하십시오.
예
매 스캔마다 SampleEnable이 설정되면 이 명령어는 In 값을 저장 배열에 넣고, 저장 배열 내 값의 표준 편차를 계산하여 그 결과를 Out에 넣습니다. Out은 function_block_C의 입력 파라미터가 됩니다.
펑션 블록
MSTD_FBD_ex_v31
구조화된 텍스트
MSTD_01.In := input_value;
MSTD_01.SampleEnable := enable_sample;
MSTD(MSTD_01,storage);
deviation := MSTD_01.Out;
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal