고급 선택(ESEL)

이 정보는
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370,
GuardLogix
5570,
Compact GuardLogix
5380,
CompactLogix
5380,
ControlLogix
5580,
GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.
고급 선택(Enhanced Select, ESEL) 명령어를 사용하면 최대 6가지 입력 중 하나를 선택할 수 있습니다. 선택 옵션은 다음과 같습니다.
  • 수동 선택(작업자 또는 프로그램에 의해)
  • 높음 선택
  • 낮음 선택
  • 중앙값 선택
  • 평균값(평균) 선택
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램 로직에서는 사용할 수 없습니다.
펑션 블록
ESEL_FBD_avail_v31
구조화된 텍스트
ESEL(ESEL_tag);
피연산자
펑션 블록
피연산자
유형
형식
설명
ESEL 태그
SELECT_ENHANCED
구조
ESEL 구조
SELECT_ENHANCED 구조
입력 매개 변수
데이터 유형
설명
EnableIn
BOOL
활성화 입력. 거짓이면 명령어가 실행되지 않고 출력이 업데이트되지 않습니다.
기본값은 참입니다.
In1
REAL
이 명령어의 첫 번째 아날로그 신호 입력.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
In2
REAL
이 명령어의 두 번째 아날로그 신호 입력.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
In3
REAL
이 명령어의 세 번째 아날로그 신호 입력.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
In4
REAL
이 명령어의 네 번째 아날로그 신호 입력.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
In5
REAL
이 명령어의 다섯 번째 아날로그 신호 입력.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
In6
REAL
이 명령어의 여섯 번째 아날로그 신호 입력.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
In1Fault
BOOL
In1에 대한 불량 상태 표시기. In1을 아날로그 입력에서 읽어오는 경우 In1Fault는 일반적으로 아날로그 입력에 대한 폴트 상태에 의해 제어됩니다. 모든 InnFault 입력이 참이면 이 명령어는 Status에 해당 비트를 설정하고 제어 알고리즘이 실행되지 않으며 Out이 업데이트되지 않습니다.
기본값 = 거짓
In2Fault
BOOL
In2에 대한 잘못된 상태 표시기. In2를 아날로그 입력에서 읽어오는 경우 In2Fault는 일반적으로 아날로그 입력에 대한 폴트 상태에 의해 제어됩니다. 모든 InnFault 입력이 참이면 이 명령어는 Status에 해당 비트를 설정하고 제어 알고리즘이 실행되지 않으며 Out이 업데이트되지 않습니다.
기본값 = 거짓
In3Fault
BOOL
In3에 대한 잘못된 상태 표시기. In3을 아날로그 입력에서 읽어오는 경우 In3Fault는 일반적으로 아날로그 입력에 대한 폴트 상태에 의해 컨트롤됩니다. 모든 InnFault 입력이 참이면 이 명령어는 Status에 해당 비트를 설정하고 제어 알고리즘이 실행되지 않으며 Out이 업데이트되지 않습니다.
기본값 = 거짓
In4Fault
BOOL
In4에 대한 잘못된 상태 표시기. In4를 아날로그 입력에서 읽어오는 경우 In4Fault는 일반적으로 아날로그 입력에 대한 폴트 상태에 의해 컨트롤됩니다. 모든 InnFault 입력이 참이면 이 명령어는 Status에 해당 비트를 설정하고 제어 알고리즘이 실행되지 않으며 Out이 업데이트되지 않습니다.
기본값 = 거짓
In5Fault
BOOL
In5에 대한 잘못된 상태 표시기. In5를 아날로그 입력에서 읽어오는 경우 In5Fault는 일반적으로 아날로그 입력에 대한 폴트 상태에 의해 컨트롤됩니다. 모든 InnFault 입력이 참이면 이 명령어는 Status에 해당 비트를 설정하고 제어 알고리즘이 실행되지 않으며 Out이 업데이트되지 않습니다.
기본값 = 거짓
In6Fault
BOOL
In6에 대한 잘못된 상태 표시기. In6을 아날로그 입력에서 읽어오는 경우 In6Fault는 일반적으로 아날로그 입력에 대한 폴트 상태에 의해 컨트롤됩니다. 모든 InnFault 입력이 참이면 이 명령어는 Status에 해당 비트를 설정하고 제어 알고리즘이 실행되지 않으며 Out이 업데이트되지 않습니다.
기본값 = 거짓
InsUsed
DINT
사용된 입력 수. 이 값은 명령어에 사용되는 입력 수를 정의합니다. 이 명령어는 최대값 선택, 최소값 선택, 중앙값 선택 및 평균값 선택 모드에서 In
InsUsed
를 통해 In1만 고려합니다. 이 값이 유효하지 않으면 이 명령어는 Status에 해당 비트를 설정합니다. 이 명령어는 InsUsed가 유효하지 않은 경우, 이 명령어가 수동 선택 모드에 있지 않은 경우, 그리고 Override가 해제된 경우 Out을 업데이트하지 않습니다.
유효값 = 1~6
기본값 = 1
Selector Mode
DINT
셀렉터 모드 입력. 이 값은 명령어의 동작을 결정합니다.
0 = 수동 선택
1 = 최대값 선택
2 = 최소값 선택
3 = 중앙값 선택
4 = 평균값 선택
이 값이 유효하지 않으면 명령어는 Status에 적절한 비트를 설정하고 Out을 업데이트하지 않습니다.
유효값 = 0~4
기본값 = 0
ProgSelector
DINT
프로그램 셀렉터 입력. 셀렉터 모드가 수동 선택이고 명령어가 프로그램 컨트롤 상태이면, ProgSelector는 출력으로 옮길 입력(In1-In6)을 결정합니다. ProgSelector = 0이면 이 명령어는 Out을 업데이트하지 않습니다. ProgSelector가 유효하지 않으면 이 명령어는 Status에 해당 비트를 설정합니다. 유효하지 않고 명령어가 프로그램 컨트롤 상태이며, 셀렉터 모드가 수동 선택이거나 오버라이드가 설정된 경우, 이 명령어는 Out을 업데이트하지 않습니다.
유효값 = 0~6
기본값 = 0
OperSelector
DINT
작업자 셀렉터 입력. 셀렉터 모드가 수동 선택이고 명령어가 오퍼레이터 컨트롤 상태이면, OperSelector는 출력으로 옮길 입력(In1-In6)을 결정합니다. OperSelector = 0이면 이 명령어는 Out을 업데이트하지 않습니다. OperSelector가 유효하지 않으면 이 명령어는 Status에 해당 비트를 설정합니다. 유효하지 않고 명령어가 작업자 제어 상태이며, 셀렉터 모드가 수동 선택이거나 오버라이드가 설정된 경우, 이 명령어는 Out을 업데이트하지 않습니다.
유효값 = 0~6
기본값 = 0
ProgProgReq
BOOL
프로그램 프로그래밍 요청. 프로그램 제어를 요청하려면 사용자 프로그램을 통해 참으로 설정합니다. ProgOperReq가 참인 경우 무시됩니다. 이 값을 참으로 유지하고 ProgOperReq를 거짓으로 유지하면 명령어를 프로그램 컨트롤로 잠급니다.
기본값은 거짓입니다.
ProgOperReq
BOOL
프로그램 작업자 요청. 작업자 제어를 요청하려면 사용자 프로그램을 통해 참으로 설정합니다. 이 값을 참으로 유지하면 명령어가 오퍼레이터 컨트롤로 잠깁니다.
기본값은 거짓입니다.
ProgOverrideReq
BOOL
프로그램 오버라이드 요청. 장치에 오버라이드 모드로 전환하도록 요청하려면 사용자 프로그램을 통해 참으로 설정합니다. 오버라이드 모드에서는 이 명령어가 수동 선택으로 작동합니다.
기본값은 거짓입니다.
OperProgReq
BOOL
작업자 프로그램 요청. 프로그램 제어를 요청하려면 작업자 인터페이스에서 참으로 설정합니다. 명령어는 이 입력을 거짓으로 해제합니다.
기본값은 거짓입니다.
OperOperReq
BOOL
작업자 작업자 요청. 작업자 제어를 요청하려면 작업자 인터페이스에서 참으로 설정합니다. 명령어는 이 입력을 거짓으로 해제합니다.
기본값은 거짓입니다.
ProgValueReset
BOOL
프로그램 제어 값 리셋. 참이면 매번 명령어가 실행될 때마다 모든 프로그램 요청 입력이 거짓으로 해제됩니다.
기본값은 거짓입니다.
출력 매개 변수
데이터 유형
설명
EnableOut
BOOL
명령어의 활성화 여부를 나타냅니다. Out이 오버플로되는 경우 거짓으로 해제됩니다.
Out
REAL
알고리즘의 계산된 출력.
SelectedIn
DINT
선택한 입력 수. 이 명령어는 이 값을 사용하여 현재 출력에 배치 중인 입력 수를 표시합니다. 셀렉터 모드가 평균값 선택이면 이 명령어는 SelectedIn = 0을 설정합니다.
ProgOper
BOOL
프로그램/작업자 제어 표시기. 프로그램 제어일 때 참으로 설정됩니다. 작업자 제어 상태일 때 거짓으로 해제됩니다.
오버라이드
BOOL
오버라이드 모드. 오버라이드 모드일 때는 참으로 설정됩니다.
상태
DINT
펑션 블록의 상태.
InstructFault (Status.0)
BOOL
명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다.
InsFaulted (Status.1)
BOOL
사용된 모든 Inn 입력에 대한 InnFault 입력은 참임.
InsUsedInv (Status.2)
BOOL
유효하지 않은 InsUsed 값.
SelectorModeInv (Status.3)
BOOL
유효하지 않은 SelectorMode 값.
ProgSelectorInv (Status.4)
BOOL
유효하지 않은 ProgSelector 값
OperSelectorInv (Status.5)
BOOL
유효하지 않은 OperSelector 값.
구조화된 텍스트
피연산자
유형
형식
설명
ESEL 태그
SELECT_ENHANCED
구조
ESEL 구조
스트럭쳐드 텍스트 내 식의 구문에 대한 자세한 내용은 스트럭쳐드 텍스트 구문을 참조하십시오.
설명
ESEL 명령어는 다음과 같이 작동합니다.
조건
Action
SelectorMode = 0(수동 선택) 또는
오버라이드가 참이고, ProgOper가 거짓이며 OperSelector가 0이 아님
Out = In[OperSelector]
SelectedIn = OperSelector
SelectorMode = 0(수동 선택) 또는
오버라이드가 참이고, ProgOper가 참이며, ProgSelector가 0이 아님
Out = In[ProgSelector]
SelectedIn = ProgSelector
SelectorMode = 1(최대값 선택) 및
오버라이드가 거짓임
Out = In[InsUsed]의 최대값
SelectedIn = 최대 입력 값의 인덱스
SelectorMode = 2(최소값 선택) 및
오버라이드가 거짓임
Out = In[InsUsed]의 최소값
SelectedIn = 최소 입력 값의 인덱스
SelectorMode = 3(중앙값 선택) 및
오버라이드가 거짓임
Out = In[InsUsed]의 중앙값
SelectedIn = 중앙 입력 값의 인덱스
SelectorMode = 4(평균값 선택) 및
오버라이드가 거짓임
Out = In[InsUsed]의 평균값
SelectedIn = 0
SelectorMode 1 ~ 4의 경우, 입력에 대한 불량 상태 표시로 인해 해당 불량 입력이 선택에서 무시됩니다. 예를 들어 SelectorMode = 1(최대값 선택)이고 In6에 최고값이 들어 있지만 상태가 불량한 경우, 상태가 양호한 차상위 입력이 출력으로 이동됩니다.
최대값 또는 최소값 선택 모드의 경우, 두 입력이 같고 높거나 낮으면, 이 명령어는 처음으로 찾은 입력을 출력합니다. 중앙값 선택 모드의 경우 항상 중앙값이 사용 가능한 입력에서 선택한 값을 나타냅니다. 두 개 이상의 값이 중앙값일 수 있는 경우 이 명령어는 처음으로 찾은 입력을 출력합니다.
프로그램 제어와 작업자 제어 간에 전환
다음 다이어그램에서는 ESEL 명령어가 프로그램 컨트롤과 오퍼레이터 컨트롤 간에 변경하는 방법을 보여줍니다.
ESEL Switch between program and operator control
(1) ProgOperReq를 참으로 유지하면 작업자 제어 모드에서 이 명령어를 잠글 수 있습니다.
(2) ProgOperReq가 거짓인 동안 ProgProgReq를 참으로 유지하면 이 명령어를 프로그램 제어 모드에서 잠글 수 있습니다.
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
기능이 활성화되고 오버플로가 감지되면 부 폴트가 발생합니다(폴트 유형: 4, 폴트 코드: 4).
실행
펑션 블록
조건/상태
수행한 작업
사전 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
Tag.EnableIn이 거짓임
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
Tag.EnableIn이 참임
EnableIn 및 EnableOut 비트가 참으로 설정됩니다.
명령어가 실행됩니다.
명령어 최초 실행
이 명령어는 작업자 제어로 설정되어 있습니다.
명령어 최초 스캔
N/A
사후 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
구조화된 텍스트
조건/상태
수행한 작업
사전 스캔
펑션 블록 표의 사전 스캔을 참조하십시오.
정상 실행
펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오.
사후 스캔
펑션 블록 표에서 사후 스캔을 참조하십시오.
예
이 ESEL 명령어는 SelectorMode에 따라 In1, In2 또는 In3을 선택합니다. 이 예에서는 SelectorMode = 1이며, 이는 최대값 선택을 의미합니다. 이 명령어는 가장 큰 입력 값을 결정하고 Out = 가장 큰 In을 설정합니다.
펑션 블록
ESEL_FBD_ex_v31
구조화된 텍스트
ESEL_01.In1 := analog_input1;
ESEL_01.In2 := analog_input2;
ESEL_01.In3 := analog_input3;
ESEL_01.SelectorMode := 1;
ESEL(ESEL_01);
selected_value := ESEL_01.Out;
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal