정수·진수 변환기
HEX·10진·2진 값을 8·16·32비트로 바꿉니다. 부호 있는 값(2의 보수), BCD, 그레이 코드, Modbus 레지스터 바이트 순서(ABCD·CDAB 등)까지 한 화면에서.
2의 보수 — 음수가 65535 로 보일 때
- 레지스터 하나는 16비트라 0~65535 를 담습니다. 장비가 음수를 보내면 맨 위 비트가 1인 값이 오고, 이것을 «부호 있는 16비트» 로 읽으면 음수가 됩니다: 값 − 65536.
- 예: FFFF = 65535 = −1, FE0C = 65036 = −500. 매뉴얼의 자료형 칸이 INT16(signed)인지 UINT16(unsigned)인지 보고 읽는 쪽을 맞춥니다.
- 32비트는 같은 방식으로 값 − 4294967296 입니다. 레지스터 두 개를 어떤 순서로 붙이는지는 아래 «바이트 순서» 표를 봅니다.
BCD — 16진 표시가 그대로 10진처럼 보이는 값
- BCD 는 10진 한 자리를 4비트(0~9)로 담습니다. 1234 는 0x1234 가 되고, 10진으로 읽으면 4660 으로 보입니다. 시각·카운터 값이나 일부 PLC 명령이 BCD 를 씁니다.
- 어느 4비트라도 A~F 이면 BCD 가 아닙니다. 16비트에는 0~9999, 32비트에는 0~99999999 를 담습니다.
그레이 코드
이웃한 값끼리 비트 하나만 바뀌는 부호입니다(g = b XOR (b ≫ 1)). 0~7 은 000·001·011·010·110·111·101·100 입니다. 절대형 엔코더의 출력 형식으로 쓰이므로, 엔코더 매뉴얼이 그레이 코드 출력이라고 하면 «그레이 코드 → 2진» 값을 위치로 씁니다.
바이트 순서 표 읽기
«보낼 때» 는 이 값을 그 순서로 보낼 때의 바이트입니다. A 는 값의 가장 높은 바이트입니다. Modbus 레지스터 하나 안에서는 높은 바이트가 먼저 오지만(규격 §4.2), 32비트 값을 레지스터 두 개에 싣는 순서는 장비가 정합니다. 받은 바이트를 그대로 HEX 로 넣고 «이 순서로 받았다면» 열에서 매뉴얼의 예시 값과 맞는 줄을 찾으면 그 장비의 순서입니다.
자주 묻는 것
HEX FFFF 는 10진 몇인가요?
부호 없는 16비트로 읽으면 65535, 부호 있는 16비트(2의 보수)로 읽으면 −1 입니다. 장비 자료형에 따라 다릅니다.
음수를 HEX 로 바꾸려면?
입력 형식을 «10진» 으로 두고 −500 처럼 넣으면 고른 비트 수의 2의 보수 HEX(16비트면 FE0C)가 나옵니다.
BCD 와 HEX 는 무엇이 다른가요?
HEX 는 값을 16진으로 적은 것이고, BCD 는 10진 자리를 4비트씩 담은 것입니다. 값 1234 는 HEX 로 04D2, BCD 로 1234(0x1234)입니다.
float(실수)는요?
32·64비트 실수(IEEE 754)는 Modbus 실수 변환기에서 네 바이트 순서를 함께 볼 수 있습니다.
레지스터 두·네 개를 float32·float64 로 읽으려면 Modbus 실수 변환기.