4-20mA 스케일링 계산기
전류 루프 ↔ 공정값 변환. 단선(open loop)·범위 이탈 판정 포함.
In range
이 툴은 4-20mA 루프 전류를 설정한 범위의 공정값으로(또는 반대로) 즉시 변환합니다. 동시에 루프 상태를 판정합니다 — 3.8mA 미만은 측정값이 아니라 단선(open loop)으로 표시하고, 3.8~4mA는 하한 이탈, 20.5mA 초과는 상한 이탈로 경고합니다.
동작 원리
4-20mA 트랜스미터는 교정된 측정 범위를 16mA 스팬에 선형으로 매핑합니다. 4mA가 범위 하한(라이브 제로), 20mA가 상한이며, 공정값은 하한 + (mA − 4) × (상한 − 하한) / 16으로 계산합니다. 정상 루프는 약 3.8mA 아래로 내려가지 않으므로, 그 미만의 전류는 변환하지 않고 단선으로 진단하는 것이 계장 점검의 기본입니다.
계산 예제
12 mA → 100.0 °C (스팬 50 %)
4 mA → 0 °C · 20 mA → 200 °C
3.7 mA → OPEN LOOP (3.8 mA 미만)
파라미터
| Parameter | Value | Notes |
|---|---|---|
| 라이브 제로 | 4 mA | 범위 하한 |
| 풀 스케일 | 20 mA | 범위 상한 |
| 단선 판정 | < 3.8 mA | 배선·트랜스미터 점검 |
| 하한 이탈 | 3.8 – 4 mA | 하한 포화 |
| 상한 이탈 | > 20.5 mA | 상한 포화 |
C 구현
/* 4-20 mA -> 공학 단위 + 루프 판정 */
typedef enum { OPEN_LOOP, UNDER_RANGE, OK, OVER_RANGE } loop_status_t;
float scale_4_20(float ma, float lo, float hi, loop_status_t *st)
{
*st = (ma < 3.8f) ? OPEN_LOOP
: (ma < 4.0f) ? UNDER_RANGE
: (ma > 20.5f) ? OVER_RANGE : OK;
return lo + (ma - 4.0f) * (hi - lo) / 16.0f;
}
/* 12 mA @ 0..200 -> 100.0, OK; 3.7 mA -> OPEN_LOOP */FAQ
▸3.7mA를 넣으면 왜 음수값 대신 OPEN LOOP가 표시되나요?
정상 동작하는 4-20mA 트랜스미터는 3.8mA 아래로 내려가지 않습니다. 그보다 낮은 전류는 대부분 단선, 트랜스미터 고장, 루프 무전원 상태를 뜻하므로, 계산기는 선형 외삽값보다 고장 진단을 먼저 표시합니다.
▸판정 기준값은 정확히 어떻게 되나요?
3.8mA 미만: 단선(open loop). 3.8~4mA: 하한 이탈(under-range). 20.5mA 초과: 상한 이탈(over-range). 4~20mA(20.5까지): 정상 범위입니다.
▸왜 0mA가 아니라 4mA를 0%로 쓰나요?
4mA 라이브 제로(live zero)는 '측정값이 0'과 '회로가 죽음'을 구분해 줍니다. 0mA는 오직 고장에서만 나오는 값이 되고, 남는 전류로 2선식 트랜스미터에 전원도 공급할 수 있습니다.
▸공정값은 어떤 식으로 계산하나요?
선형 보간입니다: 값 = 하한 + (mA − 4) × (상한 − 하한) / 16. 0~200°C 범위에서 12mA는 스팬의 정중앙인 100°C가 됩니다.
▸입력한 데이터가 서버로 전송되나요?
아니요. 모든 계산은 브라우저 안에서 실행됩니다.