{
 "manufacturer": "Bell & Gossett",
 "manufacturer_slug": "bell-gossett",
 "model": "Technologic Constant Speed Pump Controller",
 "model_slug": "technologic-constant-speed-controller",
 "aliases": [
  "Technologic CS",
  "Technologic constant speed",
  "B&G Technologic",
  "ITT Technologic"
 ],
 "equipment_type": "Constant speed pump system controller",
 "applies_to": "Bell & Gossett Technologic constant speed pumping systems for up to six pumps, with the BACnet MS/TP interface.",
 "summary": "The Technologic Constant Speed Pump Controller runs a multi-pump constant speed system and has a BACnet MS/TP interface on RS-485 (B-ASC profile). Its PICS lists 60 objects: pump state codes and process readings as analog inputs, six process commands as analog outputs, failure flags as binary inputs, and start/stop, reset and alternation as binary outputs. Which process readings and commands are used depends on how the controller is set up.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": true,
 "notes": [
  "From the BACnet PICS; it has no read/write column, so AO and BO objects are marked writable and inputs read-only.",
  "Object instances start at 1 for every object type.",
  "Analog input ranges run from 0 to the span set in the Technologic User Setup Menu.",
  "The PICS prints PSI as the unit of every analog output, including the flow and temperature commands, and lists Amps and Horsepower without units; check units on site.",
  "Pump 1-6 state inputs are codes: 0 Disabled, 1 Run, 2 Ready, 3 Failed."
 ],
 "integration": {
  "summary": "Write BO 1 to start or stop the system and, if the BMS supplies the setpoint, the AO command that matches the controlled variable. Read BI 1 and BI 2 for run and auto/manual status, the pump state codes and the process readings, and use BI 3 General Alarm with BO 2 to see and reset failures.",
  "minimum_points": [
   {
    "ref": "BO 1",
    "name": "System Start/Stop",
    "why": "System start/stop command (1 = start)"
   },
   {
    "ref": "AO 2",
    "name": "Sys/Sup Press Cmd",
    "why": "System/supply pressure command, 0-65535"
   },
   {
    "ref": "BO 2",
    "name": "System Reset",
    "why": "Reset/silence on a 0-to-1 change"
   },
   {
    "ref": "BI 1",
    "name": "Sys Strt/Stp Stat",
    "why": "System start/stop status (1 = start)"
   },
   {
    "ref": "BI 2",
    "name": "Sys Auto/Man Stat",
    "why": "Auto/manual status (1 = Auto)"
   },
   {
    "ref": "AI 1",
    "name": "Pump1 State",
    "why": "Pump 1 state: 0 disabled, 1 run, 2 ready, 3 failed"
   },
   {
    "ref": "AI 8",
    "name": "Sys/Sup Press",
    "why": "System/supply pressure, PSI"
   },
   {
    "ref": "BI 3",
    "name": "General Alarm",
    "why": "Any active failure"
   },
   {
    "ref": "BI 4",
    "name": "Reset Required",
    "why": "Failure needs a reset"
   }
  ],
  "enable": "BO 1 System Start/Stop starts (1) and stops (0) the system; BI 1 and BI 2 show start/stop and auto/manual status. The PICS does not say what controller setting is needed for BACnet commands to take effect.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet MS/TP master on EIA-485; baud rates 9600, 19200 or 38400.",
   "The PICS does not give a default MAC address or device instance.",
   "Only ReadProperty and WriteProperty are supported (no ReadPropertyMultiple), and segmentation is not supported."
  ],
  "gotchas": [
   "BO 2 System Reset and BO 3 Pump Alternation act on a positive edge (0 to 1), so return them to 0 before the next command.",
   "The analog output commands are listed as 0 to 65535 with PSI units for all six; confirm the scaling against the controller setup before writing.",
   "BI 4 Reset Required reads 1 when a reset is needed; BO 2 System Reset clears it."
  ]
 },
 "source": {
  "title": "BACnet Protocol Implementation Conformance Statement - Technologic Constant Speed Pump Controller",
  "doc_number": "Technologic Constant Speed Controller MSTP PIC Ver 2.2",
  "revision_date": "September 20, 2011",
  "url": "https://www.bacnetinternational.net/catalog/manu/xylem/Technologic%20Constant%20Speed%20Controller%20BACnet%20MSTP%20Pic.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Pump1 State",
   "description": "Pump 1 state code",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Run, 2=Ready, 3=Failed"
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Pump2 State",
   "description": "Pump 2 state code",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Run, 2=Ready, 3=Failed"
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Pump3 State",
   "description": "Pump 3 state code",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Run, 2=Ready, 3=Failed"
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Pump4 State",
   "description": "Pump 4 state code",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Run, 2=Ready, 3=Failed"
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Pump5 State",
   "description": "Pump 5 state code",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Run, 2=Ready, 3=Failed"
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Pump6 State",
   "description": "Pump 6 state code",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Run, 2=Ready, 3=Failed"
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Suc/Ret Press",
   "description": "Suction / return pressure",
   "units": "PSI",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Sys/Sup Press",
   "description": "System / supply pressure",
   "units": "PSI",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Flow",
   "description": "Flow",
   "units": "GPM",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Temperature",
   "description": "Process temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "Pressure",
   "description": "Process pressure",
   "units": "PSI",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "Diff Temp",
   "description": "Differential temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "Suc/Ret Temp",
   "description": "Suction / return temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "Sys/Sup Temp",
   "description": "System / supply temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "Amps",
   "description": "Motor current, amps",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "Horsepower",
   "description": "Motor horsepower",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 1,
   "name": "Suc/Ret Press Cmd",
   "description": "Suction / return pressure command, 0-65535",
   "units": "PSI",
   "access": "W",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 2,
   "name": "Sys/Sup Press Cmd",
   "description": "System / supply pressure command, 0-65535",
   "units": "PSI",
   "access": "W",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 3,
   "name": "Flow Command",
   "description": "Flow command, 0-65535",
   "units": "PSI",
   "access": "W",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 4,
   "name": "Temp Command",
   "description": "Temperature command, 0-65535",
   "units": "PSI",
   "access": "W",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 5,
   "name": "Pressure Command",
   "description": "Pressure command, 0-65535",
   "units": "PSI",
   "access": "W",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 6,
   "name": "Diff Temp Command",
   "description": "Differential temperature command, 0-65535",
   "units": "PSI",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "Sys Strt/Stp Stat",
   "description": "System start/stop status",
   "units": "",
   "access": "R",
   "states": "0=Stop, 1=Start"
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "Sys Auto/Man Stat",
   "description": "System auto/manual status",
   "units": "",
   "access": "R",
   "states": "0=Manual, 1=Auto"
  },
  {
   "type": "BI",
   "instance": 3,
   "name": "General Alarm",
   "description": "Any active failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "Reset Required",
   "description": "A reset is needed to clear a failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Reset is Required"
  },
  {
   "type": "BI",
   "instance": 5,
   "name": "AI 1 Fail",
   "description": "Analog input 1 failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 6,
   "name": "AI 2 Fail",
   "description": "Analog input 2 failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 7,
   "name": "AI 3 Fail",
   "description": "Analog input 3 failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 8,
   "name": "AI 4 Fail",
   "description": "Analog input 4 failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 9,
   "name": "RTD 1 Fail",
   "description": "RTD input 1 failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 10,
   "name": "RTD 2 Fail",
   "description": "RTD input 2 failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 11,
   "name": "Battery Fail",
   "description": "Controller battery failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 12,
   "name": "Low Suction AI",
   "description": "Low suction alarm from the analog input",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 13,
   "name": "Low Suction Sw",
   "description": "Low suction alarm from the switch",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 14,
   "name": "High Suction",
   "description": "High suction alarm",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 15,
   "name": "Low System",
   "description": "Low system alarm",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 16,
   "name": "High System",
   "description": "High system alarm",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 17,
   "name": "NFSD DT",
   "description": "No-flow shutdown (NFSD DT)",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 18,
   "name": "NFSD FS",
   "description": "No-flow shutdown (NFSD FS)",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 19,
   "name": "Low Level",
   "description": "Low level alarm",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 20,
   "name": "High Temp",
   "description": "High temperature alarm",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 21,
   "name": "Pump1 DP Fail",
   "description": "Pump 1 differential pressure failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 22,
   "name": "Pump2 DP Fail",
   "description": "Pump 2 differential pressure failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 23,
   "name": "Pump3 DP Fail",
   "description": "Pump 3 differential pressure failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 24,
   "name": "Pump4 DP Fail",
   "description": "Pump 4 differential pressure failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 25,
   "name": "Pump5 DP Fail",
   "description": "Pump 5 differential pressure failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 26,
   "name": "Pump6 DP Fail",
   "description": "Pump 6 differential pressure failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 27,
   "name": "Pump1 OL Fail",
   "description": "Pump 1 overload failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 28,
   "name": "Pump2 OL Fail",
   "description": "Pump 2 overload failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 29,
   "name": "Pump3 OL Fail",
   "description": "Pump 3 overload failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 30,
   "name": "Pump4 OL Fail",
   "description": "Pump 4 overload failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 31,
   "name": "Pump5 OL Fail",
   "description": "Pump 5 overload failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 32,
   "name": "Pump6 OL Fail",
   "description": "Pump 6 overload failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 33,
   "name": "CAN Fail",
   "description": "CAN bus failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 34,
   "name": "Voltage Tol",
   "description": "Supply voltage out of tolerance",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BI",
   "instance": 35,
   "name": "Voltage Fail",
   "description": "Supply voltage failure",
   "units": "",
   "access": "R",
   "states": "0=O.K., 1=Failure"
  },
  {
   "type": "BO",
   "instance": 1,
   "name": "System Start/Stop",
   "description": "System start/stop command",
   "units": "",
   "access": "W",
   "states": "0=Stop, 1=Start"
  },
  {
   "type": "BO",
   "instance": 2,
   "name": "System Reset",
   "description": "Reset / silence on a positive edge",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 3,
   "name": "Pump Alternation",
   "description": "Alternate the lead pump on a positive edge",
   "units": "",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/bell-gossett/technologic-constant-speed-controller",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
