{
 "manufacturer": "AERCO",
 "manufacturer_slug": "aerco",
 "model": "Modulex boilers with BCM and ACS / BMS II (ProtoNode RER)",
 "model_slug": "modulex-bcm-protonode",
 "aliases": [
  "Modulex",
  "MLX",
  "Modulex E8",
  "BCM",
  "ACS",
  "BMS II",
  "ProtoNode RER",
  "64084",
  "GF-129",
  "OMM-0080"
 ],
 "equipment_type": "Boiler controller and plant sequencer via ProtoNode gateway",
 "applies_to": "AERCO Modulex boilers with a BCM, up to four, plus an ACS or BMS II sequencer, read through the AERCO ProtoNode RER.",
 "summary": "The AERCO ProtoNode RER profile for four Modulex boilers with BCM controllers and one ACS or BMS II serves 54 analog values on BACnet IP or BACnet MS/TP. Each Modulex has modulation, setpoint, temperature, status and error values plus a writable requested outlet temperature and direct-drive modulation; the ACS/BMS II adds plant header values and a writable network header setpoint.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": "Node_Offset + A-bank DIP switch value (MAC); the manual's example uses Node_Offset 50,000",
 "access_inferred": false,
 "notes": [
  "Older document (OMM-0080_0H, November 2014) for the ProtoNode RER gateway.",
  "Object IDs are fixed per profile and do not follow a formula; the ACS/BMS II IDs for Net Blr 1-4 Status differ from the C-More profiles.",
  "Modulex temperatures are held in the BCM Modbus registers as value x 10; the manual does not say whether the gateway scales them.",
  "Error code (11-Error Code): low byte is the error, high byte the device (0-7 = BMM 0-7, 255 = BCM); the manual has BCM and BMM fault tables."
 ],
 "integration": {
  "summary": "Set S0 and S1 On (S2, S3, A1 Off) for the BACnet profile with 4 Modulex and 1 ACS/BMS II, set each BCM's address DIP switches to 1-4 and the ACS/BMS II to Modbus address 128. Plant setpoint goes to AV 33 on the ACS/BMS II; each Modulex also has a writable requested outlet temperature and a direct-drive modulation value.",
  "minimum_points": [
   {
    "ref": "AV 33",
    "name": "03-Net Header Set Temp",
    "why": "Plant header setpoint via ACS/BMS II, 40-220 °F"
   },
   {
    "ref": "AV 136",
    "name": "03-Req Outlet Temp",
    "why": "Modulex 1 requested outlet temperature"
   },
   {
    "ref": "AV 137",
    "name": "04-Net Direct Drive",
    "why": "Modulex 1 modulation command, 0-100 %"
   },
   {
    "ref": "AV 141",
    "name": "08-Unit Status",
    "why": "Modulex 1 status: 1 standby, 3 fired, 5 fault"
   },
   {
    "ref": "AV 34",
    "name": "04-Header Temp",
    "why": "Header water temperature, °F"
   },
   {
    "ref": "AV 139",
    "name": "06-Flow Sens Temp",
    "why": "Modulex 1 flow (outlet) temperature"
   },
   {
    "ref": "AV 134",
    "name": "01-Act Mod Lev",
    "why": "Modulex 1 actual modulation, %"
   },
   {
    "ref": "AV 1",
    "name": "11-Error Code",
    "why": "Modulex 1 error code and faulted device"
   },
   {
    "ref": "AV 36",
    "name": "06-Display Code",
    "why": "ACS/BMS II fault bit field"
   }
  ],
  "enable": "No start/stop object. The ACS/BMS II takes the plant setpoint from AV 33 when Header Set Mode = Remote Setpt and Remote Signal = Network. Each Modulex has writable 03-Req Outlet Temp and 04-Net Direct Drive values; the manual lists the BCM setup as the same as monitor-only.",
  "heartbeat": "The BAS must write the setpoint at least three times within the ACS/BMS II Network Timeout (default 30 s, 5-240 s).",
  "remote_sensors": null,
  "setup": [
   "S0 On, S1 On, S2-S3 Off, A1 Off = BACnet IP / MS/TP profile with 1 ACS/BMS II and 4 Modulex boilers with BCMs.",
   "Device instance = Node_Offset (set in the Web Configurator) + A-bank DIP value; MS/TP MAC is 1-127 on A0-A7, baud on B0-B3.",
   "Default IP 192.168.1.24; change it in the ProtoNode web GUI.",
   "Modbus side: every AERCO unit at 9600 baud, 8 data bits, 1 stop bit, no parity.",
   "Modulex BCM address DIP switches 1-4; ACS/BMS II at Modbus address 128 through an RS-232 to RS-485 converter."
  ],
  "gotchas": [
   "Modulex point names repeat for each boiler; the boiler number is in the description.",
   "BCM temperatures are value x 10 in the Modbus registers; check scaling on the BACnet side."
  ]
 },
 "source": {
  "title": "AERCO ProtoNode Gateway User Manual (ProtoNode-RER / ProtoNode-LER), GF-129",
  "doc_number": "OMM-0080_0H",
  "revision_date": "2014-11-06",
  "url": "https://www.aerco.com/dfsmedia/0533dbba17714b1ab581ab07a4cbb521/58249-source/637395359810000000/omm-0080-0h-gf-129-protonode-ler-rer-11-06-14.pdf"
 },
 "points": [
  {
   "type": "AV",
   "instance": 31,
   "name": "01-Fire Rate Out",
   "description": "ACS/BMS II: plant fire rate output (0-100)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 32,
   "name": "02-Header Set Temp",
   "description": "ACS/BMS II: header setpoint in use (40-220)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 33,
   "name": "03-Net Header Set Temp",
   "description": "ACS/BMS II: network header setpoint (40-220)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 34,
   "name": "04-Header Temp",
   "description": "ACS/BMS II: header temperature (40-220)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 35,
   "name": "05-Outside Air Temp",
   "description": "ACS/BMS II: outdoor air temperature (-60 to 120)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 36,
   "name": "06-Display Code",
   "description": "ACS/BMS II: fault/message bit field",
   "units": "",
   "access": "R",
   "states": "Bit 0=Outside air sensor error, Bit 1=Header sensor error, Bit 2=Interlock 1 error, Bit 3=Interlock 2 error, Bit 4=Indoor air/return sensor error, Bit 5=4-20 mA input error"
  },
  {
   "type": "AV",
   "instance": 37,
   "name": "07-Num Boilers Fired",
   "description": "ACS/BMS II: number of boilers firing",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 38,
   "name": "08-Num Boilers Online",
   "description": "ACS/BMS II: number of boilers on line",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 39,
   "name": "09-Last Blr Fired",
   "description": "ACS/BMS II: last boiler fired",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "18-Net Blr 1 Status",
   "description": "ACS/BMS II: status of network boiler 1",
   "units": "",
   "access": "R",
   "states": "1-40=Fired and sequence number, 119=Not on line, 120=On line but not fired, 121=On line but disabled, 122=On line but faulted"
  },
  {
   "type": "AV",
   "instance": 27,
   "name": "19-Net Blr 2 Status",
   "description": "ACS/BMS II: status of network boiler 2",
   "units": "",
   "access": "R",
   "states": "1-40=Fired and sequence number, 119=Not on line, 120=On line but not fired, 121=On line but disabled, 122=On line but faulted"
  },
  {
   "type": "AV",
   "instance": 47,
   "name": "20-Net Blr 3 Status",
   "description": "ACS/BMS II: status of network boiler 3",
   "units": "",
   "access": "R",
   "states": "1-40=Fired and sequence number, 119=Not on line, 120=On line but not fired, 121=On line but disabled, 122=On line but faulted"
  },
  {
   "type": "AV",
   "instance": 49,
   "name": "21-Net Blr 4 Status",
   "description": "ACS/BMS II: status of network boiler 4",
   "units": "",
   "access": "R",
   "states": "1-40=Fired and sequence number, 119=Not on line, 120=On line but not fired, 121=On line but disabled, 122=On line but faulted"
  },
  {
   "type": "AV",
   "instance": 173,
   "name": "22-Return Temp",
   "description": "ACS/BMS II: return temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 134,
   "name": "01-Act Mod Lev",
   "description": "Modulex 1: actual modulation level (0-100)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 135,
   "name": "02-Target Setpoint",
   "description": "Modulex 1: target setpoint (32-185)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 136,
   "name": "03-Req Outlet Temp",
   "description": "Modulex 1: requested outlet temperature setpoint (32-185)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 137,
   "name": "04-Net Direct Drive",
   "description": "Modulex 1: direct drive modulation level command (0-100)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 138,
   "name": "05-Mod Lev In",
   "description": "Modulex 1: modulation level from cascade manager (0-100)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 139,
   "name": "06-Flow Sens Temp",
   "description": "Modulex 1: flow sensor temperature (14-212)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 140,
   "name": "07-Display Code",
   "description": "Modulex 1: status and error code",
   "units": "",
   "access": "R",
   "states": "2=Standby, 8=High temp switch open, 10=Low gas pressure switch open, 18=Air flow switch open during ignition, 23=Flame loss during run, 32=Residual flame, 38=Other conditions, 42=Outlet (flow) temp sensor fault"
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "11-Error Code",
   "description": "Modulex 1: error code; low byte code, high byte device",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 141,
   "name": "08-Unit Status",
   "description": "Modulex 1: unit status",
   "units": "",
   "access": "R",
   "states": "1=Standby, 3=Fired, 5=Fault"
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "09-Ret Flow Temp",
   "description": "Modulex 1: return flow temperature (32-212)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 144,
   "name": "01-Act Mod Lev",
   "description": "Modulex 2: actual modulation level (0-100)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 145,
   "name": "02-Target Setpoint",
   "description": "Modulex 2: target setpoint (32-185)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 146,
   "name": "03-Req Outlet Temp",
   "description": "Modulex 2: requested outlet temperature setpoint (32-185)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 147,
   "name": "04-Net Direct Drive",
   "description": "Modulex 2: direct drive modulation level command (0-100)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 148,
   "name": "05-Mod Lev In",
   "description": "Modulex 2: modulation level from cascade manager (0-100)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 149,
   "name": "06-Flow Sens Temp",
   "description": "Modulex 2: flow sensor temperature (14-212)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 150,
   "name": "07-Display Code",
   "description": "Modulex 2: status and error code",
   "units": "",
   "access": "R",
   "states": "2=Standby, 8=High temp switch open, 10=Low gas pressure switch open, 18=Air flow switch open during ignition, 23=Flame loss during run, 32=Residual flame, 38=Other conditions, 42=Outlet (flow) temp sensor fault"
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "11-Error Code",
   "description": "Modulex 2: error code; low byte code, high byte device",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 151,
   "name": "08-Unit Status",
   "description": "Modulex 2: unit status",
   "units": "",
   "access": "R",
   "states": "1=Standby, 3=Fired, 5=Fault"
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "09-Ret Flow Temp",
   "description": "Modulex 2: return flow temperature (32-212)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "01-Act Mod Lev",
   "description": "Modulex 3: actual modulation level (0-100)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "02-Target Setpoint",
   "description": "Modulex 3: target setpoint (32-185)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "03-Req Outlet Temp",
   "description": "Modulex 3: requested outlet temperature setpoint (32-185)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "04-Net Direct Drive",
   "description": "Modulex 3: direct drive modulation level command (0-100)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "05-Mod Lev In",
   "description": "Modulex 3: modulation level from cascade manager (0-100)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "06-Flow Sens Temp",
   "description": "Modulex 3: flow sensor temperature (14-212)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "07-Display Code",
   "description": "Modulex 3: status and error code",
   "units": "",
   "access": "R",
   "states": "2=Standby, 8=High temp switch open, 10=Low gas pressure switch open, 18=Air flow switch open during ignition, 23=Flame loss during run, 32=Residual flame, 38=Other conditions, 42=Outlet (flow) temp sensor fault"
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "11-Error Code",
   "description": "Modulex 3: error code; low byte code, high byte device",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "08-Unit Status",
   "description": "Modulex 3: unit status",
   "units": "",
   "access": "R",
   "states": "1=Standby, 3=Fired, 5=Fault"
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "09-Ret Flow Temp",
   "description": "Modulex 3: return flow temperature (32-212)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 28,
   "name": "01-Act Mod Lev",
   "description": "Modulex 4: actual modulation level (0-100)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "02-Target Setpoint",
   "description": "Modulex 4: target setpoint (32-185)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 30,
   "name": "03-Req Outlet Temp",
   "description": "Modulex 4: requested outlet temperature setpoint (32-185)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 42,
   "name": "04-Net Direct Drive",
   "description": "Modulex 4: direct drive modulation level command (0-100)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 43,
   "name": "05-Mod Lev In",
   "description": "Modulex 4: modulation level from cascade manager (0-100)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 44,
   "name": "06-Flow Sens Temp",
   "description": "Modulex 4: flow sensor temperature (14-212)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 45,
   "name": "07-Display Code",
   "description": "Modulex 4: status and error code",
   "units": "",
   "access": "R",
   "states": "2=Standby, 8=High temp switch open, 10=Low gas pressure switch open, 18=Air flow switch open during ignition, 23=Flame loss during run, 32=Residual flame, 38=Other conditions, 42=Outlet (flow) temp sensor fault"
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "11-Error Code",
   "description": "Modulex 4: error code; low byte code, high byte device",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 46,
   "name": "08-Unit Status",
   "description": "Modulex 4: unit status",
   "units": "",
   "access": "R",
   "states": "1=Standby, 3=Fired, 5=Fault"
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "09-Ret Flow Temp",
   "description": "Modulex 4: return flow temperature (32-212)",
   "units": "°F",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/aerco/modulex-bcm-protonode",
 "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"
}
