大家好,欢迎来到IT知识分享网。
前言
18个对象
BACnet 目前定义了18 个对象:
对象名称 | 应用实例 |
模拟输入 Analog Input | 传感器输入 |
模拟输出 Analog Output | 控制输出 |
模拟值入 Analog Value | 设置的阈值或其它模拟控制系统参数 |
数字输入 Binary Input | 开关输入 |
数字输出 Binary Output | 继电器输出 |
数字值 Binary Value | 数字控制系统参数 |
模拟输入 Analog Input | 传感器输入 |
时序表 Calendar | 为按事件执行程序定义的日期列表 |
命令 Command | 为完成诸如日期设置等待特点操作而向多设备的多对象写多值 |
设备 Device | 其属性表示设备支持的对象和服务以及设备商和固件版本 |
事件登记 Event Enrollment | 描述可能处于错误状态的事件(例如“输入超出范围”),或者其它设备 需要的报警。该对象可直接通知一个设备,也可用通知类(Notification Class)对象通知多对象 |
文件 File | 允许读写访问设备支持的数据文件 |
组 Group | 提供在一个读单一操作下访问多对象的多属性 |
环 Loop | 提供标准化地访问一个“控制环” |
多态输入 Multi-state Input | 表述一个多状态处理程序的状况,如冰箱的开、关和除霜循环等 |
多态输出 Multi-state Output | 表述一个多状态处理程序的期望状态,如冰箱的开始冷却时间、开始除 霜时间等 |
通知类 Notification Class | 包含一个设备列表,其中包括如果一个事件登记对象确定有一个警告或 报警报文需要发送则将要送给的那些设备 |
程序 Program | 允许设备中的一个程序开始,停止,装载,卸载,以及报告程序当前状 态等 |
时间表 Schedule | 定义一个按周期的操作时间表 |
BACnet 对象的属性
设备对象(Device)的属性
“设备对象”的“对象标识符”属性中的设备实例标号必须是在整个BACnet 互联网中唯一的,这样才能在安装系统时标识设备。
表中的前三项属性,即对象标识符
,对象名称
和对象类型
是BACnet 设备中的每个对象必须具有的属性。
“对象标识符”
是一个32 位的编码,用来标识对象的类型和其实例标号
,这两者一起可以唯一地标识对象;
“对象名称”
是一个字符串,BACnet 设备可以通过广播某个“对象名称”而建立与包含有此对象的设备的联系,这将使整个系统的设置大为简化;
“设备对象”
的属性向BACnet 网络表述了设备的全部信息。例如,“对象列表”属性提供了设备中包含的每个对象的列表。
输入输出值对象类型及其属性
在代码中的表达
现在我们看看这些对象和属性在代码中是如何表达(或描述)的。在Bacnet.Room.Simulator
中我们可以找到一个名为DeviceStorage.xml
的文件,里面就记录一个BACnet设备包含的一些对象和对象的属性。具体代码如下:
<?xml version="1.0"?> <DeviceStorage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Objects> <Object Type="OBJECT_DEVICE" Instance="64237"> <Properties> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_DEVICE:64237</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>RoomController.Simulator</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>8</Value> </Property> <Property Id="PROP_SYSTEM_STATUS" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_VENDOR_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>F. Chaxel, Thanks to Morten Kvistgaard, MIT licence, 2015</Value> </Property> <Property Id="PROP_VENDOR_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>61440</Value> </Property> <Property Id="PROP_MODEL_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Room_FC_2014</Value> </Property> <Property Id="PROP_FIRMWARE_REVISION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>0.1.0</Value> </Property> <Property Id="PROP_APPLICATION_SOFTWARE_VERSION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>0.1.0</Value> </Property> <Property Id="PROP_PROTOCOL_VERSION" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>1</Value> </Property> <Property Id="PROP_PROTOCOL_REVISION" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>14</Value> </Property> <Property Id="PROP_PROTOCOL_SERVICES_SUPPORTED" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0</Value> </Property> <Property Id="PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000000000000000000011</Value> </Property> <Property Id="PROP_OBJECT_LIST" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> </Property> <Property Id="PROP_MAX_APDU_LENGTH_ACCEPTED" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>1476</Value> </Property> <Property Id="PROP_SEGMENTATION_SUPPORTED" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>3</Value> </Property> <Property Id="PROP_APDU_TIMEOUT" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>3000</Value> </Property> <Property Id="PROP_NUMBER_OF_APDU_RETRIES" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>3</Value> </Property> <Property Id="PROP_DEVICE_ADDRESS_BINDING" Tag="BACNET_APPLICATION_TAG_NULL" /> <Property Id="PROP_DATABASE_REVISION" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>0</Value> </Property> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Free RoomController Simulator, F. Chaxel 2015</Value> </Property> <Property Id="PROP_LOCATION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>FR</Value> </Property> </Properties> </Object> <Object Type="OBJECT_ANALOG_INPUT" Instance="0"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Temperature Interieure</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_ANALOG_INPUT:0</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Temperature.Interieure</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_REAL"> <Value>0</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> <Property Id="PROP_UNITS" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>62</Value> </Property> </Properties> </Object> <Object Type="OBJECT_ANALOG_INPUT" Instance="1"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Temperature eau glicolee</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_ANALOG_INPUT:1</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Temperature.Eau</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_REAL"> <Value>0</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> <Property Id="PROP_UNITS" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>62</Value> </Property> </Properties> </Object> <Object Type="OBJECT_ANALOG_INPUT" Instance="2"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Temperature exterieure</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_ANALOG_INPUT:2</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Temperature.Exterieure</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_REAL"> <Value>12</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> <Property Id="PROP_UNITS" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>62</Value> </Property> </Properties> </Object> <Object Type="OBJECT_ANALOG_VALUE" Instance="0"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Consigne Effective</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_ANALOG_VALUE:0</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Consigne.Effective</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>2</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_REAL"> <Value>21</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> <Property Id="PROP_UNITS" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>62</Value> </Property> </Properties> </Object> <Object Type="OBJECT_ANALOG_VALUE" Instance="1"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Consigne 1</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_ANALOG_VALUE:1</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Consigne.1</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>2</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_REAL"> <Value>21</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> <Property Id="PROP_UNITS" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>62</Value> </Property> </Properties> </Object> <Object Type="OBJECT_ANALOG_VALUE" Instance="2"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Consigne 2</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_ANALOG_VALUE:2</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Consigne.2</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>2</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_REAL"> <Value>19</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> <Property Id="PROP_UNITS" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>62</Value> </Property> </Properties> </Object> <Object Type="OBJECT_ANALOG_VALUE" Instance="3"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Consigne 3</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_ANALOG_VALUE:3</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Consigne.3</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>2</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_REAL"> <Value>17</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> <Property Id="PROP_UNITS" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>62</Value> </Property> </Properties> </Object> <Object Type="OBJECT_CHARACTERSTRING_VALUE" Instance="1"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Textes Consignes Concatenés CSV</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_CHARACTERSTRING_VALUE:1</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>TextesConsignesCSV</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>40</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Mode Confort;Mode Eco+;Mode Absence</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> </Properties> </Object> <Object Type="OBJECT_BINARY_VALUE" Instance="0"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Fonctionnement du chauffage</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_BINARY_VALUE:0</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Fonctionnement.Chauffage</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>5</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_POLARITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_INACTIVE_TEXT" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Off</Value> </Property> <Property Id="PROP_ACTIVE_TEXT" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>On</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> </Properties> </Object> <Object Type="OBJECT_BINARY_VALUE" Instance="1"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Fonctionnement climatisation</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_BINARY_VALUE:1</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Fonctionnement.Clim</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>5</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>0</Value> </Property> <Property Id="PROP_POLARITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_INACTIVE_TEXT" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Off</Value> </Property> <Property Id="PROP_ACTIVE_TEXT" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>On</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> </Properties> </Object> <Object Type="OBJECT_MULTI_STATE_VALUE" Instance="0"> <Properties> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_MULTI_STATE_VALUE:0</Value> </Property> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Mode de fonctionnement</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Mode.Fonctionnement</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>19</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>2</Value> </Property> <Property Id="PROP_PRIORITY_ARRAY" Tag="BACNET_APPLICATION_TAG_NULL"> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> <Value></Value> </Property> <Property Id="PROP_RELINQUISH_DEFAULT" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>2</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_NUMBER_OF_STATES" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>3</Value> </Property> <Property Id="PROP_STATE_TEXT" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Arret</Value> <Value>Chauffage</Value> <Value>Climatisation</Value> </Property> </Properties> </Object> <Object Type="OBJECT_MULTI_STATE_VALUE" Instance="1"> <Properties> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_MULTI_STATE_VALUE:1</Value> </Property> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Niveau de Soufflage</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Niveau.soufflage</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>19</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>1</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_NUMBER_OF_STATES" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>4</Value> </Property> <Property Id="PROP_STATE_TEXT" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Arret</Value> <Value>Niveau 1</Value> <Value>Niveau 2</Value> <Value>Maxi</Value> </Property> </Properties> </Object> </Objects> </DeviceStorage>
下面我们拿其中一两个Object分析一下对象的属性。
Device对象的属性
<Object Type="OBJECT_DEVICE" Instance="64237"> <Properties> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_DEVICE:64237</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>RoomController.Simulator</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>8</Value> </Property> <Property Id="PROP_SYSTEM_STATUS" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_VENDOR_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>F. Chaxel, Thanks to Morten Kvistgaard, MIT licence, 2015</Value> </Property> <Property Id="PROP_VENDOR_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>61440</Value> </Property> <Property Id="PROP_MODEL_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Room_FC_2014</Value> </Property> <Property Id="PROP_FIRMWARE_REVISION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>0.1.0</Value> </Property> <Property Id="PROP_APPLICATION_SOFTWARE_VERSION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>0.1.0</Value> </Property> <Property Id="PROP_PROTOCOL_VERSION" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>1</Value> </Property> <Property Id="PROP_PROTOCOL_REVISION" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>14</Value> </Property> <Property Id="PROP_PROTOCOL_SERVICES_SUPPORTED" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0</Value> </Property> <Property Id="PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000000000000000000011</Value> </Property> <Property Id="PROP_OBJECT_LIST" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> </Property> <Property Id="PROP_MAX_APDU_LENGTH_ACCEPTED" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>1476</Value> </Property> <Property Id="PROP_SEGMENTATION_SUPPORTED" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>3</Value> </Property> <Property Id="PROP_APDU_TIMEOUT" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>3000</Value> </Property> <Property Id="PROP_NUMBER_OF_APDU_RETRIES" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>3</Value> </Property> <Property Id="PROP_DEVICE_ADDRESS_BINDING" Tag="BACNET_APPLICATION_TAG_NULL" /> <Property Id="PROP_DATABASE_REVISION" Tag="BACNET_APPLICATION_TAG_UNSIGNED_INT"> <Value>0</Value> </Property> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Free RoomController Simulator, F. Chaxel 2015</Value> </Property> <Property Id="PROP_LOCATION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>FR</Value> </Property> </Properties> </Object>
<Object Type="OBJECT_DEVICE" Instance="64237">
这一句表明了这是一个设备对象,对象标识符的实例标号是 64237.
设备对象之间的Property就是该对象的属性。下表列举了设备对象拥有的属性,以及属性类型和相对应的属性值。
属性 | 数据类型 | 值 |
PROP_OBJECT_IDENTIFIER (标识符) | BACNET_APPLICATION_TAG_OBJECT_ID (对象ID) | OBJECT_DEVICE:64237 |
PROP_OBJECT_NAME 对象名称 | BACNET_APPLICATION_TAG_CHARACTER_STRING 字符串类型 | RoomController.Simulator |
PROP_OBJECT_TYPE 对象类型 | BACNET_APPLICATION_TAG_ENUMERATED 枚举 | 8 (代表 object_device) |
PROP_SYSTEM_STATUS 系统状态 | BACNET_APPLICATION_TAG_ENUMERATED 枚举 | 0 (Normal) |
PROP_VENDOR_NAME 设备商名 | BACNET_APPLICATION_TAG_CHARACTER_STRING 字符串 | F. Chaxel, Thanks to Morten Kvistgaard, MIT licence, 2015 |
PROP_VENDOR_IDENTIFIER 设备商标识符 | BACNET_APPLICATION_TAG_UNSIGNED_INT 无符号整数 | 61440 |
PROP_MODEL_NAME 型号名称 | BACNET_APPLICATION_TAG_CHARACTER_STRING 字符串 | Room_FC_2014 |
PROP_FIRMWARE_REVISION 固件版本 | BACNET_APPLICATION_TAG_CHARACTER_STRING 字符串 | 0.1.0 |
PROP_APPLICATION_SOFTWARE_VERSION 应用软件版本 | BACNET_APPLICATION_TAG_CHARACTER_STRING 字符串 | 0.1.0 |
PROP_PROTOCOL_VERSION 协议版本 | BACNET_APPLICATION_TAG_UNSIGNED_INT 无符号整数 | 1 |
PROP_PROTOCOL_REVISION 协议修订版本 | BACNET_APPLICATION_TAG_UNSIGNED_INT 无符号整数 | 14 |
属性太多了,这里就不一一列举完全了,一些枚举类型可以在源码BacnetBase.cs
中看到具体代表的意思.这是Yabe中扫描“设备对象”获得的属性,和xml中写的是一样的,我们后续的读写操作都是基于此。
模拟输入对象的属性
<Object Type="OBJECT_ANALOG_INPUT" Instance="0"> <Properties> <Property Id="PROP_DESCRIPTION" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Temperature Interieure</Value> </Property> <Property Id="PROP_EVENT_STATE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OBJECT_IDENTIFIER" Tag="BACNET_APPLICATION_TAG_OBJECT_ID"> <Value>OBJECT_ANALOG_INPUT:0</Value> </Property> <Property Id="PROP_OBJECT_NAME" Tag="BACNET_APPLICATION_TAG_CHARACTER_STRING"> <Value>Temperature.Interieure</Value> </Property> <Property Id="PROP_OBJECT_TYPE" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_OUT_OF_SERVICE" Tag="BACNET_APPLICATION_TAG_BOOLEAN"> <Value>False</Value> </Property> <Property Id="PROP_PRESENT_VALUE" Tag="BACNET_APPLICATION_TAG_REAL"> <Value>0</Value> </Property> <Property Id="PROP_RELIABILITY" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>0</Value> </Property> <Property Id="PROP_STATUS_FLAGS" Tag="BACNET_APPLICATION_TAG_BIT_STRING"> <Value>0000</Value> </Property> <Property Id="PROP_UNITS" Tag="BACNET_APPLICATION_TAG_ENUMERATED"> <Value>62</Value> </Property> </Properties> </Object>
<Object Type="OBJECT_ANALOG_INPUT" Instance="0">
这一句表明了这是一个模拟输入对象,对象实例号是0. 由对象类型和实例号,可以确定一个对象。
下表列举了模拟输入对象拥有的属性,以及属性类型和相对应的属性值。
属性 | 数据类型 | 值 |
PROP_DESCRIPTION(描述) | BACNET_APPLICATION_TAG_CHARACTER_STRING (字符串) | Temperature Interieure |
PROP_EVENT_STATE 事件状态 | BACNET_APPLICATION_TAG_ENUMERATED 枚举 | 0 (normal) |
PROP_OBJECT_IDENTIFIER 对象标识符 | BACNET_APPLICATION_TAG_OBJECT_ID 对象ID | OBJECT_ANALOG_INPUT:0 |
PROP_OBJECT_NAME 对象名称 | BACNET_APPLICATION_TAG_CHARACTER_STRING 字符串 | Temperature.Interieur |
PROP_OBJECT_TYPE 对象类型 | BACNET_APPLICATION_TAG_ENUMERATED 枚举 | 0 |
PROP_OUT_OF_SERVICE 脱离服务 | BACNET_APPLICATION_TAG_BOOLEAN 布尔 | False |
PROP_PRESENT_VALUE 当前值 | BACNET_APPLICATION_TAG_REAL 浮点数 | 0 |
PROP_RELIABILITY 可靠性 | BACNET_APPLICATION_TAG_ENUMERATED 枚举 | 0 (RELIABILITY_NO_FAULT_DETECTED) |
PROP_STATUS_FLAGS 状态标志 | BACNET_APPLICATION_TAG_BIT_STRING 位字符串 | 0000 |
PROP_UNITS 单位 | BACNET_APPLICATION_TAG_ENUMERATED 枚举 | 62 (UNITS_DEGREES_CELSIUS ℃) |
小结
1 了解BACnet设备定义的18个对象,每个对象都有其特定的一组属性。
2 BACnet要求每个BACnet设备都要有一个“设备对象”,“设备对象”包含次设备和其功能信息
3 “对象标识符”,“对象名称”和“对象类型”是BACnet 设备中的每个对象必须具有的属性。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132011.html