1

我正在使用来自http://bacnet.sourceforge.net/的 bacnet 堆栈和 mitshubishi bacnet 网关(型号 bac-hd150)。网络设置正确,我可以正确执行 bacnet who is 和 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 ),但结果总是相同的。

拼命尝试完成这项工作!任何建议将不胜感激

4

2 回答 2

2

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

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

于 2014-02-04T07:23:37.137 回答
0

答案是指“OBJECT-LIST”/'OBJECT_LIST',其中的第一个数据元素/数组索引值是数组中包含的数据元素的计数,但其余的应该是对象-身份标识。

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

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

  • Object_Type BACnetObjectType

  • Object_Name CharacterString - 在维护它们的设备中是唯一的;至少 1 个字符长度和仅可打印字符

  • x Property_List BACnetARRAY of BACnetPropertyIdentifier

尽管 BACnet 标准强制要求 property_list,但供应商似乎不支持/实施它(而 object_list 似乎总是可用/填充),即使他们这样做,您也可能无法访问它/如果您通过网关设备访问目标(/底层)物理设备,它可能不会渗透到服务中。

于 2019-02-09T00:56:18.070 回答