총계 계산기(TOT)

이 정보는
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370,
GuardLogix
5570,
Compact GuardLogix
5380,
CompactLogix
5380,
ControlLogix
5580,
GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.
총계 계산기(TOT) 명령어는 아날로그 입력값의 시간 범위 누산 값을 제공합니다.
사용 가능한 언어
래더 다이어그램
이 명령어는 래더 다이어그램 로직에서는 사용할 수 없습니다.
펑션 블록
TOT_FB_avail_v31
구조화된 텍스트
TOT(TOT_tag)
피연산자
펑션 블록
피연산자
유형
형식
설명
TOT 태그
TOTALIZER
구조
TOT 구조
구조화된 텍스트
피연산자
유형
형식
설명
TOT 태그
TOTALIZER
구조
TOT 구조
스트럭쳐드 텍스트 내 식의 구문에 대한 자세한 내용은
스트럭쳐드 텍스트 구문
을 참조하십시오.
TOTALIZER 구조
입력 매개 변수
데이터 유형
설명
EnableIn
BOOL
활성화 입력. 거짓이면 명령어가 실행되지 않고 출력이 업데이트되지 않습니다.
기본값은 참입니다.
In
REAL
명령어의 아날로그 신호 입력.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
InFault
BOOL
잘못된 In 상태 표시기. 참이면 입력 신호에 에러가 발생했음을 나타냅니다. 명령어는 Status에 적절한 비트를 설정하고, 컨트롤 알고리즘이 실행되지 않으며, Total이 업데이트되지 않습니다.
기본값은 거짓입니다.
TimeBase
DINT
시감 기준 입력. In 엔지니어링 단위를 기반으로 하는 총계 계산의 시간 기준.
0 = 초
1 = 분
2 = 시간
3 = 일
예를 들어 In에 gal/min 단위를 사용하는 경우 TimeBase = 분을 사용합니다. 이 값이 유효하지 않으면 명령어는 Status에 적절한 비트를 설정하고 Total을 업데이트하지 않습니다.
타이밍 모드에 대한 자세한 내용은 함수 블록 속성을 참조하세요.
유효값 = 0~3
기본값 = 0
Gain
REAL
증가하는 총계 계산값의 승수. 사용자는 Gain을 사용해 총계 계산 단위를 변환할 수 있습니다. 예를 들어 Gain을 사용하여 gal/min을 배럴 단위의 총량으로 변환할 수 있습니다.
유효값 = 모든 부동 소수점 수
기본값 = 1.0
ResetValue
REAL
리셋 값 입력. OperResetReq 또는 ProgResetReq가 거짓에서 참으로 전환될 때 Total의 리셋 값입니다.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
Target
REAL
합산된 입력의 목표 값입니다.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
TargetDev1
REAL
목표와 비교하여 총계 값의 편차가 큰 사전 목표값. 이 값은 Target으로부터의 편차로 표현됩니다.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
TargetDev2
REAL
Target과 비교하여 Total의 편차가 작은 사전 목표값. 이 값은 Target으로부터의 편차로 표현됩니다.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
LowInCutoff
REAL
명령어 낮은 입력 차단 입력. In이 LowInCutoff 값 이하인 경우 총계 계산이 중단됩니다.
유효값 = 모든 부동 소수점 수
기본값 = 0.0
ProgProgReq
BOOL
프로그램 프로그래밍 요청. 프로그램 제어를 요청하려면 참으로 설정하십시오. ProgOperReq가 참인 경우 무시됩니다. 이 값을 참으로 ProgOperReq 값을 거짓으로 유지하면 명령어가 프로그램 제어로 잠깁니다.
기본값은 거짓입니다.
ProgOperReq
BOOL
프로그램 작업자 요청. 작업자 제어를 요청하려면 참으로 설정하십시오. 이 값을 참으로 유지하면 명령어가 작업자 제어로 잠깁니다.
기본값은 거짓입니다.
ProgStartReq
BOOL
프로그램 시작 요청 입력. 총계 계산이 시작되도록 요청하려면 참으로 설정합니다.
기본값은 거짓입니다.
ProgStopReq
BOOL
프로그램 중지 요청 입력. 총계 계산이 중지되도록 요청하려면 참으로 설정합니다.
기본값은 거짓입니다.
ProgResetReq
BOOL
프로그램 리셋 요청 입력. Total이 ResetValue로 리셋되도록 요청하려면 참으로 설정합니다.
기본값은 거짓입니다.
OperProgReq
BOOL
작업자 프로그램 요청. 프로그램 제어를 요청하려면 작업자 인터페이스에서 참으로 설정합니다. 명령어는 이 입력을 거짓으로 해제합니다.
기본값은 거짓입니다.
OperOperReq
BOOL
작업자 작업자 요청. 작업자 제어를 요청하려면 작업자 인터페이스에서 참으로 설정합니다. 명령어는 이 입력을 거짓으로 해제합니다.
기본값은 거짓입니다.
OperStartReq
BOOL
작업자 시작 요청 입력. 총계 계산을 시작하도록 요청하려면 작업자 인터페이스에서 참으로 설정합니다. 명령어는 이 입력을 거짓으로 해제합니다.
기본값은 거짓입니다.
OperStopReq
BOOL
작업자 중지 요청 입력. 총계 계산을 중지하도록 요청하려면 작업자 인터페이스에서 참으로 설정합니다. 명령어는 이 입력을 거짓으로 해제합니다.
기본값은 거짓입니다.
OperResetReq
BOOL
작업자 리셋 요청 입력. 총계 계산을 리셋하도록 요청하려면 작업자 인터페이스에서 참으로 설정합니다. 명령어는 이 입력을 거짓으로 해제합니다. 기본값은 거짓입니다.
ProgValueReset
BOOL
프로그램 제어 값 리셋. 참인 경우 명령어를 실행할 때마다 모든 프로그램 요청 입력이 거짓으로 해제됩니다.
기본값은 거짓입니다.
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
명령어의 활성화 여부를 나타냅니다. 총계값이 오버플로되는 경우 거짓으로 해제됩니다.
Total
REAL
입력일 경우 합계 계산 값.
OldTotal
REAL
리셋하기 전 총계 값. 이 값을 모니터링하여 마지막 리셋 바로 전의 정확한 총계를 읽을 수 있습니다.
ProgOper
BOOL
프로그램/작업자 제어 표시기. 프로그램 제어인 경우 참입니다. 작업자 제어인 경우 거짓입니다.
RunStop
BOOL
총계 계산기의 작동 상태 표시기. TOT 명령어가 실행 중일 때 참입니다. TOT 명령어가 중지되었을 때 거짓입니다.
ProgResetDone
BOOL
TOT 명령어가 프로그램 리셋 요청을 완료했다는 표시기. 명령어에서 ProgResetReq의 결과로 리셋되는 경우 참으로 설정합니다. 이 값을 모니터링하면 리셋이 성공적으로 완료되었음을 알 수 있습니다. ProgResetReq가 거짓인 경우 거짓으로 해제됩니다.
TargetFlag
BOOL
총계 플래그. Total Greater than or equal to Target일 때 참으로 설정합니다.
TargetDev1Flag
BOOL
TargetDev1 플래그. Total Greater than or equal to Target - TargetDev1일 때 참으로 설정합니다.
TargetDev2Flag
BOOL
TargetDev2 플래그. Total Greater than or equal to Target - TargetDev2일 때 참으로 설정합니다.
LowInCutoffFlag
BOOL
명령어 낮은 입력 차단 플래그 출력. 다음의 경우 참으로 설정됨:
In이 LowInCutoff보다 작거나 같습니다.
DeltaT
REAL
업데이트 간 경과 시간. 컨트롤 알고리즘에서 프로세스 출력 계산에 사용되는 경과 시간(초)입니다.
Status
DINT
펑션 블록의 상태.
InstructFault (Status.0)
BOOL
명령어에서 다음 실행 에러 중 하나가 감지됩니다. 마이너 또는 메이저 컨트롤러 에러가 아닙니다. 나머지 상태 비트를 확인하여 발생한 에러를 판단합니다.
InFaulted (Status.1)
BOOL
In 값 폴트.
TimeBaseInv (Status.2)
BOOL
유효하지 않은 TimeBase 값.
TimingModeInv (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 값. 오버 샘플링 타이밍 모드에서 OversampleDT가 유효하지 않은 경우 발생할 수 있습니다.
설명
이 명령어에서는 일반적으로 흐름 신호를 기반으로 한 시간 경과에 따른 추가 재료의 총량을 계산합니다.
TOT 명령어에서 지원되는 항목:
  • 초, 분, 시간, 일 단위로 선택할 수 있는 시간 기준.
  • 목표값과 최대 2개의 사전 목표값을 지정할 수 있습니다. 사전 목표값은 보통 피드 속도를 더 느리게 전환하는 데 사용됩니다. 디지털 플래그는 목표값 또는 사전 목표값에 도달했음을 알립니다.
  • 흐름이 중단되었을 때 유량계 보정이 약간 부정확하여 계산된 음의 총계를 제거하는 데 낮은 흐름 입력 차단을 사용할 수 있습니다.
  • 시작/중지/리셋이 작업자 또는 프로그램 제어 가능.
  • 사용자 정의 리셋 값.
  • 정확도 향상을 위한 사다리꼴 공식 수치 적분.
  • 정확도 향상을 위한 배정밀도 연산으로 내부 총계 계산이 완료되었습니다.
TOT 명령어 모니터링
TOT 명령어에 사용할 수 있는 오퍼레이터 페이스 플레이트가 있습니다.
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 피연산자 관련 폴트에 대해서는 공통 속성 항목을 참조하십시오.
실행
펑션 블록
조건/상태
수행한 작업
사전 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
Tag.EnableIn이 거짓임
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
Tag.EnableIn이 참임
EnableIn 및 EnableOut 비트가 참으로 설정됩니다.
명령어가 실행됩니다.
명령어 최초 실행
Total이 ResetValue로 설정됩니다.
OldTotal이 0.0으로 해제됩니다.
ProgOper가 거짓으로 해제됩니다.
명령어 최초 스캔
모든 작업자 요청 입력이 거짓으로 해제됩니다. ProgValueReset이 참이면 모든 프로그램 요청 입력이 거짓으로 해제됩니다.
사후 스캔
EnableIn 및 EnableOut 비트가 거짓으로 해제됩니다.
구조화된 텍스트
조건/상태
수행한 작업
사전 스캔
펑션 블록 표의 사전 스캔을 참조하십시오.
정상 실행
펑션 블록 표에서 Tag.EnableIn이 참임을 참조하십시오.
사후 스캔
펑션 블록 표에서 사후 스캔을 참조하십시오.
낮은 입력 차단 확인
(In <= LowInCutoff)인 경우 명령어에서는 LowInCutoffFlag를 참으로 설정하고 In(n-1) = 0.0으로 설정됩니다.
그렇지 않은 경우 명령어에서는 LowInCutoffFlag가 거짓으로 해제됩니다.
LowInCutoffFlag가 참인 경우 작동 모드가 결정되지만 총계 계산이 중단됩니다.
LowInCutoffFlag가 거짓인 경우 총계 계산으로 스캔이 계속됩니다.
작동 모드
다음 다이어그램에서는 TOT 명령어가 프로그램 컨트롤과 오퍼레이터 컨트롤 간에 변경하는 방법을 보여줍니다.
TOT instruction changes.png
(1) ProgOperReq가 참인 경우 이 명령어는 작업자 제어 모드로 유지됩니다.
다음 다이어그램에서는 TOT 명령어가 실행 및 중지 모드 간에 변경하는 방법을 보여줍니다.
TOT changes between Run amd Stop modes
(1) 정지 요청이 시작 요청보다 우선 적용됩니다.
(2) 정지 후 첫 스캔이 실행 중이며 총계를 계산하지 않지만 In
n-1
이 업데이트됩니다.
다음 번 스캔 동안 총계 계산이 다시 시작됩니다.
스캔이 끝날 때마다 모든 작업자 요청 입력이 거짓으로 해제됩니다. ProgValueReset이 참인 경우 스캔이 끝날 때마다 모든 프로그램 요청 입력이 거짓으로 해제됩니다.
TOT 명령어 리셋
ProgOper가 참일 때 ProgResetReq가 참으로 전환하면 다음이 발생합니다.
  • OldTotal = Total
  • Total = ResetValue
  • ProgResetDone이 참으로 설정됩니다.
ProgResetReq가 거짓이고 ProgResetDone이 참이면 ProgResetDone이 거짓으로 해제됩니다.
ProgOper가 거짓일 때 OperResetReq가 참으로 전환되면 다음이 발생합니다.
  • OldTotal = Total
  • Total = ResetValue
총계 계산
RunStop이 참이고 LowInCutoffFlag가 거짓이면 다음 수식이 총계 계산을 수행합니다.
TOT Calculating the Totalization
여기서 TimeBase:
값
조건
1
TimeBase = 0(초)
60
TimeBase = 1(분)
3600
TimeBase = 2(시간)
86400
TimeBase = 3(일)
목표값에 도달했는지 확인
총계를 계산한 후 다음 규칙으로 목표값 또는 사전 목표값 도달 여부를 결정합니다.
  • Total Greater than or equal toTarget이면 TargetFlag가 참입니다.
  • Total Greater than or equal to (Target - TargetDev1)이면 TargetDev1Flag가 참입니다.
  • Total Greater than or equal to (Target - TargetDev2)이면 TargetDev2Flag가 참입니다.
예
이 예에서 TOT 명령어는 탱크로 유입되는 물의 목표량을 계측하고 적절한 양의 물이 추가된 후 흐름을 차단합니다. AddWater 푸시 버튼을 누르면 TOT 명령어가 리셋되어 탱크로 흐르는 물의 양을 합산하기 시작합니다. Target 값에 도달하면 TOT 명령어에서 TargetFlag 출력이 설정되고 이로 인해 솔레노이드 밸브가 닫힙니다. 이 예에서 TOT 명령어는 ProgProgReq 및 ProgStartReq 입력을 설정하여 프로그램 실행으로 "잠금" 설정되었습니다. 이 예에서 작업자는 TOT 명령어를 직접 제어할 필요가 없으므로 완료되었습니다.
펑션 블록
L5K_TOT_FB_ex_v32
구조화된 텍스트
TotalWaterFlow.In := WaterFlowRate;
TotalWaterFlow.ProgProgReq := 1;
TotalWaterFlow.ProgStartReq := 1;
TotalWaterFlow.ProgResetReq := AddWater;
TOT(TotalWaterFlow);
RESD_01.Set := AddWater;
RESD_01.Reset := TotalWaterFlow.TargetFlag;
RESD(RESD_01);
WaterSolenoidValve := RESD_01.Out;
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal