Things need to know

BACnet 支持七种局域网类型,通过以下方式进行通信:
IP(IPv4 and IPv6);
[Ethernet](https://www.elecfans.com/tags/ethernet/)(ISO 8802-3);
Master Slave/Token Passing MS/TP([RS](https://www.elecfans.com/tags/rs/)485);
Point-to-Point (PTP) (RS 232);
[ZigBee](https://www.elecfans.com/tags/zigbee/);
LonTalk;
ARCNET;
BACnet Broadcast Management Device (BBMD),让两个不同[网段](https://so.csdn.net/so/search?q=网段&spm=1001.2101.3001.7020)的设备可以同时在一个系统中访问的操作
目前使用的两种最普遍的局域网类型是 BACnet/IP 和 BACnet MS/TP。BACnet/IP 允许跨多个子网、多区控制系统进行通信,利用光纤和千兆以太网的优点,并为设备分配 IP 地址。
但是,目前大多数 BACnet 网络都采用了使用RS-485双绞线的 MS/TP。在某些情况下,您可能混合使用 MS/TP 和 IP 网络,或者您可能希望在服务器上安装一个工作站,而不必将 RS-485接口集成到服务器中。
在这些情况下,我们将使用 BACnet 路由器将 BACnet MS/TP 和 BACnet/IP 网络连接在一起。在具有 IP 子网的多个建筑物或多个子网的情况下,您将使用具有称为“BBMD”的特殊功能的 BACnet 路由器。BBMD 代表"BACnet Broadcast Management Device"广播管理设备,是一种将 BACnet 广播消息以定向单播消息的形式从一个 IP 子网隧道到另一个 IP 子网的方法。因为 IP 路由器会阻塞广播消息,所以需要 BBMD,而在 BACnet 中,广播消息是设备之间发现和通信的必要条件
BACnet 规范包含单元、服务、网络连接;BACnet 现有 type 60 种,常用 25 种,包含物理输入、物理输出、软件程序。模拟信号包括物体识别码、物体名、物体类型、现有值、状态标识、不在服务状态、单位。
BACnet 服务包括实例权限服务、报警与变更服务、文件读取服务、远程文件管理服务、虚拟终端服务、确认服务、寻址服务、检索服务。
RS485 接口最高电流 32mA,标准模式支持 32 个设备,BACnet transceivers 最多可支持 256 个设备,两端短接 120 欧姆电阻以结束使用,所有设备须波段一致,标准接线模式 Daisy Chain 俗称手拉手,beldon9841,22/24 awg
BACNET - WHAT IS A BACNET PRIORITY ARRAY?
The BACnet Priority Array is a specific property type described by the standard as one of the command prioritization mechanisms.
The developer should be aware of the manner in which this property type functions concerning priorities within building control systems.
The Priority Array is further defined by the standard as a read-only property that consists of commands that categorized by priority levels of decreasing order. NULLs may also exist in this property type as well. The highest priority will reside with the lowest array index and a non-NULL value will represent the active command.
Prioritized commands are essentially those commands that are specific towards commandable properties. The following is a parameter example from the BACnet standard:
Property Identifier: Commandable_Property Property Value: Desired Value Priority: Priority The following table from the BACnet standard will examine the common command priorities of the priority array:
| Priority Level | Application |
|---|---|
| 1 | Manual-Life Safety |
| 2 | Automatic-Life Safety |
| 3 | Available |
| 4 | Available |
| 5 | Critical Equipment Control |
| 6 | Minimum On/Off |
| 7 | Available |
| 8 | Manual Operator |
| 9 | Available |
| 10 | Available |
| 11 | Available |
| 12 | Available |
| 13 | Available |
| 14 | Available |
| 15 | Available |
| 16 | Available |
Object ID numbers and Parameter Numbers
If you’re using Wireshark or a low-level BACnet client, you’ll need a reference like this to associate parameter and object type names with their numerical values.
If you’re troubleshooting a BACnet problem with low-level tools like Wireshark or a command-line BACnet tool, you might have to know what the object IDs and parameter numbers are. I can never remember anything other than presentValue (85!), so here’s a reference.
Object IDs
| Object | Number |
|---|---|
| Analog Input | 0 |
| Analog Output | 1 |
| Analog Value | 2 |
| Binary Input | 3 |
| Binary Output | 4 |
| Binary Value | 5 |
| Calendar | 6 |
| Command | 7 |
| Device | 8 |
| Event Enrollment | 9 |
| File | 10 |
| Group | 11 |
| Loop | 12 |
| Multistate Input | 13 |
| Multistate Output | 14 |
| Notification Class | 15 |
| Program | 16 |
| Schedule | 17 |
Property IDs
| PropertyName | Number |
|---|---|
| ackedTransitions | 0 |
| ackRequired | 1 |
| action | 2 |
| actionText | 3 |
| activeText | 4 |
| activeVtSessions | 5 |
| alarmValue | 6 |
| alarmValues | 7 |
| all | 8 |
| allWritesSuccessful | 9 |
| apduSegmentTimeout | 10 |
| apduTimeout | 11 |
| applicationSoftwareVersion | 12 |
| archive | 13 |
| bias | 14 |
| changeOfStateCount | 15 |
| changeOfStateTime | 16 |
| notificationClass | 17 |
| none | 18 |
| controlledVariableReference | 19 |
| controlledVariableUnits | 20 |
| controlledVariableValue | 21 |
| covIncrement | 22 |
| datelist | 23 |
| daylightSavingsStatus | 24 |
| deadband | 25 |
| derivativeConstant | 26 |
| derivativeConstantUnits | 27 |
| description | 28 |
| descriptionOfHalt | 29 |
| deviceAddressBinding | 30 |
| deviceType | 31 |
| effectivePeriod | 32 |
| elapsedActiveTime | 33 |
| errorLimit | 34 |
| eventEnable | 35 |
| eventState | 36 |
| eventType | 37 |
| exceptionSchedule | 38 |
| faultValues | 39 |
| feedbackValue | 40 |
| fileAccessMethod | 41 |
| fileSize | 42 |
| fileType | 43 |
| firmwareRevision | 44 |
| highLimit | 45 |
| inactiveText | 46 |
| inProcess | 47 |
| instanceOf | 48 |
| integralConstant | 49 |
| integralConstantUnits | 50 |
| issueConfirmedNotifications | 51 |
| limitEnable | 52 |
| listOfGroupMembers | 53 |
| listOfObjectPropertyReferences | 54 |
| listOfSessionKeys | 55 |
| localDate | 56 |
| localTime | 57 |
| location | 58 |
| lowLimit | 59 |
| manipulatedVariableReference | 60 |
| maximumOutput | 61 |
| maxApduLengthAccepted | 62 |
| maxInfoFrames | 63 |
| maxMaster | 64 |
| maxPresValue | 65 |
| minimumOffTime | 66 |
| minimumOnTime | 67 |
| minimumOutput | 68 |
| minPresValue | 69 |
| modelName | 70 |
| modificationDate | 71 |
| notifyType | 72 |
| numberOfAPDURetries | 73 |
| numberOfStates | 74 |
| objectIdentifier | 75 |
| objectList | 76 |
| objectName | 77 |
| objectPropertyReference | 78 |
| objectType | 79 |
| optional | 80 |
| outOfService | 81 |
| outputUnits | 82 |
| eventParameters | 83 |
| polarity | 84 |
| presentValue | 85 |
| priority | 86 |
| priorityArray | 87 |
| priorityForWriting | 88 |
| processIdentifier | 89 |
| programChange | 90 |
| programLocation | 91 |
| programState | 92 |
| proportionalConstant | 93 |
| proportionalConstantUnits | 94 |
| protocolConformanceClass | 95 |
| protocolObjectTypesSupported | 96 |
| protocolServicesSupported | 97 |
| protocolVersion | 98 |
| readOnly | 99 |
| reasonForHalt | 100 |
| recipient | 101 |
| recipientList | 102 |
| reliability | 103 |
| relinquishDefault | 104 |
| required | 105 |
| resolution | 106 |
| segmentationSupported | 107 |
| setpoint | 108 |
| setpointReference | 109 |
| stateText | 110 |
| statusFlags | 111 |
| systemStatus | 112 |
| timeDelay | 113 |
| timeOfActiveTimeReset | 114 |
| timeOfStateCountReset | 115 |
| timeSynchronizationRecipients | 116 |
| units | 117 |
| updateInterval | 118 |
| utcOffset | 119 |
| vendorIdentifier | 120 |
| vendorName | 121 |
| vtClassesSupported | 122 |
| weeklySchedule | 123 |