首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python3获取BACnet值

使用Python3获取BACnet值
EN

Stack Overflow用户
提问于 2018-10-25 03:54:21
回答 1查看 1.1K关注 0票数 2

我想实现一个简单的循环来一起提取我的BACnet值,而不是逐个询问每个值,但得到一个错误。或者,有没有更好的方法来一起获取所有的值?有人能帮帮忙吗?谢谢!下面是我的代码(这是可行的):

代码语言:javascript
复制
import BAC0
bacnet = BAC0.connect()

a = bacnet.read('10.1.1.9 analogValue 1 presentValue')
print(a)

但这是行不通的:

代码语言:javascript
复制
import BAC0
bacnet = BAC0.connect()

i = 0
for i = i+1:
    a = bacnet.read('10.1.1.9 analogValue % i presentValue')
    print(a)
end

它会给出错误:

代码语言:javascript
复制
ValueError: invalid literal for int() with base 10: '%'

好的,我找到了解决方案:

代码语言:javascript
复制
for i in range(1,5):
a = bacnet.read('10.1.1.9 analogValue {} presentValue'.format(i))
print(a)
EN

回答 1

Stack Overflow用户

发布于 2019-02-05 10:23:29

这将仅检索analogValues...如果这是你想要的。但更全球化的方法是使用BAC0.device方法。

您将需要设备的BACnet ID来定义它:

代码语言:javascript
复制
import BAC0
bacnet = BAC0.lite()
deviceID = 1000 # example
dev = BAC0.device(‘10.1.1.9’, deviceID,bacnet,poll=30)
dev.points #will give you all points on which you can iterate if you want...

这将创建一个名为“dev”的设备,您可以在该设备上与许多属性进行交互。默认情况下,BAC0将定义AI、AV、AO、BI、BV、BO、MV、TrendLogs。

您还可以获取有关某个点的信息,或使用方括号语法对其进行写入:

代码语言:javascript
复制
dev[“NameOfPoint”]
#Let’s pretend a point is named HTG-O
dev[“HTG-O”] = 100 #this will override the output
dev[“HTG-O”].value # will output the value to be used in some calculation

dev.properties #will give you more details on the point itself

使用这种方法可以确保ReadPropertyMultiple将被用来读取所有点。这意味着更少的网络请求(更快的速度)。您还将获得每个模拟点的单位...以及每个多状态ones...and的状态文本、描述等。

poll=30会告诉BAC0每30秒读取一次所有变量...因此,您可以选择适合您的需求。使用0将禁用轮询。默认值为10。

每次轮询一个值时,它都会保存在点历史记录中,以便您可以使用以下命令检索所有值:

代码语言:javascript
复制
dev[“YourPoint”].history
# This will give you a Pandas series ready to be used

如果你想要与一个有很多点(>1000)的设备交互,你可能会想要禁用轮询,如果需要,可能会禁用分段...但最好的方法是使用您想要的变量构建一个自定义对象列表。不再。

详情请看这里:https://bac0.readthedocs.io/en/latest/controller.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52976981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档