TestBench.tools

4-20mA 스케일링 계산기

전류 루프 ↔ 공정값 변환. 단선(open loop)·범위 이탈 판정 포함.

In range

Process value (°C)
100
Percent of span
50.00 %

이 툴은 4-20mA 루프 전류를 설정한 범위의 공정값으로(또는 반대로) 즉시 변환합니다. 동시에 루프 상태를 판정합니다 — 3.8mA 미만은 측정값이 아니라 단선(open loop)으로 표시하고, 3.8~4mA는 하한 이탈, 20.5mA 초과는 상한 이탈로 경고합니다.

동작 원리

4-20mA 트랜스미터는 교정된 측정 범위를 16mA 스팬에 선형으로 매핑합니다. 4mA가 범위 하한(라이브 제로), 20mA가 상한이며, 공정값은 하한 + (mA − 4) × (상한 − 하한) / 16으로 계산합니다. 정상 루프는 약 3.8mA 아래로 내려가지 않으므로, 그 미만의 전류는 변환하지 않고 단선으로 진단하는 것이 계장 점검의 기본입니다.

계산 예제

범위: 0…200 °C
12 mA → 100.0 °C (스팬 50 %)
 4 mA → 0 °C  ·  20 mA → 200 °C
3.7 mA → OPEN LOOP (3.8 mA 미만)

파라미터

ParameterValueNotes
라이브 제로4 mA범위 하한
풀 스케일20 mA범위 상한
단선 판정< 3.8 mA배선·트랜스미터 점검
하한 이탈3.8 – 4 mA하한 포화
상한 이탈> 20.5 mA상한 포화

C 구현

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가 됩니다.

입력한 데이터가 서버로 전송되나요?

아니요. 모든 계산은 브라우저 안에서 실행됩니다.

관련 툴