데드타임(Deadtime, DEDT)
이 정보는
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.데드타임(DEDT) 명령어는 단일 입력 지연을 수행합니다. 데드타임 지연 시간을 선택합니다.
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램 로직에서는 사용할 수 없습니다.
펑션 블록

구조화된 텍스트
DEDT(DEDT_tag,storage);
피연산자
구조화된 텍스트
피연산자 | 유형 | 형식 | 설명 |
DEDT 태그 | DEADTIME | 구조 | DEDT 구조 |
storage | REAL | 배열 | 데드타임 버퍼 |
스트럭쳐드 텍스트 내 식의 구문에 대한 자세한 내용은
스트럭쳐드 텍스트 구문
을 참조하십시오.펑션 블록
피연산자 | 유형 | 형식 | 설명 |
DEDT 태그 | DEADTIME | 구조 | DEDT 구조 |
storage | REAL | 배열 | 데드타임 버퍼 |
DEADTIME 구조
입력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableIn | BOOL | 활성화 입력. 거짓이면 명령어가 실행되지 않고 출력이 업데이트되지 않습니다. 기본값은 참입니다. |
In | REAL | 명령어의 아날로그 신호 입력. 유효값 = 모든 부동 소수점 수 기본값 = 0.0 |
InFault | BOOL | 입력에 불량 상태 표시기. 입력 값을 아날로그 입력에서 읽어오면 InFault는 아날로그 입력의 폴트 상태에 의해 컨트롤됩니다. 참이면 InFault는 입력 신호에 에러가 있음을 나타내고, 명령어는 Status에 적절한 비트를 설정하고, 컨트롤 알고리즘이 실행되지 않고, Out이 유지됩니다. 기본값은 거짓입니다. 거짓 = 올바른 상태 |
Deadtime | REAL | 명령어에 대한 데드타임 입력. 데드타임을 초 단위로 입력합니다. 이 값이 유효하지 않다면 명령어는 0이라는 값을 가지며 Status에서 적절한 비트를 설정합니다. 유효값 = 0.0부터 (StorageArray 크기 * DeltaT)까지 기본값 = 0.0 |
Gain | REAL | 명령어에 대한 게인 입력. In의 값에 이 값을 곱합니다. 이를 사용하여 프로세스 게인을 시뮬레이션할 수 있습니다. 유효값 = 모든 부동 소수점 수 기본값 = 1.0 |
Bias | REAL | 명령어에 대한 바이어스 입력. In 값에 Gain을 곱한 값이 이 값에 더해집니다. 이를 사용하여 환경 조건을 시뮬레이션할 수 있습니다. 유효값 = 모든 부동 소수점 수 기본값 = 0.0 |
TimingMode | DINT | 타이밍 실행 모드 선택. 0 = 기간 모드 1 = 오버 샘플링 모드 2 = 실시간 샘플링 모드 유효값 = 0~2 기본값 = 0 타이밍 모드에 대한 자세한 내용은 함수 블록 속성을 참조하세요. |
OversampleDT | REAL | 오버 샘플링 모드에 대한 실행 시간. 값 = 0~4194.303초 기본값 = 0 |
RTSTime | DINT | 실시간 샘플링 모드에 대한 모듈 업데이트 기간 유효값 = 1~32,767ms 기본값 = 1 |
RTSTimeStamp | DINT | 실시간 샘플링 모드에 대한 모듈 타임 스탬프 값. 유효값 = 0~32,767ms 기본값 = 0 |
출력 매개 변수 | 데이터 유형 | 설명 |
|---|---|---|
EnableOut | BOOL | 명령어의 활성화 여부를 나타냅니다. Out이 오버플로되는 경우 거짓으로 해제됩니다. |
Out | REAL | 데드타임 알고리즘의 계산된 출력 |
DeltaT | REAL | 업데이트 간 경과 시간. 컨트롤 알고리즘에서 프로세스 출력 계산에 사용되는 경과 시간(초)입니다. |
Status | DINT | 펑션 블록의 상태. |
InstructFault (Status.0) | BOOL | 명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다. |
InFaulted (Status.1) | BOOL | In의 상태가 좋지 않습니다. |
DeadtimeInv (Status.2) | BOOL | 유효하지 않은 Deadtime 값. |
TimingMode (Status.27) | BOOL | 유효하지 않은 TimingMode 값. 타이밍 모드에 대한 자세한 내용은 함수 블록 속성을 참조하세요. |
RTSMissed (Status.28) | BOOL | 실시간 샘플링 모드에서만 사용. ABS(DeltaT - RTSTime) > 1밀리초일 때. |
RTSTimeInv (Status.29) | BOOL | 유효하지 않은 RTSTime 값. |
RTSTimeStampInv (Status.30) | BOOL | 유효하지 않은 RTSTimeStamp 값. |
DeltaTInv (Status.31) | BOOL | 유효하지 않은 DeltaT 값. |
설명
DEDT 명령어는 데이터 버퍼를 사용하여 지연된 데이터를 저장함으로써 필요한 모든 길이의 데드타임을 허용합니다. DEDT 명령어는 스캔 비율이 일정하게 유지되는 태스크에서 실행하도록 설계되었습니다.
DEDT 명령어를 사용하려면 저장소 배열을 생성하여 (In x Gain) + Bias의 샘플을 유지할 데드타임 버퍼를 저장합니다. 저장소 배열의 크기는 원하는 최대 데드타임을 유지할 만큼 커야 합니다. 다음 공식을 사용합니다.
필요한 StorageArray 크기 = 최대 데드타임(초) / DeltaT(초)
데드타임 버퍼 서비스 제공
런타임 중 명령어는 유효한 Deadtime을 확인합니다. Deadtime의 범위는 0.0~(StorageArray 크기 x DeltaT)여야 합니다.
Deadtime이 유효하지 않으면 명령어는 적절한 상태 비트를 설정하고 Out = (In x Gain) + Bias를 설정합니다.
데드타임 버퍼는 선입선출 버퍼입니다. 데드타임 알고리즘이 실행될 때마다 데드타임 버퍼의 가장 오래된 값이 Out으로 이동합니다. 버퍼에 남아 있는 값은 아래로 이동하고 ((In x Gain) + Bias) 값이 데드타임 버퍼의 시작 부분으로 이동합니다. 데드타임 버퍼에 배치된 새 값은 Deadtime(초)이 경과한 후 Out에 나타납니다.
프로그래밍된 지연을 수행하는 데 필요한 배열 요소 수는 Deadtime을 DeltaT로 나눠 계산합니다. Deadtime을 DeltaT로 나눴는데 나머지가 있는 경우 배열 요소 개 및 프로그래밍된 지연은 가장 가까운 DeltaT의 증분으로 반올림됩니다. 예를 들어 Deadtime = 4.25초 및 DeltaT = 0.50초인 경우 프로그래밍된 지연을 수행하는 데 필요한 배열 요소 수를 구하려면 다음과 같이 계산합니다.
4.25s / 0.50s = 8.5
필요한 배열 요소 수는 9로 반올림됩니다.
이 예에서 입력에 적용되는 실제 지연은 다음과 같습니다.
배열 요소 개수 x DeltaT = 프로그래밍된 지연 즉,
9 x 0.5s = 4.5s
Deadtime 또는 DeltaT에 대한 런타임 변화에 따라 버퍼 외부로 이동하는 시점이 바뀝니다. 프로그래밍된 지연을 수행하는 데 필요한 요소 수는 늘어나거나 줄어들 수 있습니다. 데드타임 버퍼 서비스를 제공하기 전에 다음 업데이트가 발생합니다.
필요한 요소 수를 늘려야 하는 경우 현재 데드타임 버퍼의 가장 오래된 값으로 새 버퍼 요소가 채워집니다.
필요한 요소 수를 줄여야 하는 경우에는 현재 데드타임 버퍼의 가장 오래된 요소가 삭제됩니다.
InFault 전환에 대한 명령어의 동작
InFault가 참(불량)이면 명령어는 실행을 일시 중지하고, 마지막 출력을 유지한 다음 Status에 적절한 비트를 설정합니다.
InFault가 참에서 거짓으로 전환하면 명령어는 데드타임 버퍼의 모든 값을 In x Gain + Bias와 동일하게 설정합니다.
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 피연산자 관련 폴트에 대해서는 공통 속성 항목을 참조하십시오.
실행
펑션 블록
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag.EnableIn이 거짓임 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
Tag.EnableIn이 참임 | EnableIn 및 EnableOut 비트가 참으로 설정됩니다. 명령어가 실행됩니다. |
명령어 최초 실행 | N/A |
명령어 최초 스캔 | N/A 이 명령어가 실행되지 않지만 입력 파라미터의 유효성을 검사합니다. |
사후 스캔 | EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다. |
구조화된 텍스트
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | 펑션 블록 표의 사전 스캔을 참조하십시오. |
정상 실행 | 펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오. |
사후 스캔 | 펑션 블록 표에서 사후 스캔을 참조하십시오. |
예
이 예에서 DEDT 명령어는 시뮬레이션된 프로세스에서 데드타임 지연을 시뮬레이션합니다. PIDE 명령어의 출력이 데드타임 지연과 1차 래그를 통해 전달되어 프로세스를 시뮬레이션합니다. 배열 DEDT_01array는 최대 100개의 샘플의 데드타임을 지원하기 위해 100개의 요소가 포함된 REAL 배열입니다. 예를 들어, 이 루틴이 100밀리초마다 실행되는 경우 이 배열은 최대 10초의 데드타임을 지원할 수 있습니다.
펑션 블록

의견을 작성 부탁드립니다.