이산 2 상태 장치(Discrete 2-State Device, D2SD)

이 정보는
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370,
GuardLogix
5570,
Compact GuardLogix
5380,
CompactLogix
5380,
ControlLogix
5580,
GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.
이산 2 상태 장치(D2SD) 명령어는 두 가지 가능한 상태(예: 켜짐/꺼짐 또는 열림/닫힘 등)만 있는 이산 장치를 컨트롤합니다.
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램 로직에서는 사용할 수 없습니다.
펑션 블록
D2SD_FB_avail_v31
구조화된 텍스트
D2SD(D2SD_tag)
피연산자
명령어 내에서 혼합된 데이터 유형을 위한 데이터 변환 규칙이 있습니다. 데이터 변환 항목을 참조하십시오.
구조화된 텍스트
피연산자
유형
형식
설명
D2SD tag
DISCRETE_2STATE
구조
D2SD 구조
스트럭쳐드 텍스트 내 식의 구문에 대한 자세한 내용은
스트럭쳐드 텍스트 구문
을 참조하십시오.
펑션 블록
피연산자
유형
형식
설명
D2SD tag
DISCRETE_2STATE
구조
D2SD 구조
DISCRETE_2STATE 구조
입력 매개 변수
데이터 유형
설명
EnableIn
BOOL
활성화 입력. 거짓이면 명령어가 실행되지 않고 출력이 업데이트되지 않습니다.
기본값은 참입니다.
ProgCommand
BOOL
장치가 프로그램 제어인 경우 CommandStatus를 결정하는 데 사용됩니다. 참이면 장치가 1 상태로 명령 처리되고, 거짓이면 0 상태로 명령 처리됩니다.
기본값은 거짓입니다.
Oper0Req
BOOL
오퍼레이터 상태 0 요청. 장치가 작업자 제어인 경우 장치를 0 상태로 배치하기 위해 작업자 인터페이스에서 설정합니다.
기본값은 거짓입니다.
Oper1Req
BOOL
오퍼레이터 상태 1 요청. 장치가 작업자 제어인 경우 장치를 1 상태로 배치하기 위해 작업자 인터페이스에서 설정합니다.
기본값은 거짓입니다.
State0Perm
BOOL
상태 0 허용. 핸드 또는 오버라이드 모드가 아닌 경우 장치를 0 상태로 전환하려면 이 입력을 설정해야 합니다. 이미 0 상태인 장치에는 이 입력이 아무 영향을 미치지 않습니다.
기본값은 참입니다.
State1Perm
BOOL
상태 1 허용. 핸드 또는 오버라이드 모드가 아닌 경우 장치를 1 상태로 전환하려면 이 입력을 설정해야 합니다. 이미 1 상태인 장치에는 이 입력이 아무 영향을 미치지 않습니다.
기본값은 참입니다.
FB0
BOOL
D2SD 명령어에 사용할 수 있는 첫 번째 피드백 입력입니다.
기본값은 거짓입니다.
FB1
BOOL
D2SD 명령어에 사용할 수 있는 두 번째 피드백 입력입니다.
기본값은 거짓입니다.
HandFB
BOOL
핸드 피드백 입력. 현장 핸드/꺼짐/자동 스테이션에서 가져오는 이 입력은 현장 장치의 요청된 상태를 보여줍니다. 참이면 현장 장치에 1 상태로 전환하도록 요청 중이고, 거짓이면 현장 장치에 0 상태로 전환하도록 요청 중입니다.
기본값은 거짓입니다.
FaultTime
REAL
폴트 시간 값. 장치가 새로 명령 처리된 상태에 도달하는 데 걸리는 시간 값을 초 단위로 구성합니다. 폴트 타이머를 비활성화하려면 FaultTime = 0을 설정합니다. 이 값이 유효하지 않다면 명령어는 0이라는 값을 가지며 Status에서 적절한 비트를 설정합니다.
유효값 = 0.0보다 Greater than or equal to 모든 부동 소수점 수
기본값 = 0.0
FaultAlarmLatch
BOOL
폴트 알람 래치 입력. 참이고 FaultAlarm이 참이면 FaultAlarm을 래치합니다. FaultAlarm을 래치 해제하려면 FaultAlmUnlatch를 참으로 설정하거나 FaultAlarmLatch를 거짓으로 해제합니다.
기본값은 거짓입니다.
FaultAlmUnLatch
BOOL
폴트 알람 래치 해제 입력. FaultAlarmLatch가 FaultAlarm을 래치 해제하도록 설정되어 있는 경우 FaultAlmUnLatch를 설정합니다. 명령어는 이 입력을 거짓으로 해제합니다.
기본값은 거짓입니다.
OverrideOnInit
BOOL
초기화 요청 시 오버라이드. 이 비트가 참이면 명령어 최초 스캔 중에 2-상태 장치가 오퍼레이터 컨트롤로 전환되고, 오버라이드는 참으로 설정되고, 핸드는 거짓으로 해제됩니다. ProgHandReq가 참이면 오버라이드는 거짓으로 해제되고 핸드가 참으로 설정됩니다.
기본값은 거짓입니다.
OverrideOnFault
BOOL
폴트 요청 시 오버라이드. 장치를 오버라이드 모드로 전환하고 폴트 알람에 대해 OverrideState를 입력해야 할 경우 OverrideOnFault를 참으로 설정합니다. 폴트 경보를 컨트롤하면 2-상태 장치가 오퍼레이터 컨트롤로 전환됩니다.
기본값은 거짓입니다.
OutReverse
BOOL
기본 출력 상태 반전. 상태 0으로 명령 처리되면 출력의 기본 상태가 거짓으로 해제되고 상태 1로 명령 처리되면 참으로 설정됩니다. OutReverse가 참인 경우 상태 0으로 명령 처리되면 Out이 참으로 설정되고, 상태 1로 명령 처리되면 거짓으로 해제됩니다.
기본값은 거짓입니다.
OverrideState
BOOL
오버라이드 상태 입력. 장치가 오버라이드 모드인 경우 이 값을 구성하여 장치의 상태를 지정합니다. 참이면 장치가 1 상태 전환되어야 함을, 거짓이면 0 상태로 전환되어야 함을 나타냅니다.
기본값은 거짓입니다.
FB0State0
BOOL
피드백 0 상태 0 입력. 장치가 0 상태인 경우 FB0의 상태를 구성합니다.
기본값은 거짓입니다.
FB0State1
BOOL
피드백 0 상태 1 입력. 장치가 1 상태인 경우 FB0의 상태를 구성합니다.
기본값은 거짓입니다.
FB1State0
BOOL
피드백 1 상태 0 입력. 장치가 0 상태인 경우 FB1의 상태를 구성합니다.
기본값은 거짓입니다.
FB1State1
BOOL
피드백 1 상태 1 입력. 장치가 1 상태인 경우 FB1의 상태를 구성합니다.
기본값은 거짓입니다.
ProgProgReq
BOOL
프로그램 프로그래밍 요청. 프로그램 제어를 요청하려면 사용자 프로그램을 통해 참으로 설정합니다. ProgOperReq가 참인 경우 무시됩니다. 이 값을 참으로 유지하고 ProgOperReq를 거짓으로 유지하면 명령어를 프로그램 컨트롤로 잠급니다.
기본값은 거짓입니다.
ProgOperReq
BOOL
프로그램 작업자 요청. 작업자 제어를 요청하려면 사용자 프로그램을 통해 참으로 설정합니다. 이 값을 참으로 유지하면 명령어가 오퍼레이터 컨트롤로 잠깁니다.
기본값은 거짓입니다.
ProgOverrideReq
BOOL
프로그램 오버라이드 요청. 장치에 오버라이드 모드로 전환하도록 요청하려면 사용자 프로그램을 통해 참으로 설정합니다. ProgHandReq가 참인 경우 무시됩니다.
기본값은 거짓입니다.
ProgHandReq
BOOL
프로그램 핸드 요청. 장치에 핸드 모드로 전환하도록 요청하려면 사용자 프로그램을 통해 참으로 설정합니다.
기본값은 거짓입니다.
OperProgReq
BOOL
작업자 프로그램 요청. 프로그램 제어를 요청하려면 작업자 인터페이스에서 참으로 설정합니다. 명령어는 이 입력을 거짓으로 해제합니다.
기본값은 거짓입니다.
OperOperReq
BOOL
작업자 작업자 요청. 작업자 제어를 요청하려면 작업자 인터페이스에서 참으로 설정합니다. 명령어는 이 입력을 거짓으로 해제합니다.
기본값은 거짓입니다.
ProgValueReset
BOOL
프로그램 제어 값 리셋. 참이면 이 명령어를 실행할 때마다 모든 프로그램 요청 입력이 거짓으로 해제됩니다.
기본값은 거짓입니다.
출력 매개 변수
데이터 유형
설명
EnableOut
BOOL
명령어의 활성화 여부를 나타냅니다.
Out
BOOL
2 상태 명령어의 출력
Device0State
BOOL
장치 0 상태 출력. 장치가 0 상태로 명령 처리되고 피드백이 장치가 실제로 0 상태임을 나타내는 경우 참으로 설정됩니다.
Device1State
BOOL
장치 1 상태 출력. 장치가 1 상태로 명령 처리되고 피드백이 장치가 실제로 1 상태임을 나타내는 경우 참으로 설정됩니다.
CommandStatus
BOOL
명령 상태 출력. 장치가 1 상태로 명령 처리 중인 경우 참으로 설정되고, 장치가 0 상태로 명령 처리 중인 경우 거짓으로 해제됩니다.
FaultAlarm
BOOL
폴트 알람 출력. 장치가 새 상태로 명령 처리되었는데 실제로 새 상태로 전환되었음을 나타내는 피드백 없이 FaultTime이 만료된 경우 참으로 설정됩니다. 또한 명령 처리된 상태로 전환된 후 피드백이 갑자기 더 이상 명령 처리된 상태가 아니라고 나타내는 경우 참으로 설정합니다.
ModeAlarm
BOOL
모드 알람 출력. 장치가 작업자 제어이고 프로그램 명령이 작업자가 현재 명령 처리한 상태와 다른 상태로 변경되는 경우 참으로 설정됩니다. 이는 장치가 작업자 제어로 남아 있음을 알리기 위한 알람입니다.
ProgOper
BOOL
프로그램/작업자 제어 표시기. 프로그램 제어인 경우 참입니다. 작업자 제어인 경우 거짓입니다.
Override
BOOL
오버라이드 모드. 장치가 오버라이드 모드인 경우 참입니다.
Hand
BOOL
핸드 모드. 장치가 핸드 모드인 경우 참입니다.
Status
DINT
펑션 블록의 상태.
InstructFault (Status.0)
BOOL
명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다.
FaultTimeInv (Status.1)
BOOL
유효하지 않은 FaultTime 값. 이 명령어는 FaultTime = 0을 설정합니다.
OperReqInv (Status.2)
BOOL
두 작업자 상태 요청 비트가 참입니다.
설명
D2SD 명령어는 두 가지 가능한 상태(예: 켜짐/꺼짐 또는 열림/닫힘 등)만 있는 이산 장치를 컨트롤합니다. 이 특성을 가진 일반적인 이산 장치에는 모터, 펌프, 솔레노이드 밸브가 있습니다.
D2SD 명령어 모니터링
D2SD 명령어에 사용할 수 있는 작업자 면판이 있습니다.
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 피연산자 관련 폴트에 대해서는 공통 속성 항목을 참조하십시오.
실행
펑션 블록
조건/상태
수행한 작업
사전 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
Tag.EnableIn이 거짓임
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
Tag.EnableIn이 참임
EnableIn 및 EnableOut 비트가 참으로 설정됩니다.
명령어가 실행됩니다.
명령어 최초 실행
ProgOper를 작업자 모드로 설정합니다. CommandStatus를 거짓으로 설정합니다.
명령어 최초 스캔
EnableOut을 참으로 설정합니다.
ModeAlarm 및 작업자 요청 입력이 거짓으로 해제됩니다.
ProgValueReset이 참인 경우 모든 프로그램 요청 입력을 거짓으로 해제됩니다.
OverrideOnInit가 참이면 ProgOper가 거짓으로 해제됩니다(작업자 제어).
ProgHandReq가 해제되고 OverrideOnInit가 설정되면 핸드를 해제하고 오버라이드를 설정합니다(오버라이드 모드).
ProgHandReq가 설정되면 핸드를 설정하고 오버라이드를 해제합니다(핸드 모드).
사후 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
구조화된 텍스트
구조화된 텍스트에서 정상 스캔 중에 EnableIn은 항상 참입니다. 따라서 명령어가 로직에서 활성화한 컨트롤 경로에 있는 경우 해당 명령어가 실행됩니다.
조건/상태
수행한 작업
사전 스캔
펑션 블록 표의 사전 스캔을 참조하십시오.
정상 실행
펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오.
사후 스캔
펑션 블록 표에서 사후 스캔을 참조하십시오.
예
SD 명령어는 일반적으로 펌프 또는 솔레노이드 밸브와 같이 켜짐-꺼짐 또는 열림-닫힘 장치를 제어하는 데 사용됩니다. 이 예에서 D2SD 명령어는 배치 탱크에 콘 시럽을 추가하는 솔레노이드 밸브를 제어합니다. D2SD 명령어가 프로그램 제어인 상태에서는 AddSyrup 입력이 설정된 경우 밸브가 열립니다. 또한 필요한 경우 작업자는 작업자 제어로 밸브를 열거나 닫을 수 있습니다. 이 예에서 솔레노이드 밸브에는 밸브가 완전히 닫히거나 열린 상태를 나타내는 리미트 스위치가 있습니다. 이러한 스위치는 FB0 및 FB1 피드백 입력에 연결됩니다. 따라서 솔레노이드 밸브가 구성된 FaultTime 이내에 명령 처리된 상태로 전환되지 않으면 D2SD 명령어가 FaultAlarm을 생성합니다.
펑션 블록
D2SD_FB_ex_v31
구조화된 텍스트
SyrupController.ProgCommand := AddSyrup;
SyrupController.FB0 := SyrupValveClosedLimitSwitch;
SyrupController.FB1 := SyrupValveOpenedLimitSwitch;
D2SD(SyrupController);
SyrupValve := SyrupController.Out;
프로그램 제어와 작업자 제어 간에 전환
다음 다이어그램에서는 D2SD 명령어가 프로그램 컨트롤과 오퍼레이터 컨트롤 간에 변경하는 방법을 보여줍니다.
D2SD_program_operator control
(1) ProgOperReq가 참인 경우 이 명령어는 작업자 제어 모드로 유지됩니다.
프로그램 제어의 명령 처리된 상태
다음 다이어그램에는 프로그램 제어일 때 D2SD 명령어가 작동하는 방식이 나와 있습니다.
D2SD_program_operator control 2
작업자 제어의 명령 처리된 상태
다음 다이어그램에는 작업자 제어일 때 D2SD 명령어가 작동하는 방식이 나와 있습니다.
D2SD_program_operator control 3
Oper0Req 및 Oper1Req가 둘 다 참인 경우:
  • 이 명령어는 Status의 적절한 비트를 참으로 설정합니다.
  • 오버라이드 및 핸드가 거짓이면 이 명령어는 이전 상태로 유지됩니다.
매번 명령어 실행 후 이 명령어는 다음 작업을 실행합니다.
  • 모든 작업자 요청 입력을 거짓으로 해제합니다.
  • ProgValueReset이 참이면 모든 프로그램 요청 입력이 거짓으로 해제됩니다.
핸드 모드 또는 오버라이드 모드
다음 테이블에는 D2SD 명령어가 핸드 모드 또는 오버라이드 모드에서 작동할지 여부를 결정하는 방법이 나와 있습니다.
ProgHandReq
ProgOverrideReq
FaultAlarm 및 OverrideOnFault
설명
참
두 값 중 하나
두 값 중 하나
핸드 모드
핸드가 참으로 설정됩니다.
오버라이드가 거짓으로 해제됩니다.
거짓
참
두 값 중 하나
오버라이드 모드
핸드가 거짓으로 해제됩니다.
오버라이드가 참으로 설정됩니다.
거짓
두 값 중 하나
참
오버라이드 모드
핸드가 거짓으로 해제됩니다.
오버라이드가 참으로 설정됩니다.
명령어가 오버라이드 모드이면 CommandStatus = OverrideState입니다.
명령어가 핸드 모드이면 CommandStatus = HandFB입니다.
출력 상태
D2SD 출력 상태는 명령 상태를 기반으로 합니다.
CommandStatus
출력 상태
거짓
OutReverse가 거짓이면 Out이 거짓으로 해제됩니다.
OutReverse가 참이면 Out이 참으로 설정됩니다.
참
OutReverse가 거짓이면 Out이 참으로 설정됩니다.
OutReverse가 참이면 Out이 거짓으로 해제됩니다.
거짓 및
FB0 = FB0State0 및
FB1 = FB1State0
폴트 타이머가 중단되고 0으로 해제됩니다.
Device0State가 참으로 설정됩니다.
참 및
FB0 = FB0State1 및
FB1 = FB1State1
폴트 타이머가 중단되고 0으로 해제됩니다.
Device1State가 참으로 설정됩니다.
폴트 알람 조건
D2SD 명령어는 다음 폴트 알람 조건을 확인합니다.
폴트 알람 조건의
원인
규칙
장치 상태가 변경되도록 명령 처리되었으나 피드백에서 FaultTime 이내에 원하는 상태 전환이 실제로 이루어졌음을 나타내지 않았습니다.
CommandStatus
n
Not equal to sign CommandStatus
n-1
이면 폴트 타이머를 작동합니다.
폴트 타이머가 완료되었고 FaultTime이 0.0보다 크면 FaultAlarm을 설정합니다.
(피드백에 따라) 장치가 명령 처리되지 않은 상태로 예기치 않게 어느 상태를 떠났습니다.
폴트 타이머가 시간을 측정하지 않고 다음 조건 중 하나가 충족되면 FaultAlarm을 참으로 설정합니다.
CommandStatus가 거짓이고 Device0State가 거짓임
CommandStatus가 참이고 Device1State가 거짓임
다음 조건 중 하나가 충족되면 FaultAlarm이 거짓으로 해제됩니다.
  • CommandStatus가 거짓이고 Device0State가 참임
  • CommandStatus가 참이고 Device1State가 참임
  • FaultTime Less than or equal to 0
FaultAlmUnlatch가 참이고 폴트가 없는 경우를 제외하고 FaultAlarmLatch가 참이면 FaultAlarm이 거짓으로 해제될 수 없습니다.
모드 알람 조건
모드 알람은 작업자에게 장치가 작업자 제어로 남아 있음을 알립니다. 작업자 제어 모드에서 프로그램이 장치의 상태를 작업자의 명령 처리된 상태에서 변경하려고 하는 경우에만 모드 알람이 켜집니다. 작업가 장치를 작업자 제어 모드로 전환하고 상태를 변경하는 경우에는 알람이 켜지지 않습니다. D2SD 명령어는 다음 규칙을 사용하여 모드 알람 조건을 확인합니다.
ModeAlarm
조건
참
ProgCommand
n
Not equal to sign ProgCommandn-1 및
ProgCommand
n
Not equal to sign CommandStatus
거짓
ProgCommand = CommandStatus 또는
장치가 오버라이드, 핸드 또는 프로그램 제어 모드에 있습니다.
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal