{
 "manufacturer": "OJ Electronics",
 "manufacturer_slug": "oj-electronics",
 "model": "OJ-DRHX rotary heat exchanger drive",
 "model_slug": "oj-drhx-rotary-heat-exchanger-drive",
 "aliases": [
  "OJ-DRHX",
  "OJ DRHX",
  "DRHX",
  "67854"
 ],
 "equipment_type": "Rotary heat exchanger drive (energy recovery wheel)",
 "applies_to": "OJ Electronics OJ-DRHX drives for rotary heat exchanger wheels in air handling units.",
 "summary": "The OJ-DRHX drives the rotor of a rotary heat exchanger and has BACnet MS/TP on RS-485. Binary Values give run, alarm reset, rotor guard and other alarm flags and a rotation-OK status; Integer Values carry the setpoint, speed limits, motor and rotor speed, torque and electrical readings. BACnet MS/TP has to be switched on first, through the OJ PC tool or Modbus.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "AOC 2.50 or later",
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Integer Value objects (IV) carry scaled whole numbers; values marked x0.01 have two implied decimals.",
  "Object names in the Integer Value table come from its Function column.",
  "BV 16 and IV 19 relate to the optional IOM I/O module.",
  "Writing 0 to BV 2 turns BACnet MS/TP off; it comes back only through Modbus or protocol auto-detect."
 ],
 "source": {
  "title": "OJ-DRHX BACnet MS/TP protocol (application note)",
  "doc_number": "67854",
  "revision_date": "10/20",
  "url": "https://ojelectronics.com/drives/wp-admin/admin-ajax.php?action=productdownload&media_id=48365800&filename=67854-11-20-OJ-DRHX-BACnet-SM-TP-protocol_GB+web.pdf&view=true"
 },
 "integration": {
  "summary": "Enable BACnet MS/TP on the drive, write the setpoint to IV 0 and set BV 0 to run the wheel. Watch BV 17 (rotation OK), BV 3 (rotor guard alarm) and the other alarm flags; BV 1 resets alarms.",
  "minimum_points": [
   {
    "ref": "BV 0",
    "name": "Motor ON/OFF",
    "why": "Run command (1 = on); clears on any error"
   },
   {
    "ref": "IV 0",
    "name": "Setpoint / PrcSet",
    "why": "Setpoint, 0-10000 = 0-100.00 %"
   },
   {
    "ref": "BV 1",
    "name": "Reset Alarms",
    "why": "Alarm reset (1 = reset)"
   },
   {
    "ref": "BV 17",
    "name": "Rotation OK",
    "why": "Rotation OK (1 = wheel turning)"
   },
   {
    "ref": "IV 15",
    "name": "Rotor Speed Out",
    "why": "Rotor speed, x0.01 rpm"
   },
   {
    "ref": "IV 7",
    "name": "Motor Speed Out",
    "why": "Motor speed, x0.01 rpm"
   },
   {
    "ref": "BV 3",
    "name": "Rotorguard Alarm",
    "why": "Rotor guard alarm"
   },
   {
    "ref": "BV 10",
    "name": "Internal Stop",
    "why": "Internal stop alarm"
   },
   {
    "ref": "BV 9",
    "name": "Overload / Rotor Blocked",
    "why": "Overload / rotor blocked alarm"
   }
  ],
  "enable": "BACnet MS/TP must be enabled (OJ PC tool or Modbus coils); then BV 0 starts and stops the wheel.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "Out of the box the drive talks Modbus (address 79, 38400 baud, no parity, 1 stop bit); BACnet MS/TP is switched on from the OJ PC tool (Alternative device communications) or through Modbus coils.",
   "MS/TP settings: baud 9600-115200, MAC 0-127, Max Master 1-127, device instance 0-4194302 (Modbus holding registers).",
   "OJ publishes an EDE file for the object list on its product page."
  ],
  "gotchas": [
   "BV 0 drops back to 0 on any error, so the BMS has to set it again after the fault is cleared.",
   "Do not write BV 2 = 0: it turns BACnet MS/TP off until it is re-enabled through Modbus."
  ]
 },
 "points": [
  {
   "type": "BV",
   "instance": 0,
   "name": "Motor ON/OFF",
   "description": "Run command; drive clears it on any error",
   "units": "",
   "access": "W",
   "states": "1=ON"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "Reset Alarms",
   "description": "Alarm reset; returns to 0 after the reset",
   "units": "",
   "access": "W",
   "states": "1=Reset"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "BACnet Enable",
   "description": "0 turns BACnet MS/TP off (recover via Modbus)",
   "units": "",
   "access": "W",
   "states": "1=Enabled"
  },
  {
   "type": "BV",
   "instance": 3,
   "name": "Rotorguard Alarm",
   "description": "Rotor guard (rotation sensor) alarm",
   "units": "",
   "access": "R",
   "states": "1=Alarm"
  },
  {
   "type": "BV",
   "instance": 4,
   "name": "V LO Alarm",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Alarm"
  },
  {
   "type": "BV",
   "instance": 5,
   "name": "V HI Alarm",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Alarm"
  },
  {
   "type": "BV",
   "instance": 6,
   "name": "I HI Alarm ( Motor out short)",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Alarm"
  },
  {
   "type": "BV",
   "instance": 7,
   "name": "Temperature High",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Warning"
  },
  {
   "type": "BV",
   "instance": 8,
   "name": "Rotorguard signal",
   "description": "Rotor guard pulse",
   "units": "",
   "access": "R",
   "states": "1=Pulse"
  },
  {
   "type": "BV",
   "instance": 9,
   "name": "Overload / Rotor Blocked",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Alarm"
  },
  {
   "type": "BV",
   "instance": 10,
   "name": "Internal Stop",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Alarm (Stop)"
  },
  {
   "type": "BV",
   "instance": 11,
   "name": "I Limit",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Warning"
  },
  {
   "type": "BV",
   "instance": 12,
   "name": "EEPROM error",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Warning"
  },
  {
   "type": "BV",
   "instance": 13,
   "name": "Communication error MOC",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Alarm"
  },
  {
   "type": "BV",
   "instance": 14,
   "name": "Motor Phase Error",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Alarm"
  },
  {
   "type": "BV",
   "instance": 15,
   "name": "MOC in bootloader",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Alarm"
  },
  {
   "type": "BV",
   "instance": 16,
   "name": "Communication error IOM",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Warning"
  },
  {
   "type": "BV",
   "instance": 17,
   "name": "Rotation OK",
   "description": "Wheel rotation confirmed",
   "units": "",
   "access": "R",
   "states": "1=OK"
  },
  {
   "type": "BV",
   "instance": 18,
   "name": "Test function active",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Active"
  },
  {
   "type": "IV",
   "instance": 0,
   "name": "Setpoint / PrcSet",
   "description": "Setpoint, 0-100.00 %; value x0.01",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 1,
   "name": "Min. Motor Speed",
   "description": "value x0.01",
   "units": "rpm",
   "access": "W",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 2,
   "name": "Max. Motor Speed",
   "description": "value x0.01",
   "units": "rpm",
   "access": "W",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 3,
   "name": "DRHX Type",
   "description": "DRHX size code",
   "units": "Nm",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 4,
   "name": "MOC SW Version",
   "description": "value x0.01",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 5,
   "name": "PrcOut",
   "description": "value x0.01",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 6,
   "name": "Intern Temp",
   "description": "value x0.01",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 7,
   "name": "Motor Speed Out",
   "description": "Motor speed; value x0.01",
   "units": "rpm",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 8,
   "name": "V In",
   "description": "",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 9,
   "name": "I Out (RMS)",
   "description": "",
   "units": "mA",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 10,
   "name": "Power In",
   "description": "",
   "units": "W",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 11,
   "name": "ExterSet",
   "description": "",
   "units": "mW",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 12,
   "name": "Operation Day",
   "description": "",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 13,
   "name": "Operation Minutes",
   "description": "",
   "units": "min",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 14,
   "name": "AOC SW Version",
   "description": "value x0.01",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 15,
   "name": "Rotor Speed Out",
   "description": "Rotor (wheel) speed; value x0.01",
   "units": "rpm",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 16,
   "name": "Torque",
   "description": "value x0.01",
   "units": "Nm",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 17,
   "name": "V DC Bus (Peak)",
   "description": "",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 18,
   "name": "V Motor (Peak)",
   "description": "",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "IV",
   "instance": 19,
   "name": "ExternSet (IOM)",
   "description": "",
   "units": "mV",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/oj-electronics/oj-drhx-rotary-heat-exchanger-drive",
 "note": "Provided as-is. Point availability varies by firmware and options; verify against the live device.",
 "disclaimer": "DISCLAIMER: reference only, provided AS IS with no warranty. May contain errors or be out of date. You must verify every point against the manufacturer's current documentation and the live device before use. easybacnet.com accepts no liability for its use and is not affiliated with the manufacturer. Terms: https://easybacnet.com/terms#content"
}
