본문으로 건너뛰기

HART-IP — 4-20mA + 디지털 통신

HART (Highway Addressable Remote Transducer) 는 4-20mA 아날로그 신호 위에 디지털 정보를 같이 실어 보내는 산업 계측 표준입니다. 이 게이트웨이는 HART 를 이더넷으로 감싼 HART-IP (TCP/UDP) 로 통신합니다.

화학 / 정유 / 발전 / 상하수 등 프로세스 산업 의 압력·유량·온도·레벨 트랜스미터에 가장 많이 쓰입니다.


등록 폼 입력값

입력 칸무엇을 적나요예시
IP 주소HART-IP 게이트웨이 / 멀티플렉서 IP192.168.0.110
포트HART-IP 포트5094 (표준)
응답 타임아웃 (request-timeout)응답 대기 (ms)5000
폴링 주소 (polling-address)HART 디바이스 주소 (0~63)0 (point-to-point) / 1~15 (멀티드롭)
멀티드롭 환경

하나의 HART-IP 게이트웨이 뒤에 여러 트랜스미터가 멀티드롭으로 묶여 있다면 각 디바이스마다 폴링 주소를 다르게 지정해 별도 연결로 등록하시는 게 가장 깔끔합니다.


태그의 PLC 주소 표기

HART 는 명령 (Command) 으로 값을 가져옵니다. 자주 쓰이는 명령:

HART 명령의미
Cmd 0디바이스 식별 (제조사/모델/태그 — 메타용)
Cmd 11차 변수 (Primary Variable, PV) — 가장 많이 씀
Cmd 2PV 의 mA 값
Cmd 3동적 변수 4종 (PV, SV, TV, QV) 한 번에
Cmd 13디바이스 태그 / 단위 / 상한·하한

게이트웨이에서는 cmd:<번호>:<필드> 형식으로 입력합니다.

표기의미
cmd:1:PV1차 변수 (압력·유량 등)
cmd:3:PVCmd 3 응답에서 PV 만
cmd:3:SV2차 변수 (Secondary Variable)
cmd:3:TV3차 변수
cmd:3:QV4차 변수
cmd:2:CURRENT4-20mA 의 실제 mA
cmd:13:TAG디바이스 태그 (문자열)
cmd:13:UNIT단위 코드
PV 가 압력인가, 유량인가?

HART 는 변수 자체 (4-20mA 의 무엇을 의미하는지) 는 디바이스 설정에서 정해집니다. 게이트웨이는 단지 “PV” 를 받아오므로, 그 PV 가 어떤 물리량인지는 트랜스미터의 형식 보조 (Cmd 13 unit) 또는 사용자가 태그 이름으로 명시하시면 됩니다.


데이터 형식 매칭

HART 의 값데이터 형식형식 보조
PV / SV / TV / QV (Float)FloatREAL
mA (Cmd 2)FloatREAL
디바이스 태그 / 단위명StringSTR[8]
상태 코드 / Field Device StatusInteger(비움)

HART 는 IEEE 754 32-bit 빅엔디언으로 실수를 보냅니다. 게이트웨이가 자동 디코딩하므로 사용자는 REAL 만 명시하시면 됩니다.


쓰기 (Write) 지원

HART 의 쓰기 명령은 위험 (트랜스미터의 레인지 / 단위 / 댐핑 / 영점 을 바꾸는 것) 하므로 신중히 쓰세요.

명령의미
Cmd 6폴링 주소 변경
Cmd 17디바이스 메시지 (32 글자)
Cmd 18디바이스 태그 / 디스크립터 / 날짜
Cmd 35PV 의 상한 / 하한 (레인지) 변경

쓰기 표기 예: cmd:18:TAG, 값은 문자열로 보냅니다.


흔한 문제와 해결

증상가능한 원인해결
“No response from device”HART 게이트웨이만 응답하고 디바이스 미응답멀티드롭 폴링 주소 확인 (0 vs 1~15)
Cmd 1 값이 0 으로 고정트랜스미터가 fail-safe 모드4-20mA 라인 단선 / 단락 점검
“Cmd 3 not supported”구형 HART 디바이스 (rev 5 미만)Cmd 1 만 사용. SV/TV/QV 는 못 씀
단위 코드가 숫자로 나옴HART 단위는 enum (1=°C, 32=Pa, …)계산식 / 매핑표로 사람-친화 단위로 변환

자주 쓰는 디바이스 별 실제 매핑 예

Rosemount 3051 (압력 트랜스미터)

가장 널리 쓰이는 차압 / 게이지압 트랜스미터. 4-20mA 의 PV 를 압력 (kPa, bar, psi 등) 으로 매핑.

태그 이름주소형식비고
압력 (PV)cmd:1:PVFloatREAL
mAcmd:2:CURRENTFloatREAL — 라인 점검용
디바이스 태그cmd:13:TAGStringTT-201 등
단위 코드cmd:13:UNITInteger1=in H2O, 7=kPa, 13=bar
디바이스 상태cmd:48:STATUSIntegerself-test 결과

Endress+Hauser Promass 80 (코리올리 유량계)

태그 이름주소형식비고
유량 (PV)cmd:3:PVFloatkg/h
밀도 (SV)cmd:3:SVFloatkg/m³
온도 (TV)cmd:3:TVFloat°C
적산 유량 (QV)cmd:3:QVFloatkg

Yokogawa EJX910A (다변량 트랜스미터)

태그 이름주소형식비고
차압cmd:3:PVFloatkPa
정압cmd:3:SVFloatkPa abs
공정 온도cmd:3:TVFloat°C
보정 후 유량cmd:3:QVFloat(디바이스 내부 계산)

자주 쓰는 운영 패턴

패턴 1. 다중 멀티드롭 (한 게이트웨이에 8 트랜스미터)

태그 이름주소비고
TT-101 PVcmd:1:PV(폴링 주소 1 로 별도 연결 등록)
TT-102 PVcmd:1:PV(폴링 주소 2 로 별도 연결 등록)

폴링 주소 1~15 마다 PlantPulse 측에 별도 OPC 등록 (host:port 같지만 polling-address 만 다르게).

패턴 2. 단위 자동 표시

cmd:13:UNIT (단위 enum) 을 같이 받아 표시단에서 mapTable(unit) = "kPa" / "bar" / ... 변환. 트랜스미터 단위 변경 시 PlantPulse 등록 수정 없이도 표시 단위 자동 추적.

패턴 3. 라인 단선 검출

cmd:2:CURRENT (mA) 가 4 미만 또는 20 초과면 fail-safe 또는 단선 의심. 알람 룰에 추가.


다음 단계