首页 > 解决方案 > 如何创建虚拟 bacnet 设备和实现 python 库

问题描述

我对 bacnet 协议非常陌生。我在 python 中工作,所以我需要关于名为 BAC0 的 python 库的帮助。我已经阅读了互联网上的 BAC0 文档并尝试了他们的示例,但我无法获得正确的输出。请帮助我提供一些示例,例如如何创建虚拟 bacnet 设备以及如何使用 python 编程对其执行读写操作。提前致谢。

我尝试了 BAC0 文档中提到的示例

my_obj_list = [('file', 1),
             ('analogInput', 2),
             ('analogInput', 3),
             ('analogInput', 5),
             ('analogInput', 4),
             ('analogInput', 0),
             ('analogInput', 1)]

bacnet = BAC0.connect(ip='192.168.42.226/24')
mycontroller = BAC0.device('2:5',5,bacnet, object_list = my_obj_list)
print(mycontroller)
mycontroller.points
mycontroller['point_name']
2019-07-22 15:49:31,169 - WARNING | Offline: provide database name to load stored data.
2019-07-22 15:49:31,169 - WARNING | Offline: provide database name to load stored data.
2019-07-22 15:49:31,169 - WARNING | Offline: provide database name to load stored data.
2019-07-22 15:49:31,169 - WARNING | Offline: provide database name to load stored data.
2019-07-22 15:49:31,169 - WARNING | Offline: provide database name to load stored data.

also im getting an error :
--- Logging error ---
Traceback (most recent call last):
  File "C:\Users\DELL\Anaconda3\lib\site-packages\BAC0\core\devices\Device.py", line 688, in connect
    self.properties.address, self.properties.device_id
  File "C:\Users\DELL\Anaconda3\lib\site-packages\BAC0\core\io\Read.py", line 184, in read
    "APDU Abort Reason : {}".format(reason)
BAC0.core.io.IOExceptions.NoResponseFromController: APDU Abort Reason : noResponse.```

标签: bacnet

解决方案


mycontroller = BAC0.device('2:5',5,bacnet, object_list = my_obj_list)

您的网络上必须有一个带有这些参数的 BACnet 控制器才能读取它们。您正在运行的代码不是创建虚拟 BACnet 网络。它用于连接到真实设备。

如果你想创建一个虚拟设备,你可以在这里获得灵感: https ://github.com/ChristianTremblay/BAC0/blob/master/tests/conftest.py

与在测试套件中一样,我创建了可以相互通信的虚拟设备。


推荐阅读