BACnet错误:对象:未知对象

时间:2014-02-03 11:29:30

标签: linux bacnet

我正在使用http://bacnet.sourceforge.net/的bacnet堆栈与mitshubishi bacnet网关(型号bac-hd150)。网络设置正确,我可以做正确的bacnet和bacnet epic:

;Device   MAC (hex)            SNET  SADR (hex)           APDU
;-------- -------------------- ----- -------------------- ----
  5053    C0:A8:00:0A:BA:C0    0     00                   1024 
  4194303 C0:A8:00:BD:BA:C0    0     00                   1476 
  100     C0:A8:00:0B:BA:C0    0     00                   1024 
;
; Total Devices: 3

设备100是有问题的bacnet设备。 该设备的Bacnet史诗附有邮件。

然而,每当我尝试从这个设备读取和写入任何属性时,我总是得到:

BACnet Error: object: unknown-object

对于此设备: 对象列表:http://img36.imageshack.us/img36/7102/jv7a.png 实例编号:http://img706.imageshack.us/img706/1948/yocq.png

现在基于此,我试图读取一个属性(ON OFF STATE),如下所示: 用法:bacrp device-instance object-type object-instance property [index]

 ./bacrp 100 3 2 85

where
100 : device-instance
3: object-type ( binary input, according to [http://img36.imageshack.us/img36/7102/jv7a.png][1] )
2: object-instance ( instance number according to  
[http://img706.imageshack.us/img706/1948/yocq.png][2] )
85: property ( PROP_PRESENT_VALUE according to bacenum.h file )

但是,响应始终是:

root@FINGI:/tmp#  ./bacrp 100 3 2 8
BACnet Error: object: unknown-object

有人可以建议可能出错吗?我为对象实例尝试了不同的值(例如0到10),但结果总是相同的。

拼命试图完成这项工作!任何建议都将非常受欢迎

2 个答案:

答案 0 :(得分:2)

只需读取设备对象的对象列表,属性ID 76即可。您将获得所有有效对象标识符的列表。

此外,如果我将项目特定的实例编号规则解释正确,则所需对象“ON OFF STATE”的实例编号为01xx02,其中xx为组。我不知道您的项目中有哪些“组”。你可以为第一组尝试10102。

答案 1 :(得分:0)

答案是指“对象列表” /“对象列表”,其中的第一个数据元素/数组索引值是数组中包含的数据元素的计数,但其余的应该是对象标识符。

如果您在读取属性时遇到问题,则值得从基础知识/强制性知识开始(-除外property_list):

  • Object_Identifier BACnetObjectIdentifier-在维护它们的设备中唯一

  • Object_Type BACnetObjectType

  • Object_Name字符串-在维护它们的设备中唯一;至少1个字符长且只能打印的字符

  • x BACnetPropertyIdentifier的Property_List BACnetARRAY

就BACnet标准而言,property_list是强制性的,似乎供应商似乎不支持/实现它(-,而object_list似乎总是可用/填充),即使他们这样做,您也可能不支持/实现它。如果您通过网关设备访问目标(或底层)物理设备,则可以访问它/它可能不会渗透到服务中。