{
  "spec_version": 1,
  "slug": "bitzer-cm-rc-01",
  "manufacturer": "BITZER",
  "model": "CM-RC-01 compressor control module (IQ module)",
  "category": "Refrigeration controller",
  "supplier_url": "https://www.bitzer.de/sy/en/iq_content.jsp",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 48,
    "addressing": "one_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "Even",
      "baud_rate": 19200,
      "data_bits": 8,
      "stop_bits": 1
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 100,
      "count": 1,
      "name": "Capacity setpoint",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Active capacity setpoint. Transmitted with scale 100 (12.3 % = 123)."
    },
    {
      "address": 101,
      "count": 1,
      "name": "Actual capacity",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Average capacity delivered. Transmitted with scale 100."
    },
    {
      "address": 102,
      "count": 1,
      "name": "Control word",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Active control word."
    },
    {
      "address": 103,
      "count": 1,
      "name": "Status word",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Operation status word."
    },
    {
      "address": 11100,
      "count": 1,
      "name": "Number of active alarms",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Number of active alarms."
    },
    {
      "address": 11101,
      "count": 1,
      "name": "Number of uncleared listed alarms",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Number of listed alarms that have not yet been cleared."
    },
    {
      "address": 11102,
      "count": 1,
      "name": "Highest alarm state",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Clear, 1 = Inactive, 2 = Active, 3 = Set."
    },
    {
      "address": 11103,
      "count": 1,
      "name": "Highest alarm severity",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = None, 1 = Log, 2 = Event, 4 = Info, 8 = Warning, 16 = Critical, 32 = Fault."
    },
    {
      "address": 11104,
      "count": 1,
      "name": "Waiting for external reset",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = No, 1 = Yes. Set when the module is locked and waiting for an external reset command or restart."
    },
    {
      "address": 11105,
      "count": 1,
      "name": "Required alarm reset level",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = NA, 1 = Auto, 2 = Timer, 3 = Extern, 4 = Restart."
    },
    {
      "address": 11201,
      "count": 1,
      "name": "Highest ranked alarm code",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Code of the highest ranked active alarm."
    },
    {
      "address": 11202,
      "count": 1,
      "name": "Second highest ranked alarm code",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Code of the second highest ranked active alarm."
    },
    {
      "address": 12001,
      "count": 1,
      "name": "Suction pressure",
      "data_type": "Int16",
      "units": "bar(a)",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Suction pressure. Transmitted with scale 100."
    },
    {
      "address": 12002,
      "count": 1,
      "name": "Discharge pressure",
      "data_type": "Int16",
      "units": "bar(a)",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Discharge pressure. Transmitted with scale 100."
    },
    {
      "address": 12003,
      "count": 1,
      "name": "Evaporating temperature (SST)",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Calculated saturated suction temperature. Transmitted with scale 10."
    },
    {
      "address": 12004,
      "count": 1,
      "name": "Condensing temperature (SDT)",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Calculated saturated discharge temperature. Transmitted with scale 10."
    },
    {
      "address": 12005,
      "count": 1,
      "name": "Envelope status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Stopped, 1 = Starting, 2 = Running, 3 = Stopping, 4 = Warning - inside envelope, 5 = Critical - outside envelope, 6 = Fault."
    },
    {
      "address": 12006,
      "count": 1,
      "name": "Envelope zone",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Inside, 1 = SST Low / SDT Low, 2 = SST Low, 3 = SST Low / SDT High, 4 = SDT High, 5 = SST High / SDT High, 6 = SST High, 7 = SST High / SDT Low, 8 = SDT Low."
    },
    {
      "address": 12010,
      "count": 1,
      "name": "Discharge temperature",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Discharge gas temperature. Transmitted with scale 10."
    },
    {
      "address": 12011,
      "count": 1,
      "name": "AUX temperature",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Auxiliary temperature input. Transmitted with scale 10."
    },
    {
      "address": 12022,
      "count": 1,
      "name": "High pressure switch",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 12023,
      "count": 1,
      "name": "Crankcase oil heater",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 12025,
      "count": 1,
      "name": "Oil sensor 1",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 12026,
      "count": 1,
      "name": "Oil sensor 2",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 12027,
      "count": 1,
      "name": "Motor start requested",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 12028,
      "count": 1,
      "name": "Head cooling fan",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 12029,
      "count": 1,
      "name": "Liquid injection cooling valve",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 12030,
      "count": 1,
      "name": "Compressor start unloading valve",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 12031,
      "count": 1,
      "name": "Capacity control valve CR-1",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 12032,
      "count": 1,
      "name": "Capacity control valve CR-2",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 12033,
      "count": 1,
      "name": "Capacity control valve CR-3",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 13001,
      "count": 1,
      "name": "Motor overheat thermistor resistance",
      "data_type": "UInt16",
      "units": "Ohm",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "PTC thermistor resistance of the motor overheat protection."
    },
    {
      "address": 13002,
      "count": 1,
      "name": "Estimated motor power consumption",
      "data_type": "UInt16",
      "units": "kW",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Estimated motor power. Transmitted with scale 10."
    },
    {
      "address": 13003,
      "count": 1,
      "name": "Motor drive frequency",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Motor drive frequency (speed). Transmitted with scale 10."
    },
    {
      "address": 13006,
      "count": 1,
      "name": "Motor start contactor 1",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 13007,
      "count": 1,
      "name": "Motor start contactor 2",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = Off, 1 = On."
    },
    {
      "address": 14000,
      "count": 1,
      "name": "System operating state",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = CONFIG, 1 = INPUT, 2 = STARTUP, 3 = READY, 4 = SUSPEND, 5 = SERVICE, 6 = PRODUCTION."
    },
    {
      "address": 15150,
      "count": 1,
      "name": "Control output current",
      "data_type": "Int16",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Control output current. Transmitted with scale 100."
    },
    {
      "address": 15990,
      "count": 1,
      "name": "Operation LED state",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = OFF, 1 = ON, 2 = SLOW_SHORT, 3 = SLOW_MED, 4 = SLOW_LONG, 5 = FAST_SHORT, 6 = FAST_MED, 7 = FAST_LONG."
    },
    {
      "address": 15991,
      "count": 1,
      "name": "Warning LED state",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = OFF, 1 = ON, 2 = SLOW_SHORT, 3 = SLOW_MED, 4 = SLOW_LONG, 5 = FAST_SHORT, 6 = FAST_MED, 7 = FAST_LONG."
    },
    {
      "address": 15992,
      "count": 1,
      "name": "Fault LED state",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = OFF, 1 = ON, 2 = SLOW_SHORT, 3 = SLOW_MED, 4 = SLOW_LONG, 5 = FAST_SHORT, 6 = FAST_MED, 7 = FAST_LONG."
    },
    {
      "address": 15993,
      "count": 1,
      "name": "Communication LED state",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = OFF, 1 = ON, 2 = SLOW_SHORT, 3 = SLOW_MED, 4 = SLOW_LONG, 5 = FAST_SHORT, 6 = FAST_MED, 7 = FAST_LONG."
    },
    {
      "address": 20300,
      "count": 1,
      "name": "Serial control source",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = None, 1 = COM1 (Modbus)."
    },
    {
      "address": 20301,
      "count": 1,
      "name": "Serial control timeout function",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = None, 1 = Stop, 2 = Fault."
    },
    {
      "address": 20302,
      "count": 1,
      "name": "Serial control timeout time",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Serial control timeout time, default 60 s."
    },
    {
      "address": 22100,
      "count": 1,
      "name": "Refrigerant selection",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = NONE, 1 = R134a, 2 = R404A, 3 = R507A, 4 = R407C, 5 = R22, 6 = R407A, 7 = R407F, 9 = R448A, 10 = R449A, 11 = R450A, 12 = R513A, 13 = R1234yf, 14 = R1234ze."
    },
    {
      "address": 22300,
      "count": 1,
      "name": "Mains supply voltage specification",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Mains supply voltage specification (single phase)."
    }
  ],
  "holding_registers": [
    {
      "address": 110,
      "count": 1,
      "name": "Serial control word",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Control word written by serial communication."
    },
    {
      "address": 111,
      "count": 1,
      "name": "Serial setpoint",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "RW",
      "description": "Capacity setpoint written by serial communication, -100.00 to 100.00 %. Transmitted with scale 100."
    },
    {
      "address": 20100,
      "count": 1,
      "name": "Clock: year",
      "data_type": "UInt16",
      "units": "y",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Year written to the module clock."
    },
    {
      "address": 20101,
      "count": 1,
      "name": "Clock: month and day",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Month and day packed as MMDD (257 = 25 February, 3103 = 31 March)."
    },
    {
      "address": 20102,
      "count": 1,
      "name": "Clock: hour and minute",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Hour and minute packed as HHMM (0 to 5947)."
    },
    {
      "address": 20103,
      "count": 1,
      "name": "Clock: millisecond",
      "data_type": "UInt16",
      "units": "ms",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Millisecond part of the module clock (0 to 59999 ms)."
    },
    {
      "address": 65409,
      "count": 1,
      "name": "COM1 Modbus address",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Device address for the Modbus connection, 1 to 247. Factory default 48."
    },
    {
      "address": 65410,
      "count": 1,
      "name": "COM1 baud rate",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "1 = 9600, 2 = 19200, 3 = 115200, 129 = 300, 130 = 1200, 131 = 4800, 132 = 38400. Factory default 2 (19200)."
    },
    {
      "address": 65411,
      "count": 1,
      "name": "COM1 stop bits",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "1 = 1 stop bit, 2 = 2 stop bits. Factory default 1."
    },
    {
      "address": 65412,
      "count": 1,
      "name": "COM1 parity",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = None, 1 = Even, 2 = Odd. Factory default 1 (Even)."
    }
  ],
  "combined_registers": [],
  "notes": "Source: BITZER \"Reference guide - Compressor Control Module CM-RC-01\", document version 3.0, sections 10.2 and 10.3 (http://cis.bitzer.ru/files/File/IQ-Products/CM-RC-01.pdf, BITZER's own Russian documentation server). The guide states that the numbers in section 10.3 are Modbus register numbers, not indexes, so they are one-based register numbers and the PDU address is one less; every input register can also be read as a holding register. Factory serial settings from section 10.2.1: address 48, 19200 bps, 8 data bits, even parity, 1 stop bit. Scale 100 / scale 10 values are transmitted as 100x / 10x the engineering value, hence scale factors 0.01 / 0.1. The module is reached over RS-485 through a Modbus RTU-to-TCP gateway. Only 16-bit points are listed: the file leaves out the 32-bit counter pairs (device and compressor operating hours, start count) because their word order is not stated unambiguously in the extracted table. COM1 configuration registers are listed read/write because the module allows changing them over Modbus, although the factory values above are the ones to start from."
}
