프로세스 이산 입력(Process Discrete Input, PDI)
이 정보는 CompactLogix 5380P, ControlLogix 5580P 및 ControlLogix 5590P 컨트롤러에 적용됩니다.
프로세스 이산 입력(PDI) 명령어는 이산(참 또는 거짓) 입력을 모니터링하고 경보 조건을 확인합니다. PDI 명령어를 사용하여 이산 입력 모듈의 채널에서 신호를 처리합니다. PDI 명령어를 이산(BOOL) 신호와 함께 사용합니다.
PDI 명령어는 다음 기능을 제공합니다.
- 상태를 유지해야 하는 최소 시간 상태를 지정하여 빠른 상태 변경을 필터링하기 위해 이산 입력 신호를 디바운스합니다.
- 입력 상태 표시, 0 상태 및 1 상태 이름을 구성할 수 있습니다. 입력이 대체된 경우에도 입력 상태는 독립적으로 표시됩니다.
- 입력 상태를 목표값 또는 정상 상태와 비교한 결과, 목표값 불일치 상태. 목표값 불일치 상태는 구성 가능한 게이트 지연이 있는 게이트 입력 신호에 의해 활성화됩니다. 목표값 불일치 상태 켜짐 및 꺼짐 지연을 구성할 수 있습니다. 목표값 불일치 상태에는 관련 태그 기반 경보가 있습니다.
- 연산자의 폴트를 표시하여 프로세스 변수(PV) 폴트 입력을 처리합니다. PV 폴트에는 관련 태그 기반 경보가 있습니다.
- 연산자는 대체 PV를 선택하고 수동으로 입력할 수 있습니다. 이 수동 오버라이드는 연산자에게 명확하게 표시됩니다. 선택적으로, 사용자는 목표값 불일치 상태 또는 경보가 생성되지 않도록 대체 PV 신호를 구성하여 목표값 입력을 추적할 수 있습니다.
- 명령어 테스트, 데모 또는 연산자 교육에서 사용하기 위한 가상 PV를 지원합니다.
사용 가능한 언어
래더 다이어그램

함수 블록 다이어그램

구조화된 텍스트
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 명령(경보 세트)이 있습니다. 이 다이어그램은 명령이 명령어와 상호 작용하는 방식을 보여줍니다.

연산
게이트 함수를 사용하면 다른 조건이 참일 때 비정상적인 조건(경보 조건)을 발생시킬 수 있습니다. 예를 들어 높은 진동 스위치는 연결된 모터가 안정화될 수 있을 만큼 충분히 오래 실행될 때에만 경보를 발생해야 합니다. 경보가 발생하려면 Inp_Gate 입력을 1(기본값)로 설정하고 Sts_TgtDisagree의 태그 기반 경보를 활성화해야 합니다. 경보는 게이트 지연(Cfg_GateDly) 시간 동안 Inp_Gate 입력이 설정될 때까지 발생하지 않습니다.
Inp_PVData(프로세스 변수) 입력이 Inp_Target(목표값) 입력과 다를 경우 경보가 발생합니다. 목표값은 정상 조건을 나타냅니다. 예를 들어 흐름 스위치는 펌프가 실행 중인 경우 흐름을 나타내고 펌프가 중지된 경우 흐름을 나타내지 않아야 합니다. 펌프 실행 상태가 목표값 입력으로 사용되고, 스위치가 목표값과 일치하지 않으면(할당된 시간 내) 경보(흐름 손실/스위치 고장)가 발생합니다.
팁:
래더 다이어그램에서 렁-입력-조건이 거짓인 경우 명령어는 처리를 위해 Inp_PVData 신호의 역을 사용합니다. 따라서 입력이 Inp_PVData 매핑되지 않고 PDI가 포함된 렁에서 조건이 될 수 있습니다. 렁-입력-조건 매핑 방법을 사용하려면 Inp_PVData를 기본값인 1로 설정합니다.
이 명령어에는 수동으로 입력한 상태의 대체 PV 기능이 포함됩니다. 이 옵션은 센서의 순서가 잘못되었거나 시뮬레이션 및 테스트에 사용할 수 있는 경우 유용합니다.
이산 입력 명령어와 해당 입력, 목표값 및 게이트 신호는 다음 사용 사례에 의해 설명된 경보 조건을 처리합니다.
- 구성 가능한 시간(예: 부동 레벨 스위치의 낮음 레벨 경보)에 대한 입력이 지정된 경보 상태에 있을 때 경보를 발생합니다.
- 관련 펌프가 일정 시간 동안 작동 중일 때 흐름을 나타내야 하고 관련 펌프가 일정 시간 동안 중단되었을 때 NO 흐름 스위치를 나타내야 하는 흐름 스위치와 같이 입력이 구성 가능한 시간 내에 다른 주어진 신호를 따르지 않을 때 경보를 발생합니다.
- 게이트 신호(예: 모터의 진동 스위치)를 통해 활성화된 후 구성 가능한 시간 동안 입력이 지정된 경보 상태에 있을 때 경보를 발생합니다. 경보는 모터가 시작 진동이 해결될 만큼 충분히 오래 실행되었을 때만 발생해야 합니다.
이 다이어그램은 PDI 명령어의 기능을 보여줍니다.


디바운싱
바운스는 의도적인 전환 직후에 발생하는 상태 반전입니다. 바운스를 필터링할 때는 가능한 한 빨리 맨 처음 전환을 확인하고 보류 기간이 종료될 때까지 후속 변경을 무시해야 합니다. Cfg_Debouncing을 사용하여 보류 기간(초)을 지정합니다.
예를 들어 입력 PV의 상태가 0에서 1로 변경되면 즉시 출력이 1로 변경되고 Cfg_Debounce 시간이 만료될 때까지 입력 PV를 따라 다시 0으로 변경되지 않습니다. Cfg_Debounce가 1초로 설정된 경우 출력은 1초 이상 1을 유지합니다. 1초 후 입력 PV가 0이면 출력은 0으로 변경되고 1초 이상 0을 유지합니다.
다음 그림은 디바운스 작업을 보여줍니다.

가상화
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 명령어에 입력 조건이 매핑된 구현을 보여줍니다.

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 상태를 나타내는 출력 태그입니다.
래더 다이어그램

함수 블록 다이어그램

구조화된 텍스트
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;
의견을 작성 부탁드립니다.