0

我有一项任务需要了解为使用 Bacnet/IP 的 HVAC 解决方案设置远程监控方案的技术可行性。我需要设置一个 .NET 客户端来获取遥测数据并将其发送到 Azure IoT Hub。我目前关心的是了解如何连接到 Bacnet/IP 网络。

除了它在网络上具有压力和湿度传感器以及 DDC 控制器(EBCON - Delta Controls)这一事实之外,我没有太多关于已安装硬件的信息信息。有人告诉我,我不需要关心实际的传感器,因为它们会将遥测数据发送到控制器,所以我只关心控制器并连接到它。

然而,根据我目前所阅读的内容,我对这些信息有些怀疑,但我没有支持它的技术知识。似乎根据我已阅读的信息,Bacnet 通信是通过 UDP 侦听端口完成的(这似乎与我需要连接到控制器的上述信息背道而驰),如果这是真的并且我在 UDP 上侦听端口,所有设备都会在网络上广播遥测数据而我只需要监听吗?那么控制器的角色是什么?我可以忽略它吗?

任何解释或指针都可以帮助我从程序员 PoV 那里理解这一点,我们将不胜感激。

4

3 回答 3

1

BACnet 确实通过 UDP 进行通信。您描述的场景虽然可能,但是一种非常危险的方法。很少有BACnet 产品提供任何类型的 BACnet 协议安全性,因此要建立安全连接,您需要 VPN 进入您的站点。一旦在 VPN 上,VPN 本身很可能会阻止广播,因此您需要使用 BACnet “外国设备注册”进行连接。然而,大多数 VPN 也会进行 NAT 转换,因此现场的 BACnet 服务器必须提供“BACnet BBMD with FD with NAT”支持。相当罕见。另一种方法是在您的站点上安装一个盒子,提供从站点到 Azure IoT 站点的连接。有几家公司提供这种类型的产品,但您似乎想自己编程。这不会是微不足道的,然后您必须将“BACnet 对象”映射到“Azure 上需要的任何数据格式”映射,这将需要对 BACnet 规范有相当深入的了解,该规范在纸上约为 2.5 英寸厚. 您可以忽略 VPN 方法,将端口转发端口 47808(BACnet 默认,但每个站点配置可能不同)到控制器。这就是一些相当大的公司如何让他们的 HVAC 系统被黑客入侵。如果您确实采用这种方法,您仍然需要一个 BACNet 客户端到 Azure 的映射/传输代理。你没有在这里选择一个琐碎的项目。;) 或者您可以购买已经完成这一切的现成产品(盒子)。

于 2018-07-12T05:22:32.813 回答
0

顺便说一下,有一个 FOSS C# BACnet Client 可以作为参考:https ://sourceforge.net/projects/yetanotherbacnetexplorer/

于 2018-07-13T19:58:13.523 回答
0

为了他人的利益,如果不是为了自己;我认为您的问题还有更多的 BACnet 方面尚未得到解决。

您必须更加主动地使用 BACnet - 您可能会有新设备(或至少刚刚再次上线的设备)向您广播,但否则您必须主动读取所有属性(/遥测)值- 至少是感兴趣的。

有订阅 CoV(更改值)更改/值的工具,但至少在过去(如果现在还没有)担心这可能会淹没网络,并可能给设备带来负担,不得不继续发送可能对许多客户进行更新,或者过于频繁地更新(超出其主要工作,即监控和控制建筑物以确保舒适、健康和安全)。

该标准确实提供了一个“对象列表”(在“设备”类型对象上)和每个对象的“属性列表”,但您可能会发现“属性列表”从未被支持/实现,尽管它已经强制属性(!?!)。

所以这是你必须对每一个物理设备感兴趣的地方 - 至少它是 IP 地址和可能的 MAC 地址,以及它的所有(相关)对象和对象属性,你很可能不得不坐在那里一个/两个/多个工程师首先同意并了解哪些信息将被主动公开(供您监控)以及如何(例如,传递值的测量单位)。

在某些情况下(例如,对于小型建筑物),您可能必须单独与所有设备通信,但在其他情况下,您将在网关设备上拥有点(/point 'object's),代表所有设备在它后面。

总而言之,无论您是指向多达 300 个设备,还是在网关设备上询问 300 个对象(每个对象都代表一个物理设备),您仍然可能有一些您感兴趣的感兴趣的属性 - 在遥测的伪装,所以 300 x 3(例如),它加起来很快,然后是整个标准的错误处理和复杂性(- 一个艰难的学习曲线/你必须接受才能理解至少有基础)。

我建议您也看看(高级和免费)VTS(可视化测试外壳)工具。

不确定这是否有帮助,但值得指出;低估 BACnet 后果自负(!!)。;)

于 2019-02-06T15:23:56.337 回答