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

使用pyserial库经USB无法实现Helios-Preisser数显百分表请求式取数

Helios-Preisser Digimet 1722-502 数显百分表 Python串口主动请求通信实现问题

设备基础配置与已验证通信能力

  • 设备型号:Helios-Preisser Digimet 1722-502 数显百分表
  • 配套硬件:专用USB转串口连接线,设备端为4针专用接口,上位机端为标准USB接口,设备支持串口协议输出测量读数
  • 开发目标:不依赖设备配套的专用软件,自行编写Python基础通信库实现与设备的全交互,通信规则参考设备自带协议手册说明
  • 已跑通功能:按键触发主动发送模式,按下接线端红色按钮即可触发设备自动推送测量值
  • 已验证可用的pyserial初始化代码:
import serial
ser = serial.Serial(
    port='/dev/tty.usbserial-MA4LOCLF',
    baudrate=4800,
    parity=serial.PARITY_EVEN,
    bytesize=serial.SEVENBITS,
    stopbits=serial.STOPBITS_TWO,
    dsrdtr=True,
    xonxoff=True
)
  • 主动发送模式实测校验:
    • 按下触发按钮后调用ser.inWaiting(),返回缓冲区可读长度为8
    • 调用ser.read(8)读取完整缓冲区,返回内容为'+000.00\r',读数解析正常

待实现的主动请求模式问题

根据设备通信协议定义,「外设请求式数据传输」的触发规则为:上位机将DataRequest引脚拉低并保持100ms~1000ms的T1时长,即可主动触发设备返回测量数据,无需人工按动按钮。
当前尝试的实现方式与异常表现:

  • 已尝试遍历各类串口配置组合、发送不同格式的文本请求指令,均无法触发设备响应
  • 典型测试场景:通过pyserial的write方法发送测试指令,示例代码:
# 发送测试指令
write_return = ser.write('0\r')
# write方法返回值为2,代表2个字节成功写入串口
# 后续调用ser.inWaiting()检查缓冲区,返回值为0,设备无任何数据返回
  • 交叉验证结论:设备配套的Windows专用软件可正常实现主动请求读数据的功能,证明设备硬件、固件及通信模式本身无故障,必然存在可通过Python串口库模拟的正确触发方法。

核心需求

明确通过Python串口库模拟主动请求触发逻辑的可行实现方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 07:27:08