You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用bacnet-stack-1.0.0示例程序实现MS/TP通信失败问题咨询

问题:BACnet MS/TP模式下客户端无法读取服务端属性,服务端无响应

环境配置与运行日志

1. BACnet MS/TP Server 配置与运行

通过修改环境变量设置波特率38400、MAC地址0x78,使用apps目录下的server示例模拟BACnet MS/TP Server,运行日志如下:

/var/user/app/device_supervisor # ./bacserv 20000
BACnet Server Demo
BACnet Stack Version 1.0.0
BACnet Device ID: 20000
Max APDU: 480
pyh defined MSTP
MS/TP Interface: /dev/ttyO3
RS485: Initializing /dev/ttyO3 at Baud Rate 38400=success!
MS/TP MAC: 78
MS/TP Max_Master: 7F
MS/TP Max_Info_Frames: 1

2. BACnet MS/TP Client 配置与运行

通过修改环境变量设置波特率38400、MAC地址0x79,使用apps目录下的readprop示例模拟BACnet MS/TP Client,运行日志如下:

root@pyhao-VirtualBox:~/pyhao/tmp/bacnet-stack-1.0.0-yuan/apps/readprop# ./bacrp_mstp_x86 20000 0 0 85 --mac 78
pyh defined MSTP
MS/TP Interface: /dev/ttyS1
RS485: Initializing /dev/ttyS1 at Baud Rate 38400=success!
MS/TP MAC: 79
MS/TP Max_Master: 7F
MS/TP Max_Info_Frames: 10
pyh send read req
pyh Send_Read_Property_Request_Address
pyh dlmstp_send_pdu
pyh Ringbuf_Data_Put
pyh bytes_sent = 13
pyh pdu len = 0
pyh pdu len = 0
pyh pdu len = 0
pyh pdu len = 0
pyh pdu len = 0
pyh pdu len = 0
pyh pdu len = 0

客户端核心代码片段(bacnet-stack-1.0.0-yuan/apps/readprop/main.c):

/* returns 0 bytes on timeout */
pdu_len = datalink_receive(&src, &Rx_Buf[0], MAX_MPDU, timeout);
printf("pyh pdu len = %d\n", pdu_len);

问题现象

客户端运行后无法读取服务端属性值,服务端无任何打印输出;已通过rs485.c测试确认RS485链路收发数据正常,且相同配置逻辑下BACnet/IP通信正常,但MS/TP模式无法正常工作。

排查方向

  1. 同步MS/TP核心参数
    服务端Max_Info_Frames设为1,客户端设为10,虽然该参数允许两端不同,但建议临时调整为一致值测试,排除参数不兼容导致的帧交互问题。
  2. 验证串口底层配置
    确认两端串口的数据位、停止位、奇偶校验是否严格匹配(BACnet MS/TP标准为8N1:8数据位、无校验、1停止位),部分设备默认配置可能存在差异,需手动显式指定。
  3. 抓包分析帧交互
    使用RS485串口抓包工具(如USB转RS485适配器配合Wireshark的BACnet插件),捕获客户端发送的请求帧,检查是否符合BACnet MS/TP帧格式;同时确认服务端是否接收到该帧。
  4. 调试服务端接收流程
    在服务端代码中添加日志,跟踪datalink_receive函数的执行状态,确认是否有数据进入接收缓冲区,排查是否存在帧解析错误或过滤逻辑阻断了请求。
  5. 调整客户端超时参数
    检查客户端timeout值是否过短,尝试延长超时时间,确认是否是响应延迟导致datalink_receive返回0。
  6. 排查MAC地址绑定
    确认服务端MAC地址0x78是否正确绑定到/dev/ttyO3接口,是否存在MAC地址冲突或接口绑定错误的情况。

内容的提问来源于stack exchange,提问作者PYHAO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:56:35