访问另一个网络中的bacnet服务器。在不同网络中运行的服务器客户端

时间:2018-12-19 14:59:03

标签: c# server client bacnet

我有bacnet服务器和客户端在不同的网络上运行,例如客户端IP 192.168.1.33和服务器IP 10.10.10.45。两者都有相同的子网掩码地址。

由于bacnet使用UDP,因此客户端服务器无法连接。正如我上面提到的,两者都在不同的网络上。

在上述情况下如何连接这两个?

2 个答案:

答案 0 :(得分:0)

这里有几件事。

  • 关于MAC地址。上面的答案1暗示6字节的以太网MAC地址,其中包含IEEE分配的制造商的OUI。但是,BACnet(由于其在TCP / IP之前在其他数据链路上的概念)通常将数据链路地址称为MAC地址(例如,对于BACnet MS / TP为1字节),对于UDP,它使用IP地址和IP地址的6字节组合IP端口号作为数据链接的地址...。并将其称为MAC地址。令人困惑。但是你现在有了。因此,是的,通过子网ping您的设备(以其IP地址)以确保它们可以访问。 (顺便说一句,如果制造商(或用户)用相同的以太网MAC地址对设备进行编程,则它们不可能不可能。但是,由于IP设备已知具有不同的IP地址, ,在此示例中不可能有相同的BACnet MAC地址。另一件事,这些地址的BACnet默认为IP端口47808,也许OP意味着相同的端口号?
  • 以上回答2指出以192开头的IP地址在互联网上是错误的。例如192.168.1.x也是一个内部子网。
  • 现在使用BACnet。如果可以ping通这两个设备,则显然在两个子网之间有一个正确配置的IP路由器。你部分在那里。如果无法ping通,请这样做。 (某些较小的设备可能无法ping通,因此请将便携式计算机或其他设备放在子网中以确保IP网络已连接。如有必要,请IT部门参与,此步骤与BACnet无关。如果没有它,您将无法连接。
  • 接下来,BACnet使用广播来“发现”其他设备,这是迄今为止最常见的方法。根据设计,广播不穿越IP路由器。 BACnet在每个子网上使用BBMD(BACnet广播管理设备)的概念来“隧道”跨子网的BACnet广播。在每个子网上安装BBMD,并为每个子网配置对等地址,然后尝试发现。许多BACnet设备在内部支持此BBMD功能,如果需要,则可能需要启用它,但是要注意,现在您已将“虚拟内部BBMD设备”与常规BACnet设备关联,这会引起混淆。
  • 可选地,如果您的BACnet客户端支持“外国设备注册”,而另一个子网已经具有BBMD或BBMD支持,则该客户端可以将该BBMD注册为外部设备。
  • 最后,如果您已经可以ping其他设备,并且由于您已经知道IP地址,则无需进行发现,因此无需广播,如果您的设备支持“静态寻址”,则只需输入对等方的静态IP Address:port每个设备。但是请注意,发现将仍然是不可能的,并且某些功能(广播Who-Has)将无法正常工作。这不是推荐的方法,但是经常使用。

答案 1 :(得分:0)

您可能需要分别绑定到两个IP地址-如果使用不同的NIC(网络接口卡)与不同的BACnet“服务器”设备进行通信,则可以使用标准(/不支持BACnet的)IP路由设置允许您(作为BACnet的“客户端”)与2个服务器(分别位于各自的/不同的网络上)进行通信。

但是,通过为每个网络设置和管理BACnet的“网络号”,尝试兑现BACnet的“互连网”(-如果应该连接网络)。