{
  "$schema": "../schema.json",
  "schemaVersion": 1,
  "id": "eastron/sdm630-di",
  "manufacturer": {
    "ko": "이스트론",
    "en": "Eastron"
  },
  "model": "SDM630-DI",
  "kind": "power-meter",
  "title": {
    "ko": "이스트론 SDM630-DI 3상 DIN 레일 전력량계(직결 100 A, 디지털 입력 2점)",
    "en": "Eastron SDM630-DI three-phase DIN-rail energy meter (100 A direct, 2 digital inputs)"
  },
  "summary": {
    "ko": "계측값은 input register(FC04)에 IEEE 754 Float32(상위 워드 먼저), 설정은 holding register(FC03 읽기·FC16 쓰기)에 Float32. 같은 값을 정수(Int32·Int64)로 주는 310021~ 영역도 있다.",
    "en": "Measurements are IEEE 754 Float32 input registers (FC04, high word first); settings are Float32 holding registers (FC03 read, FC16 write). An integer (Int32/Int64) area from 310021 also exists."
  },
  "protocols": [
    "rtu"
  ],
  "comm": {
    "baud": 9600,
    "bauds": [
      2400,
      4800,
      9600,
      19200,
      38400,
      115200
    ],
    "dataBits": 8,
    "parity": "none",
    "stopBits": 1,
    "unit": 1,
    "unitRange": [
      1,
      247
    ],
    "order": "ABCD",
    "addressing": "plc",
    "notes": [
      {
        "ko": "매뉴얼은 30001·40001 꼴 번호와 «Modbus Protocol Start Address Hex» 칸을 함께 적는다(30001 ↔ 00 00, 40003 ↔ 00 02). 통신 주소 = 번호 − 30001(입력)·− 40001(홀딩), 6자리(310021·461457 등)는 − 300001·− 400001 (p.20-25).",
        "en": "The manual lists 30001/40001-style numbers together with a 'Modbus Protocol Start Address Hex' column (30001 ↔ 00 00, 40003 ↔ 00 02). Wire address = number − 30001 (input) or − 40001 (holding); 6-digit numbers (310021, 461457 …) use − 300001 / − 400001 (p.20-25)."
      },
      {
        "ko": "주소 기준은 p.26-27 프레임 예로 확인: 40003 Demand Period 읽기 01 03 00 02 00 02 65 CB → 01 03 04 42 70 00 00 EF 90(60.0), 15분 쓰기 01 10 00 02 00 02 04 41 70 00 00 67 91 → 01 10 00 02 00 02 E0 08. 네 프레임 모두 CRC 를 다시 계산해 맞음. 입력 레지스터의 숫자 예는 이 매뉴얼에 없어 표의 Hex 칸(30001 ↔ 00 00)으로 맞췄다.",
        "en": "Addressing confirmed by the frame examples on p.26-27: read 40003 Demand Period 01 03 00 02 00 02 65 CB → 01 03 04 42 70 00 00 EF 90 (60.0); write 15 min 01 10 00 02 00 02 04 41 70 00 00 67 91 → 01 10 00 02 00 02 E0 08. CRC recomputed and correct for all four. This manual has no numeric input-register example, so input addresses follow the table's Hex column (30001 ↔ 00 00)."
      },
      {
        "ko": "Float 은 빅 엔디언 — 첫 레지스터가 상위 16비트 (p.19-20 응답 프레임 설명, 위 예 42 70 00 00 = 60.0).",
        "en": "Float is big-endian: the first register holds the high 16 bits (p.19-20 response frame description; example 42 70 00 00 = 60.0)."
      },
      {
        "ko": "출하값 9600 bps·패리티 없음·국번 1 (p.7 2.7.1, p.24 40019·40021). 속도 115.2k 는 40029 값 6 (5 는 표에 없음) (p.25).",
        "en": "Defaults 9600 bps, no parity, address 1 (p.7 2.7.1, p.24 40019/40021). 115.2k is value 6 in 40029 (5 is not listed) (p.25)."
      }
    ]
  },
  "registers": [
    {
      "table": "input-registers",
      "address": 0,
      "manualAddress": "30001",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L1 상전압",
        "en": "L1 line-to-neutral voltage"
      },
      "unit": "V",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.20 (PDF 23)"
    },
    {
      "table": "input-registers",
      "address": 2,
      "manualAddress": "30003",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L2 상전압",
        "en": "L2 line-to-neutral voltage"
      },
      "unit": "V",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.20 (PDF 23)"
    },
    {
      "table": "input-registers",
      "address": 4,
      "manualAddress": "30005",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L3 상전압",
        "en": "L3 line-to-neutral voltage"
      },
      "unit": "V",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.20 (PDF 23)"
    },
    {
      "table": "input-registers",
      "address": 6,
      "manualAddress": "30007",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L1 전류",
        "en": "L1 current"
      },
      "unit": "A",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.20 (PDF 23)"
    },
    {
      "table": "input-registers",
      "address": 8,
      "manualAddress": "30009",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L2 전류",
        "en": "L2 current"
      },
      "unit": "A",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.20 (PDF 23)"
    },
    {
      "table": "input-registers",
      "address": 10,
      "manualAddress": "30011",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L3 전류",
        "en": "L3 current"
      },
      "unit": "A",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.20 (PDF 23)"
    },
    {
      "table": "input-registers",
      "address": 12,
      "manualAddress": "30013",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L1 유효전력",
        "en": "L1 active power"
      },
      "unit": "W",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.20 (PDF 23)"
    },
    {
      "table": "input-registers",
      "address": 14,
      "manualAddress": "30015",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L2 유효전력",
        "en": "L2 active power"
      },
      "unit": "W",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.20 (PDF 23)"
    },
    {
      "table": "input-registers",
      "address": 16,
      "manualAddress": "30017",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L3 유효전력",
        "en": "L3 active power"
      },
      "unit": "W",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.20 (PDF 23)"
    },
    {
      "table": "input-registers",
      "address": 30,
      "manualAddress": "30031",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L1 역률",
        "en": "L1 power factor"
      },
      "access": "r",
      "fc": [
        4
      ],
      "description": {
        "ko": "부호 = 전류 방향(+ 정방향, − 역방향)",
        "en": "Sign shows current direction (+ forward, − reverse)"
      },
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 32,
      "manualAddress": "30033",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L2 역률",
        "en": "L2 power factor"
      },
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 34,
      "manualAddress": "30035",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L3 역률",
        "en": "L3 power factor"
      },
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 42,
      "manualAddress": "30043",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "평균 상전압",
        "en": "Average line-to-neutral voltage"
      },
      "unit": "V",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 46,
      "manualAddress": "30047",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "평균 전류",
        "en": "Average line current"
      },
      "unit": "A",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 52,
      "manualAddress": "30053",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "총 유효전력",
        "en": "Total active power"
      },
      "unit": "W",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 56,
      "manualAddress": "30057",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "총 피상전력",
        "en": "Total apparent power"
      },
      "unit": "VA",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 60,
      "manualAddress": "30061",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "총 무효전력",
        "en": "Total reactive power"
      },
      "unit": "VAr",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 62,
      "manualAddress": "30063",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "총 역률",
        "en": "Total power factor"
      },
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 70,
      "manualAddress": "30071",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "주파수",
        "en": "Frequency"
      },
      "unit": "Hz",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 72,
      "manualAddress": "30073",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "수전 유효전력량",
        "en": "Import active energy"
      },
      "unit": "kWh",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 74,
      "manualAddress": "30075",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "송전 유효전력량",
        "en": "Export active energy"
      },
      "unit": "kWh",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 76,
      "manualAddress": "30077",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "수전 무효전력량",
        "en": "Import reactive energy"
      },
      "unit": "kVArh",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 78,
      "manualAddress": "30079",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "송전 무효전력량",
        "en": "Export reactive energy"
      },
      "unit": "kVArh",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 84,
      "manualAddress": "30085",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "총 유효전력 디맨드",
        "en": "Total active power demand"
      },
      "unit": "W",
      "access": "r",
      "fc": [
        4
      ],
      "description": {
        "ko": "수전 − 송전으로 계산",
        "en": "Calculated as import − export"
      },
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 200,
      "manualAddress": "30201",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L1-L2 선간전압",
        "en": "L1-L2 voltage"
      },
      "unit": "V",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 202,
      "manualAddress": "30203",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L2-L3 선간전압",
        "en": "L2-L3 voltage"
      },
      "unit": "V",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 204,
      "manualAddress": "30205",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "L3-L1 선간전압",
        "en": "L3-L1 voltage"
      },
      "unit": "V",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 224,
      "manualAddress": "30225",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "중성선 전류",
        "en": "Neutral current"
      },
      "unit": "A",
      "access": "r",
      "fc": [
        4
      ],
      "ref": "p.21 (PDF 24)"
    },
    {
      "table": "input-registers",
      "address": 342,
      "manualAddress": "30343",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "총 유효전력량",
        "en": "Total active energy"
      },
      "unit": "kWh",
      "access": "r",
      "fc": [
        4
      ],
      "description": {
        "ko": "수전 + 송전",
        "en": "Import + export"
      },
      "ref": "p.22 (PDF 25)"
    },
    {
      "table": "input-registers",
      "address": 344,
      "manualAddress": "30345",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "총 무효전력량",
        "en": "Total reactive energy"
      },
      "unit": "kVArh",
      "access": "r",
      "fc": [
        4
      ],
      "description": {
        "ko": "수전 + 송전",
        "en": "Import + export"
      },
      "ref": "p.22 (PDF 25)"
    },
    {
      "table": "holding-registers",
      "address": 0,
      "manualAddress": "40001",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "디맨드 경과 시간",
        "en": "Demand time"
      },
      "unit": "min",
      "access": "r",
      "fc": [
        3
      ],
      "description": {
        "ko": "첫 디맨드 계산까지 지난 분. Demand Period 에 이르면 디맨드 값이 유효",
        "en": "Minutes into the first demand calculation; demand values are valid once it reaches the demand period"
      },
      "ref": "p.24 (PDF 27)"
    },
    {
      "table": "holding-registers",
      "address": 2,
      "manualAddress": "40003",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "디맨드 주기",
        "en": "Demand period"
      },
      "unit": "min",
      "access": "rw",
      "fc": [
        3,
        16
      ],
      "range": {
        "min": 0,
        "max": 60
      },
      "description": {
        "ko": "출하 60. 0 = 실시간(1초마다 갱신)",
        "en": "Default 60; 0 = real time (updated every second)"
      },
      "ref": "p.24 (PDF 27)"
    },
    {
      "table": "holding-registers",
      "address": 10,
      "manualAddress": "40011",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "결선 방식",
        "en": "System type"
      },
      "access": "rw",
      "fc": [
        3,
        16
      ],
      "values": [
        {
          "value": 1,
          "ko": "1P2W",
          "en": "1P2W"
        },
        {
          "value": 2,
          "ko": "3P3W",
          "en": "3P3W"
        },
        {
          "value": 3,
          "ko": "3P4W(출하)",
          "en": "3P4W (default)"
        }
      ],
      "ref": "p.24 (PDF 27)"
    },
    {
      "table": "holding-registers",
      "address": 14,
      "manualAddress": "40015",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "주요 파라미터 설정 권한(KPPA)",
        "en": "Key parameter programming authorization (KPPA)"
      },
      "access": "rw",
      "fc": [
        3,
        16
      ],
      "values": [
        {
          "value": 0,
          "ko": "권한 없음",
          "en": "Not authorized"
        },
        {
          "value": 1,
          "ko": "권한 있음",
          "en": "Authorized"
        }
      ],
      "description": {
        "ko": "읽으면 상태, 맞는 비밀번호를 쓰면 주요 파라미터 설정 권한을 얻는다",
        "en": "Read for status; write the correct password to enable programming of key parameters"
      },
      "ref": "p.24 (PDF 27)"
    },
    {
      "table": "holding-registers",
      "address": 18,
      "manualAddress": "40019",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "패리티·정지 비트",
        "en": "Parity and stop bits"
      },
      "access": "rw",
      "fc": [
        3,
        16
      ],
      "values": [
        {
          "value": 0,
          "ko": "정지 1비트·패리티 없음(출하)",
          "en": "1 stop bit, no parity (default)"
        },
        {
          "value": 1,
          "ko": "정지 1비트·짝수 패리티",
          "en": "1 stop bit, even parity"
        },
        {
          "value": 2,
          "ko": "정지 1비트·홀수 패리티",
          "en": "1 stop bit, odd parity"
        },
        {
          "value": 3,
          "ko": "정지 2비트·패리티 없음",
          "en": "2 stop bits, no parity"
        }
      ],
      "ref": "p.24 (PDF 27)"
    },
    {
      "table": "holding-registers",
      "address": 20,
      "manualAddress": "40021",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "Modbus 국번",
        "en": "Modbus address"
      },
      "access": "rw",
      "fc": [
        3,
        16
      ],
      "range": {
        "min": 1,
        "max": 247
      },
      "description": {
        "ko": "출하 1",
        "en": "Default 1"
      },
      "ref": "p.24 (PDF 27)"
    },
    {
      "table": "holding-registers",
      "address": 24,
      "manualAddress": "40025",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "비밀번호",
        "en": "Password"
      },
      "access": "rw",
      "fc": [
        3,
        16
      ],
      "range": {
        "min": 0,
        "max": 9999
      },
      "description": {
        "ko": "출하 1000",
        "en": "Default 1000"
      },
      "ref": "p.25 (PDF 28)"
    },
    {
      "table": "holding-registers",
      "address": 28,
      "manualAddress": "40029",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "통신 속도",
        "en": "Baud rate"
      },
      "access": "rw",
      "fc": [
        3,
        16
      ],
      "values": [
        {
          "value": 0,
          "ko": "2400 bps",
          "en": "2400 bps"
        },
        {
          "value": 1,
          "ko": "4800 bps",
          "en": "4800 bps"
        },
        {
          "value": 2,
          "ko": "9600 bps(출하)",
          "en": "9600 bps (default)"
        },
        {
          "value": 3,
          "ko": "19200 bps",
          "en": "19200 bps"
        },
        {
          "value": 4,
          "ko": "38400 bps",
          "en": "38400 bps"
        },
        {
          "value": 6,
          "ko": "115200 bps",
          "en": "115200 bps"
        }
      ],
      "ref": "p.25 (PDF 28)"
    },
    {
      "table": "holding-registers",
      "address": 60,
      "manualAddress": "40061",
      "type": "f32",
      "order": "ABCD",
      "name": {
        "ko": "백라이트 시간",
        "en": "Backlight time"
      },
      "unit": "min",
      "access": "rw",
      "fc": [
        3,
        16
      ],
      "range": {
        "min": 0,
        "max": 121
      },
      "description": {
        "ko": "0 = 늘 켬, 121 = 늘 끔, 출하 60",
        "en": "0 = always on, 121 = always off, default 60"
      },
      "ref": "p.25 (PDF 28)"
    },
    {
      "table": "holding-registers",
      "address": 61456,
      "manualAddress": "461457",
      "type": "u16",
      "name": {
        "ko": "리셋",
        "en": "Reset"
      },
      "access": "w",
      "fc": [
        16
      ],
      "values": [
        {
          "value": 0,
          "ko": "최대 디맨드 리셋",
          "en": "Reset maximum demand"
        },
        {
          "value": 6,
          "ko": "DI 카운트 리셋",
          "en": "Reset DI counts"
        }
      ],
      "description": {
        "ko": "2바이트 Hex(F0 10)",
        "en": "2-byte hex (F0 10)"
      },
      "ref": "p.25 (PDF 28)"
    }
  ],
  "notes": [
    {
      "ko": "정수 영역(310021~ Int64 Wh·VArh, 310251~ Int32 0.1 V 등)은 넣지 않았다 — 매뉴얼은 Float 의 워드 순서만 적고 Int32·Int64 의 워드 순서는 적지 않는다 (p.19-20, p.22-23). 일련번호(464513, unsigned int32)도 같은 이유로 뺐다.",
      "en": "The integer area (310021~ Int64 Wh/VArh, 310251~ Int32 0.1 V etc.) is left out: the manual states word order only for Float, not for Int32/Int64 (p.19-20, p.22-23). Serial number (464513, unsigned int32) is left out for the same reason."
    },
    {
      "ko": "뺀 레지스터: 30255(이름은 총 역률인데 단위가 Degrees, p.21), 40071 CO2 RATE(범위는 소수인데 형식 칸이 hex, p.25), 40769 DI 필터 시간(통신 표는 ms·0~255, 설정 메뉴 p.18 은 000~255 min — 단위가 어긋남), 40770·40772 DI 카운트(홀수 주소의 unsigned int32, 워드 순서 없음).",
      "en": "Left out: 30255 (named total power factor but unit Degrees, p.21), 40071 CO2 RATE (decimal range but format 'hex', p.25), 40769 DI filter time (comm table says ms, 0-255; setup menu p.18 says 000-255 min — units disagree), 40770/40772 DI counts (unsigned int32 at odd addresses, no word order)."
    },
    {
      "ko": "Float 계측값은 2개씩(짝수 시작) 읽는다. 이 매뉴얼은 같은 이스트론 SDM630 계열이라도 SDM630-DI 만 다룬다 — 다른 SDM630 형번은 각자의 매뉴얼로 확인.",
      "en": "Read Float values as register pairs (even start). This manual covers SDM630-DI only; check other SDM630 variants against their own manuals."
    }
  ],
  "sources": [
    {
      "title": "SDM630-DI User Manual",
      "publisher": "Eastron Electronic Co., Ltd.",
      "edition": {
        "ko": "2025 V1.01(표지·머리말), 판 이력 표 마지막 줄 1.02 2025-08-04, 파일명 eastronsdm630-diusermanualv1.02.pdf (eastrongroup.com 다운로드 센터 2025-08-06 게시)",
        "en": "2025 V1.01 (cover and headers); version history last row 1.02 dated 2025-08-04; file name eastronsdm630-diusermanualv1.02.pdf (posted 2025-08-06 on the eastrongroup.com download center)"
      },
      "url": "https://www.eastrongroup.com/eastrongroup/2025/08/06/eastronsdm630-diusermanualv1.02.pdf",
      "pages": {
        "ko": "인쇄 p.7 통신 사양, p.19-20 프레임 형식, p.20-23 입력 레지스터, p.23-27 홀딩 레지스터·프레임 예 (PDF 쪽 = 인쇄 쪽 + 3)",
        "en": "printed p.7 comm specs, p.19-20 frame format, p.20-23 input registers, p.23-27 holding registers and frame examples (PDF page = printed + 3)"
      },
      "checked": "2026-10-29"
    }
  ]
}
