在调试以太网流量时,有许多硬件和软件工具可供选择,Wireshark是一个很好的例子,它是免费的。在分析RS485总线上的MSTP流量时,选择是有限的。 Bacnet通信的专业特性加上紧张的时机使得像Windows和Linux这样的多任务操作系统难以跟上。 Bacnet指定设备应该在15到20ms内开始其应答,这接近PC的限制。感谢Steve Kargs的一些创造性工作,我们可以使用一台普通的PC来捕获MSTP数据包,并使用Wireshark进行实时查看。史蒂夫的工作的故事在这里: http://steve.kargs.net/bacnet/wireshark-and-bacnet-mstp/.
获取硬件:
你的电脑需要一个 RS485 端口和一个 Bacnet 设备才能与之通信。
我们为RS485端口制作了这款低成本的USB转RS485转换器。LED指示灯本身就非常实用。
https://dev.bravocontrols.com/product/usb-to-rs485-converter/
你需要一个 Bacnet 设备。如果你还没有,这里推荐一款我们正在开发的 $30 设备。它的主要功能是“脉冲输入到模拟输出”,但你也可以将其用作通用 I/O,因为它有六个通用输入和六个模拟/二进制输出。产品页面上有指向该产品源代码的链接,该源代码使用 Arm STM32F103VC 处理器。有了这两样硬件,你很快就能开始使用 Bacnet MSTP 进行编程了。
https://dev.bravocontrols.com/product/pwm-input-to-voltage-output-transducer/
安装 Wireshark 和 MSTP 辅助工具
接下来安装 Wireshark 2.0 数据包捕获工具: https://www.wireshark.org/#download
全部通过安装过程选择默认选项。
接下来,我们需要下载Steve Kargs的帮助文件,并将其保存到安装Wireshark的特殊文件夹中。启动Wireshark并点击帮助 - >关于Wireshark - >文件夹选项卡 - > Extcap路径来查看文件应该被复制的位置。
您可以点击标签4中的链接,这将弹出正确的文件夹,如tab5所示。
4.从Steve下载并解压缩mstpcap.exe助手文件,可以在这里找到: https://sourceforge.net/projects/bacnet/files/bacnet-tools/bacnet-tools-0.8.5 这个压缩包里有很多实用工具,你只需要 mstpcap.exe 文件。将 bacnet tools 文件解压到一个临时文件夹,然后将重要的 mstpcap.exe 文件复制到 wireshark\extcap 文件夹。
安装过程中,Wireshark 会询问是否要重启,我觉得没必要,可能是因为我之前已经多次安装过这个软件。您的结果可能有所不同。
首次运行 Wireshark 时,会显示电脑上所有可用通信端口的列表。Tab5 选项卡中有一个网络活动图表,显示 Wi-Fi 端口有一些活动,说明安装顺利完成。
要查看MSTP流量,我们首先单击tab6上的'COM6上的BACnet MS / TP'图标,这会弹出一个对话框,我们可以在tab7中编辑波特率。然后在tab8开始捕获。
最后是 MSTP 流量,这次捕获的数据来自 COM1 上的一个会话。
在 Wireshark 中设置过滤器:
您可以通过设置过滤器来锁定感兴趣的流量,过滤器可以直接在 tab9 中编辑。这里我们设置了一个简单的过滤器,用于捕获所有发往 Bacnet ID = 3 的数据,语法为“mstp.dst == 0x03”。过滤器可以很复杂,因此我们提供了一个对话框来帮助您构建过滤器表达式。点击 tab10 即可打开此对话框。在这里,我们在 tab11 中选择了 Bacnet MSTP 协议,在 tab12 中选择了“目标地址”过滤器,在 tab13 中选择了“==”以进行精确匹配,最后在 tab14 中输入了十六进制格式的 Bacnet 地址 ID 0x03。
8. 如果遇到问题,可以尝试不同的波特率。我的设备在 78k 波特率下无法正常工作,但令人惊讶的是,在 112k 波特率下却可以正常工作。此外,还可以在“Windows 设备管理器”的“端口设置”->“高级设置”->“延迟计时器”中找到 COM 端口延迟设置。FTDI 的常用 USB COM 端口芯片的默认设置为 16 毫秒,如果驱动程序支持,您可以尝试更低的设置。
其他开源工具:
最后,对于更高级别的 Bacnet 对象调试,我们有久负盛名的“Yabe”,它的全称是“Yet another Bacnet Explorer”(又一个 Bacnet Explorer)。这是一个开源项目,目前由 Frédéric Chaxel 维护。安装我们的 T3000 软件时,它会自动安装,您可以在“工具”->“Bacnet 工具”下找到它。如果您想在不安装 T3000 软件的情况下安装该工具,以下是 Yabe 开源项目的链接:
https://sourceforge.net/projects/yetanotherbacnetexplorer/
这就是在不花费大量资金的情况下调试Bacnet MSTP流量的方法。
专业 Bacnet 工具:
以下是一些来自 Cimetrics、Polarsoft 和 Chipkin 的常用工具,专业开发人员或集成商应该会需要它们。不过,正如您所见,它们的价格也不菲。我们在 Yabe 工具问世很久之前就购买了 Chipkin Bacnet Explorer 工具,它已经物有所值,但现在 Yabe 的功能已经很完善,我们团队很少再使用它了。








