{
 "manufacturer": "Siemens",
 "manufacturer_slug": "siemens",
 "model": "BACnet PTEC Constant Volume Controller - Application 6660 (Constant Volume Cooling Only)",
 "model_slug": "ptec-6660-constant-volume-cooling-only",
 "short_model": "PTEC Constant Volume Cooling 6660",
 "aliases": [
  "PTEC 6660",
  "Application 6660",
  "App 6660",
  "550-498PA",
  "Siemens constant volume box"
 ],
 "equipment_type": "Constant volume terminal unit controller",
 "applies_to": "Cooling-only constant volume terminal boxes on the Siemens BACnet PTEC constant volume controller 550-498PA.",
 "summary": "Application 6660 holds a constant airflow on a terminal box with a Siemens BACnet PTEC controller over BACnet MS/TP: OCC FLOW when occupied and the lower UNOCC FLOW when unoccupied. A single flow loop modulates the supply damper. There is no temperature control; the room sensor is for monitoring only.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "Newer than revision Bx40",
 "default_device_instance": null,
 "access_inferred": true,
 "notes": [
  "AI and BI objects are read-only. AO and BO objects are BACnet output objects with a priority array; the guide has no access column, so access is inferred from object type. Many AOs are calculated status values, not commands.",
  "Instances shown in braces in the guide may be unbundled at a field panel; that marking is not reproduced here.",
  "Units are given in US units (°F, cfm, ft²); the guide also lists SI factory defaults.",
  "The guide covers controllers with firmware newer than revision Bx40; older firmware has separate documentation.",
  "FAIL MODE (BO 40) sets whether the damper opens or closes if the air velocity sensor fails; the guide text calls CLOSED the default, but the point table lists OPEN.",
  "A room setpoint dial can be configured but does not affect temperature or airflow."
 ],
 "source": {
  "title": "BACnet PTEC Controller Constant Volume - Cooling Only, Application 6660, Application Note",
  "doc_number": "140-1107",
  "revision_date": "2014-10-27",
  "url": "https://sid.siemens.com/api/khub/documents/j1ToJqPFT0wJglZ9yeNbtw/content"
 },
 "integration": {
  "summary": "Address the controller on the BACnet MS/TP trunk (manually or with auto addressing), then release the box to application control. The BMS commands occupancy with OCC.UNOCC (BO 29), which picks the occupied or unoccupied airflow setpoint, and reads airflow, damper position, room temperature and the error status.",
  "minimum_points": [
   {
    "ref": "BO 29",
    "name": "OCC.UNOCC",
    "why": "OCC = occupied, UNOCC = unoccupied"
   },
   {
    "ref": "AO 32",
    "name": "OCC FLOW",
    "why": "Occupied airflow setpoint, cfm"
   },
   {
    "ref": "AO 31",
    "name": "UNOCC FLOW",
    "why": "Unoccupied airflow setpoint, cfm"
   },
   {
    "ref": "AI 4",
    "name": "ROOM TEMP",
    "why": "Space temperature (monitoring only)"
   },
   {
    "ref": "AI 35",
    "name": "AIR VOLUME",
    "why": "Measured box airflow, cfm"
   },
   {
    "ref": "AO 49",
    "name": "DMPR POS",
    "why": "Damper position, %"
   },
   {
    "ref": "AO 99",
    "name": "ERROR STATUS",
    "why": "Controller error code"
   }
  ],
  "enable": "Occupancy is OCC.UNOCC (BO 29). With a wall switch on DI 2 and WALL SWITCH (BO 18) = YES, the switch sets it; standalone with no switch the controller stays occupied; on a network the field panel or BMS commands OCC.UNOCC. UNOCC OVRD (BO 21) shows a temporary occupied override from the room unit button.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet MS/TP only. CTLR ADDRESS (AO 1) holds the MS/TP address; the factory value is 255.",
   "APPLICATION (AO 2) holds the application number; the point table lists its factory default as 6694."
  ],
  "gotchas": [
   "As shipped, the controller keeps all equipment OFF until it is released to application control (see Siemens start-up procedures).",
   "With a digital room unit (revision 26 and later), a command sent through the room unit puts the matching BACnet input Out Of Service.",
   "Loop gains, motor timing, rotation angles and setup codes are commissioning values; don't write them from the BMS routinely.",
   "UNOCC FLOW (AO 31) may be set equal to or below OCC FLOW (AO 32), never above it."
  ]
 },
 "points": [
  {
   "type": "AO",
   "instance": 1,
   "name": "CTLR ADDRESS",
   "description": "Controller MS/TP address",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 2,
   "name": "APPLICATION",
   "description": "Application number running in the controller",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "ROOM TEMP",
   "description": "Room temperature (monitoring only)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "RM STPT DIAL",
   "description": "Setpoint from the room unit dial or keypad",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "AUX TEMP AI5",
   "description": "Auxiliary temperature input on AI 5",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 18,
   "name": "WALL SWITCH",
   "description": "Wall switch connected to DI 2",
   "units": "",
   "access": "C",
   "states": "0=NO, 1=YES"
  },
  {
   "type": "BI",
   "instance": 19,
   "name": "DI OVRD SW",
   "description": "Room unit night override button",
   "units": "",
   "access": "R",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "AO",
   "instance": 20,
   "name": "OVRD TIME",
   "description": "Night override duration",
   "units": "h",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 21,
   "name": "UNOCC OVRD",
   "description": "Unoccupied override status (room unit button)",
   "units": "",
   "access": "C",
   "states": "0=OCC, 1=UNOCC"
  },
  {
   "type": "BI",
   "instance": 24,
   "name": "DI 2",
   "description": "Digital input 2",
   "units": "",
   "access": "R",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "BI",
   "instance": 25,
   "name": "DI 3",
   "description": "Digital input 3",
   "units": "",
   "access": "R",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "BO",
   "instance": 29,
   "name": "OCC.UNOCC",
   "description": "Occupied/unoccupied mode",
   "units": "",
   "access": "C",
   "states": "0=OCC, 1=UNOCC"
  },
  {
   "type": "AO",
   "instance": 31,
   "name": "UNOCC FLOW",
   "description": "Constant airflow setpoint, unoccupied",
   "units": "cfm",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 32,
   "name": "OCC FLOW",
   "description": "Constant airflow setpoint, occupied",
   "units": "cfm",
   "access": "C",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 35,
   "name": "AIR VOLUME",
   "description": "Measured airflow",
   "units": "cfm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 36,
   "name": "FLOW COEFF",
   "description": "Airflow pickup correction coefficient",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 40,
   "name": "FAIL MODE",
   "description": "Damper position if the air velocity sensor fails",
   "units": "",
   "access": "C",
   "states": "0=OPEN, 1=CLOSED"
  },
  {
   "type": "BO",
   "instance": 41,
   "name": "DO 1",
   "description": "Digital output 1",
   "units": "",
   "access": "C",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "BO",
   "instance": 42,
   "name": "DO 2",
   "description": "Digital output 2",
   "units": "",
   "access": "C",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "BO",
   "instance": 43,
   "name": "DO 3",
   "description": "Digital output 3",
   "units": "",
   "access": "C",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "BO",
   "instance": 44,
   "name": "DO 4",
   "description": "Digital output 4",
   "units": "",
   "access": "C",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "BO",
   "instance": 45,
   "name": "DO 5",
   "description": "Digital output 5",
   "units": "",
   "access": "C",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "BO",
   "instance": 46,
   "name": "DO 6",
   "description": "Digital output 6",
   "units": "",
   "access": "C",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "BO",
   "instance": 47,
   "name": "DO 7",
   "description": "Digital output 7",
   "units": "",
   "access": "C",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "AO",
   "instance": 48,
   "name": "DMPR COMD",
   "description": "Damper position command",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 49,
   "name": "DMPR POS",
   "description": "Damper position (calculated)",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 50,
   "name": "DO 8",
   "description": "Digital output 8",
   "units": "",
   "access": "C",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "AO",
   "instance": 51,
   "name": "MTR1 TIMING",
   "description": "Motor 1 full-stroke time",
   "units": "s",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 52,
   "name": "MTR2 COMD",
   "description": "Motor 2 position command",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 53,
   "name": "MTR2 POS",
   "description": "Motor 2 position (calculated)",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 55,
   "name": "MTR2 TIMING",
   "description": "Motor 2 full-stroke time",
   "units": "s",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 56,
   "name": "DPR1 ROT ANG",
   "description": "Damper 1 rotation angle",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 57,
   "name": "DPR2 ROT ANG",
   "description": "Damper 2 rotation angle",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 58,
   "name": "MTR SETUP",
   "description": "Motor enable/reverse setup (additive code)",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 59,
   "name": "DO DIR. REV",
   "description": "Digital output direction reverse (additive code)",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 71,
   "name": "FLOW P GAIN",
   "description": "Flow loop proportional gain",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 72,
   "name": "FLOW I GAIN",
   "description": "Flow loop integral gain",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 73,
   "name": "FLOW D GAIN",
   "description": "Flow loop derivative gain",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 74,
   "name": "FLOW BIAS",
   "description": "Flow loop bias",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 75,
   "name": "FLOW",
   "description": "Airflow as percent of maximum",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 78,
   "name": "CTL TEMP",
   "description": "Temperature the controller is controlling to",
   "units": "°F",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 87,
   "name": "CAL MODULE",
   "description": "Calibration module installed",
   "units": "",
   "access": "C",
   "states": "0=NO, 1=YES"
  },
  {
   "type": "AO",
   "instance": 91,
   "name": "TOTAL VOLUME",
   "description": "Total air volume",
   "units": "ft³",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 93,
   "name": "FLOW STPT",
   "description": "Airflow setpoint, percent",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 94,
   "name": "CAL AIR",
   "description": "Start air velocity sensor calibration",
   "units": "",
   "access": "C",
   "states": "0=NO, 1=YES"
  },
  {
   "type": "AO",
   "instance": 95,
   "name": "CAL SETUP",
   "description": "Calibration setup code",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 96,
   "name": "CAL TIMER",
   "description": "Hours between automatic calibrations",
   "units": "h",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 97,
   "name": "DUCT AREA",
   "description": "Inlet duct area for airflow calculation",
   "units": "ft²",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 98,
   "name": "LOOP TIME",
   "description": "Control loop interval",
   "units": "s",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 99,
   "name": "ERROR STATUS",
   "description": "Controller error status code",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 102,
   "name": "AOV 1",
   "description": "Analog output 1 (0-10 V)",
   "units": "V",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 103,
   "name": "AOV 2",
   "description": "Analog output 2 (0-10 V)",
   "units": "V",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 104,
   "name": "AOV 3",
   "description": "Analog output 3 (0-10 V)",
   "units": "V",
   "access": "C",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 105,
   "name": "AI 3",
   "description": "Spare analog input 3",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 106,
   "name": "AI 4",
   "description": "Spare analog input 4",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 107,
   "name": "RMTMP OFFSET",
   "description": "Room temperature calibration offset",
   "units": "°F",
   "access": "C",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 108,
   "name": "DI 4",
   "description": "Digital input 4",
   "units": "",
   "access": "R",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "BI",
   "instance": 109,
   "name": "DI 5",
   "description": "Digital input 5",
   "units": "",
   "access": "R",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "BI",
   "instance": 110,
   "name": "DI 6",
   "description": "Digital input 6",
   "units": "",
   "access": "R",
   "states": "0=OFF, 1=ON"
  },
  {
   "type": "AO",
   "instance": 111,
   "name": "STPT SPAN",
   "description": "Room unit setpoint adjustment span",
   "units": "°F",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 121,
   "name": "DEW POINT",
   "description": "Room dew point",
   "units": "°F",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 124,
   "name": "SENSOR SEL",
   "description": "Room unit / sensor select code (additive)",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 125,
   "name": "RM CO2",
   "description": "Room CO2",
   "units": "ppm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 126,
   "name": "RM RH",
   "description": "Room relative humidity",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 127,
   "name": "PPCL STATE",
   "description": "PPCL program loaded or empty",
   "units": "",
   "access": "C",
   "states": "0=EMPTY, 1=LOADED"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/siemens/ptec-6660-constant-volume-cooling-only",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
