프로세스 이산 입력(Process Discrete Input, PDI)

이 정보는 CompactLogix 5380P, ControlLogix 5580P 및 ControlLogix 5590P 컨트롤러에 적용됩니다.
프로세스 이산 입력(PDI) 명령어는 이산(참 또는 거짓) 입력을 모니터링하고 경보 조건을 확인합니다. PDI 명령어를 사용하여 이산 입력 모듈의 채널에서 신호를 처리합니다. PDI 명령어를 이산(BOOL) 신호와 함께 사용합니다.
PDI 명령어는 다음 기능을 제공합니다.
  • 상태를 유지해야 하는 최소 시간 상태를 지정하여 빠른 상태 변경을 필터링하기 위해 이산 입력 신호를 디바운스합니다.
  • 입력 상태 표시, 0 상태 및 1 상태 이름을 구성할 수 있습니다. 입력이 대체된 경우에도 입력 상태는 독립적으로 표시됩니다.
  • 입력 상태를 목표값 또는 정상 상태와 비교한 결과, 목표값 불일치 상태. 목표값 불일치 상태는 구성 가능한 게이트 지연이 있는 게이트 입력 신호에 의해 활성화됩니다. 목표값 불일치 상태 켜짐 및 꺼짐 지연을 구성할 수 있습니다. 목표값 불일치 상태에는 관련 태그 기반 경보가 있습니다.
  • 연산자의 폴트를 표시하여 프로세스 변수(PV) 폴트 입력을 처리합니다. PV 폴트에는 관련 태그 기반 경보가 있습니다.
  • 연산자는 대체 PV를 선택하고 수동으로 입력할 수 있습니다. 이 수동 오버라이드는 연산자에게 명확하게 표시됩니다. 선택적으로, 사용자는 목표값 불일치 상태 또는 경보가 생성되지 않도록 대체 PV 신호를 구성하여 목표값 입력을 추적할 수 있습니다.
  • 명령어 테스트, 데모 또는 연산자 교육에서 사용하기 위한 가상 PV를 지원합니다.
사용 가능한 언어
래더 다이어그램
PDI_avail_ladder_v33
함수 블록 다이어그램
PDI_FBD_v33
구조화된 텍스트
PDI(PDI 태그, BusObj);
피연산자
중요: 다음과 같은 경우 작업 시 예외가 발생할 수 있습니다.
  • 출력 태그 피연산자가 덮어써집니다.
  • 구조 피연산자의 구성원이 덮어써집니다.
  • 지정된 경우를 제외하고 여러 명령어에서 구조 피연산자를 공유합니다.
명령어 내에서 숫자 데이터 유형을 혼합하기 위한 데이터 변환 규칙이 있습니다. 데이터 변환 항목을 참조하십시오.
구성 피연산자
피연산자
유형
형식
설명
PDI
P_DISCRETE_INPUT
태그
명령어의 적절한 연산에 필요한 데이터 구조.
BusObj
BUS_OBJ
태그
버스 구성 요소. Null일 수 있습니다.
P_DISCRETE_INPUT 구조
공개 구성원은 프로그래밍 방식으로 액세스할 수 있는 표준(표시) 태그 구성원입니다. 비공개 또는 숨겨진 구성원은 HMI 페이스 플레이트에서 사용되며 프로그래밍 방식으로 액세스할 수 없습니다. 비공개 구성원은 공개 구성원 다음의 별도의 테이블에 나열됩니다.
공개 입력 구성원
데이터 유형
설명
EnableIn
BOOL
활성화 입력.
래더 다이어그램:
렁 상태에 해당합니다.
기본값은 참입니다.
Inp_InitializeReq
BOOL
1 = 명령어를 초기화하도록 요청합니다. 명령어는 명령어 최초 실행에서 정상적으로 초기화됩니다. 이 요청을 사용하여 다시 초기화합니다. 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 참입니다.
Inp_PVData
BOOL
장치의 입력 신호(프로세스 변수).
EnableIn이 거짓이면 명령어가 실행되고 처리를 위해 Inp_PVData 신호의 역을 사용합니다.
기본값은 참입니다.
Inp_ModFault
BOOL
1 = I/O 모듈 오류 또는 모듈 통신 상태 불량,
0 = 정상.
기본값은 거짓입니다.
Inp_ChanFault
BOOL
1 = I/O 채널 폴트 또는 실패,
0 = 정상.
기본값은 거짓입니다.
Inp_PVUncertain
BOOL
채널 데이터 정확도가 확인되지 않았음을 나타냅니다.
1 = 채널 데이터가 불확실합니다.
이 입력은 가상이 아닌 경우 Sts_PVUncertain을 설정합니다.
기본값은 거짓입니다.
Inp_PVNotify
SINT
관련 PV 객체 경보 우선 순위 및 승인 상태.
0 = 경보 중이 아님, 승인됨,
1 = 경보 중이 아님, 승인되지 않음 또는 재설정 필요,
2 = 낮은 심각도 경보, 승인됨,
3 = 낮은 심각도 경보, 승인되지 않음,
4 = 중간 심각도 경보, 승인됨,
5 = 중간 심각도 경보, 승인되지 않음,
6 = 높은 심각도 경보, 승인됨,
7 = 높음 심각도 경보, 승인되지 않음,
8 = 긴급 심각도 경보, 승인됨,
9 = 긴급 심각도 경보, 승인되지 않음.
기본값 = 0.
Inp_Target
BOOL
입력의 목표값 상태. 입력 Inp_PVData는 게이트 함수를 사용하여 목표값 상태와 비교됩니다. 목표값 상태에 없는 경우 목표값 불일치 상태(Sts_TgtDisagree)가 1로 설정되고 목표값 불일치 태그 기반 경보가 발생합니다(활성화된 경우).
기본값은 참입니다.
Inp_Gate
BOOL
상태 탐지에 사용되는 게이트 입력입니다.
1 = 목표값 불일치 모니터링이 활성화됩니다.
0 = 목표값 불일치 감지가 비활성화되고 목표값 불일치 상태 출력이 강제 해제됩니다.
기본값은 참입니다.
Inp_Reset
BOOL
1 = 쉐드 래치를 재설정하고 경보를 해제합니다.
기본값은 거짓입니다.
Cfg_AllowDisable
BOOL
1 = 유지 관리가 경보를 비활성화하도록 허용.
기본값은 참입니다.
Cfg_AllowShelve
BOOL
1 = 오퍼레이터가 경보를 보류할 수 있습니다.
기본값은 참입니다.
Cfg_NoSubstPV
BOOL
유지 관리 대체 기능을 비활성화합니다.
0 = 대체 PV 유지 관리 기능이 활성화됨,
1 = 대체 PV 유지 관리 기능이 비활성화됨.
Cfg_NoSubstPV 0이면 입력 PV 또는 대체 PV를 선택하는 데 MCmd_SubstPV 및 MCmd_InpPV 명령이 사용됩니다. 대체 PV가 선택되면 Sts_SubstPV가 1로 설정됩니다.
기본값은 거짓입니다.
Cfg_SubstTracksTarget
BOOL
1 = 대체 PV가 Inp_Target 추적, 0 = 대체 PV가 MSet_SubstPV 의해 설정됩니다.
기본값은 거짓입니다.
Cfg_NormTextVis
BOOL
1 = 상태 텍스트가 정상 상태에 표시됩니다.
0 = 상태 텍스트가 정상 상태에서 숨겨져 있습니다.
기본값은 참입니다.
Cfg_HasMoreObj
BOOL
1 = 추가 정보가 포함된 객체를 HMI에 알립니다.
기본값은 거짓입니다.
Cfg_Debounce
REAL
최소 시간 상태는 상태를 유지해야 합니다(초). 입력 PV를 디바운스하여 상태가 각 상태에서 최소 시간 유지되도록 합니다.
유효값 = 0.0~2147483, 0초.
기본값 = 0.0.
Cfg_GateDly
REAL
목표값 불일치 게이트 지연(초). 목표값 불일치 조건을 선택하기 전에 시간 Inp_Gate는 1이어야 합니다.
유효값 = 0.0~2147483, 0초.
기본값 = 0.0.
Cfg_TgtDisagreeOffDly
REAL
입력이 목표값과 일치하여 상태를 해제하는 최소 시간(초).
유효값 = 0.0~2147483, 0초.
기본값은 0.0입니다.
Cfg_TgtDisagreeOnDly
REAL
입력이 목표값과 불일치하여 상태를 올리는 최소 시간(초).
유효값 = 0.0~2147483, 0초.
기본값은 0.0입니다.
Cfg_CnfrmReqd
SINT
오퍼레이터 명령 확인이 필요합니다. 필요한 명령 확인 유형을 나타냅니다.
0 = 없음,
1 = 명령 확인이 필요합니다.
2 = 수행자 전자 서명이 필요합니다.
3 = 수행자 및 승인자 전자 서명이 필요합니다.
기본값은 0입니다.
Set_VirtualPV
BOOL
가상에서 사용되는 PV(Sts_Virtual 1). 명령어가 가상(Inp_Virtual 0) 상태가 아닌 경우, Set_VirtualPV 입력은 가상으로의 무충돌 전환을 위해 입력 PV(Inp_PVData)를 추적합니다.
기본값은 거짓입니다.
PCmd_Virtual
BOOL
가상(시뮬레이션된) 장치 작업을 선택하는 프로그램 명령. 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
PCmd_Physical
BOOL
물리적 장치 작업(시뮬레이션되지 않음)을 선택하는 프로그램 명령. 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
PCmd_Reset
BOOL
재설정이 필요한 모든 경보 및 래치 쉐드 조건을 재설정하는 프로그램 명령. 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
XCmd_Reset
BOOL
모든 경보 및 래치 쉐드 조건을 재설정하는 External 명령입니다. 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
XCmd_ResetAckAll
BOOL
모든 경보 및 래치 쉐드 조건을 승인 및 재설정하는 External 명령입니다. 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
공개 출력 구성원
데이터 유형
설명
EnableOut
BOOL
활성화 출력. 이 출력 상태는 항상 EnableIn 입력 상태를 반영합니다.
Out
BOOL
이산 입력 상태(사용되는 경우 바운스 해제 및 수동 오버라이드 포함).
0 = 이산 입력 꺼짐,
1 = 이산 입력 켜짐.
Out_InpPV
BOOL
Inp_PVData 에코(실제 원시 또는 가상 입력).
Out_Reset
BOOL
1 = 초기화 명령이 수신 및 수락됨.
Sts_Initialized
BOOL
1 = 명령어가 초기화됩니다. Inp_InitializeReq를 사용하여 다시 초기화합니다.
Sts_PVUncertain
BOOL
채널 데이터 정확도가 확인되지 않았음을 나타냅니다. 1 = 채널 데이터가 불확실합니다. 이 출력은 Inp_PVUncertain을 통해 설정됩니다(가상이 아닌 경우).
Sts_SubstPV
BOOL
1 = 대체 PV 사용(오버라이드).
Sts_InpPV
BOOL
1 = 입력 PV 사용(정상).
Sts_Virtual
BOOL
1 = 장치(Inp_PVData)의 입력 대신 가상 PV를 사용하여 출력을 계산합니다.
0 = 명령어가 입력 피연산자 Inp_PVData를 사용하여 출력을 계산합니다.
SrcQ_IO
SINT
1차 입력 또는 출력의 소스 및 품질(열거됨):
0 = 양호, 라이브, 양호로 확인됨,
1 = 양호, 라이브, 양호로 간주됨,
2 = 양호, 피드백 없음, 양호로 간주됨,
8 = 테스트, 가상화됨,
9 = 테스트, 루프백,
10 = 테스트, 수동으로 입력됨,
16 = 불확실, 라이브, 규격 이탈,
17 = 불확실, 장치 또는 버스로 대체됨,
18 = 불확실, 명령어에서 대체됨,
19 = 불확실, 알려진 마지막 양호 상태 사용,
20 = 불확실, 교체 값 사용,
32 = 불량, 신호 실패,
33 = 불량, 채널 오류,
34 = 불량, 모듈 또는 통신 폴트,
35 = 불량, 잘못된 구성.
SrcQ
SINT
1차 값 또는 상태의 소스 및 품질(열거됨):
0 = 양호, 라이브, 양호로 확인됨,
1 = 양호, 라이브, 양호로 간주됨,
2 = 양호, 피드백 없음, 양호로 간주됨,
8 = 테스트, 가상화됨,
9 = 테스트, 루프백,
10 = 테스트, 수동으로 입력됨,
16 = 불확실, 라이브, 규격 이탈,
17 = 불확실, 장치 또는 버스로 대체됨,
18 = 불확실, 명령어에서 대체됨,
19 = 불확실, 알려진 마지막 양호 상태 사용,
20 = 불확실, 교체 값 사용,
32 = 불량, 신호 실패,
33 = 불량, 채널 오류,
34 = 불량, 모듈 또는 통신 폴트,
35 = 불량, 잘못된 구성.
Sts_eSts
SINT
장치 확인 상태 값:
0 = PV 양호,
1 = PV 불분명,
2 = PV 불량,
3 = PV 대체됨.
Sts_eFault
SINT
장치 폴트 상태 값:
0 = 없음,
1 = 목표값 불일치,
2 = 구성 오류.
Sts_eNotify
SINT
모든 경보 상태 열거 값:
0 = 경보 중이 아님, 승인됨,
1 = 경보 중이 아님, 승인되지 않음 또는 재설정 필요,
2 = 낮은 심각도 경보, 승인됨,
3 = 낮은 심각도 경보, 승인되지 않음,
4 = 중간 심각도 경보, 승인됨,
5 = 중간 심각도 경보, 승인되지 않음,
6 = 높은 심각도 경보, 승인됨,
7 = 높음 심각도 경보, 승인되지 않음,
8 = 긴급 심각도 경보, 승인됨,
9 = 긴급 심각도 경보, 승인되지 않음.
Sts_eNotifyAll
SINT
관련 객체를 포함한 모든 경보 상태 열거 값:
0 = 경보 중이 아님, 승인됨,
1 = 경보 중이 아님, 승인되지 않음 또는 재설정 필요,
2 = 낮은 심각도 경보, 승인됨,
3 = 낮은 심각도 경보, 승인되지 않음,
4 = 중간 심각도 경보, 승인됨,
5 = 중간 심각도 경보, 승인되지 않음,
6 = 높은 심각도 경보, 승인됨,
7 = 높음 심각도 경보, 승인되지 않음,
8 = 긴급 심각도 경보, 승인됨,
9 = 긴급 심각도 경보, 승인되지 않음.
Sts_eNotifyIOFault
SINT
IOFault 경보 상태 열거 값.
0 = 경보 중이 아님, 승인됨,
1 = 경보 중이 아님, 승인되지 않음 또는 재설정 필요,
2 = 낮은 심각도 경보, 승인됨,
3 = 낮은 심각도 경보, 승인되지 않음,
4 = 중간 심각도 경보, 승인됨,
5 = 중간 심각도 경보, 승인되지 않음,
6 = 높은 심각도 경보, 승인됨,
7 = 높음 심각도 경보, 승인되지 않음,
8 = 긴급 심각도 경보, 승인됨,
9 = 긴급 심각도 경보, 승인되지 않음.
Sts_eNotifyTgtDisagree
SINT
TgtDisagree 경보 상태 열거 값.
0 = 경보 중이 아님, 승인됨,
1 = 경보 중이 아님, 승인되지 않음 또는 재설정 필요,
2 = 낮은 심각도 경보, 승인됨,
3 = 낮은 심각도 경보, 승인되지 않음,
4 = 중간 심각도 경보, 승인됨,
5 = 중간 심각도 경보, 승인되지 않음,
6 = 높은 심각도 경보, 승인됨,
7 = 높음 심각도 경보, 승인되지 않음,
8 = 긴급 심각도 경보, 승인됨,
9 = 긴급 심각도 경보, 승인되지 않음.
Sts_UnackAlmCount
DINT
승인되지 않은 경보의 수입니다.
Sts_MaintByp
BOOL
1 = 장치에 유지 관리 바이패스 기능이 활성화되어 있습니다.
Sts_Err
BOOL
1 = 구성 중 오류: 이유는 상세 비트(Sts_Errxxx)를 참조하세요.
Sts_ErrGateDly
BOOL
1 = 구성 중 오류: Cfg_GateDly 값이 유효하지 않습니다.
Sts_ErrTgtDisagreeOffDly
BOOL
1 = 구성 중 오류: Cfg_TgtDisagreeOffDly 값이 유효하지 않습니다.
Sts_ErrTgtDisagreeOnDly
BOOL
1 = 구성 중 오류: Cfg_TgtDisagreeOnDly 값이 유효하지 않습니다.
Sts_ErrDebounce
BOOL
1 = 구성 중 오류: Cfg_Debounce 값이 유효하지 않습니다.
Sts_ErrAlm
BOOL
1 = 태그 기반 경보 설정 오류.
Sts_Alm
BOOL
1 = 경보가 활성 상태입니다.
Sts_AlmInh
BOOL
1 = 경보가 보류 또는 비활성 상태입니다.
Sts_IOFault
BOOL
IO 오류 상태(0 = 정상, 1 = 불량). 1 = 채널 데이터가 정확하지 않음. 이 출력은 가상 상태가 아닌 경우 Inp_IOFault로 설정됩니다.
상태에 대해 미리 정의된 기본 이산 태그 기반 경보가 있습니다. 이산 태그 기반 경보의 표준 구성 구성원을 설정합니다. 다음 형식을 사용하여 경보 요소에 액세스합니다.
PDITag.@Alarms.Alm_IOFault.AlarmElement
Sts_TgtDisagreeCmp
BOOL
게이트 전 입력 대 목표값 비교 결과. 1 = 입력이 목표값과 일치하지 않습니다.
Sts_TgtDisagreeGate
BOOL
목표값 불일치 게이트 지연 상태. 1 = 목표값 불일치 게이트가 열려 있습니다.
Sts_TgtDisagree
BOOL
게이트 입력 대 목표값 비교 결과. 1 = 입력이 목표값 상태에 없습니다.
상태에 대해 미리 정의된 기본 이산 태그 기반 경보가 있습니다. 이산 태그 기반 경보의 표준 구성 구성원을 설정합니다. 다음 형식을 사용하여 경보 요소에 액세스합니다.
PDITag.@Alarms.Alm_TgtDisagree.AlarmElement
Sts_RdyAck
BOOL
1 = 경보를 승인할 준비가 되었습니다.
Sts_RdyReset
BOOL
1 = 래치 경보 또는 쉐드 조건을 재설정할 준비가 되었습니다.
XRdy_Reset
BOOL
1 = XCmd_Reset 준비, HMI 버튼 활성화.
XRdy_ResetAckAll
BOOL
1 = XCmd_ResetAckAll 준비, HMI 버튼 활성화.
개인 입력 구성원
데이터 유형
설명
MSet_SubstPV
BOOL
Sts_SubstPV가 1일 때 입력 PV를 오버라이드하는 유지 관리 입력 대체 PV입니다. 대체를 사용하지 않는 경우(Sts_SubstPV 거짓) MSet_SubstPV 설정은 입력 PV에서 대체 PV로의 무충돌 전환에 대한 Out 값을 추적합니다.
기본값은 거짓입니다.
MCmd_SubstPV
BOOL
대체 PV를 사용하는 유지 관리 명령(오버라이드 입력). 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
MCmd_InpPV
BOOL
입력 PV(정상)를 사용하는 Maintenance 명령입니다. 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
MCmd_Physical
BOOL
물리적 장치 작업을 선택하는 Maintenance 명령(시뮬레이션되지 않음). 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
MCmd_Virtual
BOOL
가상(시뮬레이션된) 장치 작업을 선택하는 유지 관리 명령. 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
OCmd_Reset
BOOL
모든 경보 및 래치 쉐드 조건을 재설정하는 오퍼레이터 명령입니다. 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
OCmd_ResetAckAll
BOOL
모든 경보 및 래치 쉐드 조건을 승인 및 재설정하는 오퍼레이터 명령입니다. OCmd_ResetAckAll의 사용이 HMI로 제한됩니다. 명령어에 의해 이 피연산자가 자동으로 지워집니다.
기본값은 거짓입니다.
개인 출력 구성원
데이터 유형
설명
HMI_BusObjIndex
DINT
HMI 디스플레이에서 사용하기 위한 목적으로 버스 배열에서 이 객체의 인덱스입니다.
기본값은 0입니다.
MRdy_SubstPV
BOOL
1 = 명령어가 SubstPV 명령에 사용할 준비가 되었습니다.
MRdy_InpPV
BOOL
1 = 명령어가 InpPV 명령에 사용할 준비가 되었습니다.
MRdy_Physical
BOOL
1 = MCmd_Physical 준비, HMI 버튼 활성화.
MRdy_Virtual
BOOL
1 = MCmd_Virtual 준비, HMI 버튼 활성화.
ORdy_Reset
BOOL
1 = 래치 경보 또는 쉐드 조건을 재설정할 준비가 되었습니다.
ORdy_ResetAckAll
BOOL
1 = 래치된 경보 또는 쉐드 조건을 재설정하거나 승인할 준비가 되었습니다.
공개 InOut 구성원
데이터 유형
설명
BusObj
BUS_OBJ
버스 구성 요소
BUS_OBJ 구조
BUS_OBJ 구조는 이산 입력 명령어를 복잡한 컨트롤 전략으로 기타 장치와 명령어를 일반적으로 계층에 연결하는 데 사용됩니다. 버스 개체는 낮은 레벨 장치에서 더 높은 레벨 컨트롤로 상태 및 경보 정보를 롤업하고 더 높은 레벨 컨트롤에서 낮은 레벨 장치로 명령을 팬아웃합니다. 버스와 연관된 BUS_OBJ 배열의 단일 구성원을 참조하여 버스에 대한 항목 링크입니다.
이 매개 변수는 명령이 작동하는 데 필요한 데이터가 포함된 외부 태그에 명령을 연결합니다. 외부 태그는 표시된 데이터 유형이거나 NULL일 수 있습니다. NULL이면 이 명령어의 버스 기능을 사용할 수 없습니다.
구성원
데이터 유형
설명
Inp_Cmd
DINT
어설션 입력 명령
Out_Cmd
DINT
결과 명령
Inp_CmdLLH
DINT
일반적으로 높은 레벨에 대한 입력 명령
Out_CmdLLH
DINT
결과 라인 레벨 높음 명령
Inp_Sts
DINT
어설션 입력 상태
Out_Sts
DINT
결과 상태
Inp_CmdAck
DINT
명령어 승인 어설션 입력
Out_CmdAck
DINT
결과 명령 승인
Inp_SeverityMax
DINT
입력: 최대 경보 심각도
Out_SeverityMax
DINT
최대 경보 심각도 결과
Cfg_CmdMask
DINT
명령에 대한 전파 마스크
Cfg_CmdLLHMask
DINT
라인 레벨 높음 명령에 대한 전파 마스크
Cfg_StsMask
DINT
상태에 대한 전파 마스크
Ref_Index
DINT
버스 배열 인덱스
경보
이러한 구성원에 대한 이산 태그 기반 경보가 정의됩니다.
구성원
경보 이름
설명
Sts_TgtDisagree
Alm_TgtDisagree
목표값 불일치 상태.
Sts_IOFault
Alm_IOFault
I/O 폴트 상태(PV 대체가 활성 상태이면 생성되지 않음).
경보를 사용 또는 사용되지 않음으로 표시하고 이산 Logix 태그 기반 경보의 표준 구성 구성원을 설정합니다. 다음 형식을 사용하여 경보 요소에 액세스합니다.
PDITag.@Alarms.AlarmName.AlarmElement
명령어의 모든 경보를 동시에 재설정하고 재설정 및 승인하는 프로그램, 오퍼레이터, External 명령(경보 세트)이 있습니다. 이 다이어그램은 명령이 명령어와 상호 작용하는 방식을 보여줍니다.
PDI_alarmoperation_v33
연산
게이트 함수를 사용하면 다른 조건이 참일 때 비정상적인 조건(경보 조건)을 발생시킬 수 있습니다. 예를 들어 높은 진동 스위치는 연결된 모터가 안정화될 수 있을 만큼 충분히 오래 실행될 때에만 경보를 발생해야 합니다. 경보가 발생하려면 Inp_Gate 입력을 1(기본값)로 설정하고 Sts_TgtDisagree의 태그 기반 경보를 활성화해야 합니다. 경보는 게이트 지연(Cfg_GateDly) 시간 동안 Inp_Gate 입력이 설정될 때까지 발생하지 않습니다.
Inp_PVData(프로세스 변수) 입력이 Inp_Target(목표값) 입력과 다를 경우 경보가 발생합니다. 목표값은 정상 조건을 나타냅니다. 예를 들어 흐름 스위치는 펌프가 실행 중인 경우 흐름을 나타내고 펌프가 중지된 경우 흐름을 나타내지 않아야 합니다. 펌프 실행 상태가 목표값 입력으로 사용되고, 스위치가 목표값과 일치하지 않으면(할당된 시간 내) 경보(흐름 손실/스위치 고장)가 발생합니다.
팁: 래더 다이어그램에서 렁-입력-조건이 거짓인 경우 명령어는 처리를 위해 Inp_PVData 신호의 역을 사용합니다. 따라서 입력이 Inp_PVData 매핑되지 않고 PDI가 포함된 렁에서 조건이 될 수 있습니다. 렁-입력-조건 매핑 방법을 사용하려면 Inp_PVData를 기본값인 1로 설정합니다.
이 명령어에는 수동으로 입력한 상태의 대체 PV 기능이 포함됩니다. 이 옵션은 센서의 순서가 잘못되었거나 시뮬레이션 및 테스트에 사용할 수 있는 경우 유용합니다.
이산 입력 명령어와 해당 입력, 목표값 및 게이트 신호는 다음 사용 사례에 의해 설명된 경보 조건을 처리합니다.
  • 구성 가능한 시간(예: 부동 레벨 스위치의 낮음 레벨 경보)에 대한 입력이 지정된 경보 상태에 있을 때 경보를 발생합니다.
  • 관련 펌프가 일정 시간 동안 작동 중일 때 흐름을 나타내야 하고 관련 펌프가 일정 시간 동안 중단되었을 때 NO 흐름 스위치를 나타내야 하는 흐름 스위치와 같이 입력이 구성 가능한 시간 내에 다른 주어진 신호를 따르지 않을 때 경보를 발생합니다.
  • 게이트 신호(예: 모터의 진동 스위치)를 통해 활성화된 후 구성 가능한 시간 동안 입력이 지정된 경보 상태에 있을 때 경보를 발생합니다. 경보는 모터가 시작 진동이 해결될 만큼 충분히 오래 실행되었을 때만 발생해야 합니다.
이 다이어그램은 PDI 명령어의 기능을 보여줍니다.
PDI_Operation1_v34
PDI_operation2_v33
디바운싱
바운스는 의도적인 전환 직후에 발생하는 상태 반전입니다. 바운스를 필터링할 때는 가능한 한 빨리 맨 처음 전환을 확인하고 보류 기간이 종료될 때까지 후속 변경을 무시해야 합니다. Cfg_Debouncing을 사용하여 보류 기간(초)을 지정합니다.
예를 들어 입력 PV의 상태가 0에서 1로 변경되면 즉시 출력이 1로 변경되고 Cfg_Debounce 시간이 만료될 때까지 입력 PV를 따라 다시 0으로 변경되지 않습니다. Cfg_Debounce가 1초로 설정된 경우 출력은 1초 이상 1을 유지합니다. 1초 후 입력 PV가 0이면 출력은 0으로 변경되고 1초 이상 0을 유지합니다.
다음 그림은 디바운스 작업을 보여줍니다.
DebounceDetail_v34
가상화
PDI에서 가상화는 입력처럼 처리하는 가상 0 상태 또는 1 상태 입력(Set_VirtualPV)을 제공합니다. 명령어 테스트 및 연산자 교육에서 가상화를 사용합니다. PCmd_Virtual 또는 MCmd_Virtual을 사용하여 가상화를 활성화합니다. 가상화를 완료한 후 PCmd_Physical 또는 MCmd_Physical을 사용하여 정상(물리적 장치) 작동으로 돌아갑니다.
초기화
명령어는 명령어 최초 실행에서 정상적으로 초기화됩니다. Inp_InitializeReq = 1로 설정하면 언제든지 재초기화를 요청할 수 있습니다. 올바른 초기화의 경우 코드의 온라인 편집을 수행하는 동안 명령어를 추가할 때 Inp_InitializeReq = 1(기본값)인지 확인합니다.
HMI용 문자열 구성
FactoryTalk View
FactoryTalk View
에 표시된 대로 HMI 페이스플레이트 및
Logix Designer
구성 대화 상자의 문자열을 구성합니다. 문자열은 태그 항목의 확장 속성으로 설정됩니다. 문자열을 Logix Designer 응용 프로그램에서만 구성합니다.
  • 설명
  • 0-상태 및 1-상태의 상태 이름 문자열
  • 그래픽 기호 레이블
  • HMI 페이스 플레이트 호출용 디스플레이 라이브러리
  • 명령어 이름
  • 영역 이름
  • URL 링크
  • 추가 정보
구현
이 그림은 별도의 분기에서 입력 조건이 Inp_PVData에 매핑된 일반적인 구현을 보여줍니다.
PDI_implementation_1_v33
다음 그림은 렁-입력-조건을 사용하여 PDI 명령어에 입력 조건이 매핑된 구현을 보여줍니다.
PDI_implementation_2_v33
PDI 명령어 모니터링
모니터링을 위해 프로세스 객체의 PlantPAx 라이브러리에서 작업자 페이스 플레이트를 사용합니다.
연산 상태 플래그에 영향
아니요.
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 배열 인덱스 폴트의 경우 배열을 통한 인덱스를 참조하세요.
실행
래더 다이어그램
조건/상태
수행한 작업
사전 스캔
렁-출력-조건이 거짓으로 해제됩니다.
원시 입력 또는 유지 관리 대체 PV 사용 상태는 수정되지 않으며 컨트롤러 전원 켜기 또는 PROG - RUN 전환을 통해 유지됩니다.
물리적/가상 선택의 상태는 컨트롤 전원 또는 PROG-to-Run 전환을 통해 유지됩니다.
명령어 최초 실행
각 실행마다 자동으로 지워지는 모든 명령은 해제되고 무시됩니다.
명령어는 정상 실행됩니다.
렁-입력-조건이 거짓임
렁-출력-조건이 거짓으로 해제됩니다.
이 명령어는 처리를 위해 Inp_PVData 신호를 역주행하는 경우를 제외하고는 정상적으로 실행됩니다.
렁-입력-조건이 참임
렁-출력-조건을 렁-입력-조건으로 설정합니다.
명령어가 실행됩니다.
사후 스캔
렁-출력-조건이 거짓으로 해제됩니다.
함수 블록 다이어그램
조건/상태
수행한 작업
사전 스캔
EnableOut이 거짓으로 해제됩니다.
원시 입력 또는 유지 관리 대체 PV 사용 상태는 수정되지 않으며 컨트롤러 전원 켜기 또는 PROG - RUN 전환을 통해 유지됩니다.
물리적/가상 선택의 상태는 컨트롤 전원 또는 PROG-to-Run 전환을 통해 유지됩니다.
명령어 최초 실행
각 실행마다 자동으로 지워지는 모든 명령은 해제되고 무시됩니다.
명령어는 정상 실행됩니다.
명령어 최초 스캔
함수 블록 다이어그램 표에서 명령어 최초 실행을 참조하십시오.
EnableIn이 거짓임
EnableOut이 거짓으로 해제됩니다.
이 명령어는 처리를 위해 Inp_PVData 신호를 역주행하는 경우를 제외하고는 정상적으로 실행됩니다.
EnableIn이 참임
EnableOut이 참으로 설정됩니다.
명령어가 실행됩니다.
사후 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
구조화된 텍스트
구조화된 텍스트에서 정상 스캔 중에 EnableIn은 항상 참입니다. 명령어는 로직에서 활성화한 컨트롤 경로에 있을 때 실행됩니다.
조건/상태
수행한 작업
사전 스캔
함수 블록 다이어그램 표의 사전 스캔을 참조하십시오.
명령어 최초 실행
함수 블록 다이어그램 표에서 명령어 최초 실행을 참조하십시오.
EnableIn이 참임
함수 블록 다이어그램 표의 EnableIn이 참인 경우를 참조하십시오.
사후 스캔
함수 블록 다이어그램 표에서 사후 스캔을 참조하십시오.
예
이 예에서 태그 I_VSH_P50은 PDI 명령어가 모니터링하는 디지털 프로세스 값입니다. 이 태그는 높은 진동의 부울 표시를 제공합니다. 프로세스 변수(Inp_ChanFault) 값의 불량 품질 표시는 입력 모듈의 연결 상태 표시에서 비롯됩니다.
Inp_Target 기본값이 1로 설정되어 I_VSH_P50의 정상 조건이 1임을 나타내며 태그 주석에서 이 프로세스 값에 대해 1=정상임을 확인합니다. Inp_Gate가 이 모터(P50_Motor)에 대한 P_Motor 명령어 인스턴스의 Sts_Running 출력에서 오는 모터 실행 상태 태그(P50_Running)에 연결됩니다. 게이트 지연은 모터가 전체 정상 속도 실행에 들어가기 시작한 후 높은 진동 표시(Sts_TgtDisagree) 및 경보를 활성화하기 전에 모터에 충분한 시간을 부여하도록 구성됩니다. 목표값 불일치 상태(Sts_TgtDisagree)에 대한 태그 기반 경보는 지연 시간이 만료될 때까지 경보가 발생하지 않도록 온 딜레이 타이밍을 적용합니다.
마지막으로 P50_HighVibr은 모터의 실행 여부에 따라 적절한 게이트 지연이 있는 I_VSH_P50 상태를 나타내는 출력 태그입니다.
래더 다이어그램
PDI_LadderExample_v33
함수 블록 다이어그램
PDI_FBDExample_v33
구조화된 텍스트
VAH_50.Inp_PV_Data := I_VSH_P50;
VAH_50.Inp_ChanFault := CAF_117[5];
VAH_50.Inp_Gate := P50_Running;
PDI(VAH_50);
P50_HighVibr := VAH_P50.Sts_TgtDisagree;
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal