带有.NET的Bacnet / IP

时间:2018-07-11 08:39:10

标签: c# .net bacnet

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

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

但是,根据我到目前为止所读的内容,我对此信息有些怀疑,但是我没有支持该信息的技术知识。看来,基于我已阅读的信息,Bacnet通信是通过在端口上侦听UDP来完成的(这似乎违反了我需要连接至控制器的上述信息),如果这是正确的,并且我在UDP上侦听端口,所有设备都将在网络上广播遥测信号,而我只需要监听即可?那么控制器角色是什么?我可以忽略它吗?

任何解释或指针都可以帮助我从程序员的角度理解这一点。

3 个答案:

答案 0 :(得分:1)

BACnet确实通过UDP进行通信。您描述的场景虽然可能,但却是一种非常危险的方法。 很少 BACnet产品提供任何形式的BACnet协议安全性,因此要建立安全连接,您需要将VPN接入您的站点。一旦进入VPN,VPN本身很可能会阻止广播,因此您将需要使用BACnet“外国设备注册”进行连接。但是,大多数VPN也会执行NAT转换,因此站点上的BACnet服务器将必须提供“带NAT的FD的BACnet BBMD”支持。相当罕见。一种替代方法是在您的站点上放置一个框,以提供从站点到Azure IoT站点的连接。有几家公司提供这种产品,但是您似乎想自己编写程序。这并非易事,然后您将必须将“ BACnet对象”映射为“天蓝色时所需的任何数据格式”映射,这将需要深入理解纸上的BACnet规格约为2.5英寸厚。您可以忽略VPN方法,即将端口转发端口47808(默认为BACnet,但每个站点配置可以不同)。这就是一些相当大的公司对其HVAC系统进行黑客攻击的方式。如果您确实采用这种方法,则仍然需要BACNet客户端到天蓝色的映射/传输代理。您尚未在此处选择一个琐碎的项目。 ;),或者您可以购买现成的产品(盒装),已经完成了全部操作。

答案 1 :(得分:0)

顺便说一句,有一个FOSS C#BACnet客户端可供您参考:https://sourceforge.net/projects/yetanotherbacnetexplorer/

答案 2 :(得分:0)

为了他人的利益,即使不是为了自己;您的问题还有更多BACnet-ty方面,我认为尚未解决。

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

有一种可以订阅CoV(价值变化)更改/值的工具,但是至少在过去(如果现在还不是),人们担心这可能会淹没网络,并可能使设备负担重担。不断地向可能很多客户发送更新,或者发送更新的频率太高(超出了其监视和控制建筑物的舒适性,健康和安全性的首要任务)。

该标准确实提供了“对象列表”(在“设备”类型的对象上),并且在每个对象上都提供了“属性列表”,但是您可能会发现“属性列表”从未得到支持/实现。尽管它是必填属性(!?!)。

因此,这是您必须对每个物理设备都感兴趣的地方-至少它是IP地址,也可能是MAC地址,以及所有(相关的)对象和对象属性,您很可能会对此感兴趣首先与一个/两个/多个工程师坐在一起,以商定并了解哪些信息将主动暴露(供您监视)以及如何(例如,传递值的度量单位)。

在某些情况下(例如,对于小型建筑物而言),您可能必须单独与所有设备进行对话,但是在其他情况下,您将在网关设备上拥有要代表所有设备的点(/点“对象”)。坐在它后面的设备。

总而言之,无论您定向到多达300个设备,还是在网关设备上询问300个对象-每个对象代表一台物理设备,您仍然可能拥有一些您感兴趣的属性-以遥测为幌子,例如300 x 3,它的累加很快,然后整个标准都有错误处理和复杂性(-艰难的学习曲线/您必须购买)至少了解基础)。

我建议您还看看(先进且免费的)VTS(Visual Test Shell)工具。

不确定是否有帮助,但是值得指出;低估BACnet的风险(!!)。 ;)