lession07 2024-07-15 09:41 采纳率: 20%
浏览 121

modbus poll 读取

使用modbus poll serial port 读取 提示错误, insufficient bytes received 参数设置正确,salveid 不知道是否存在问题,代码测试也是报错

img

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-07-15 09:45
    关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    经过初步的分析,你遇到了问题,可能是由于 Modbus poll serial port 读取的参数设置错误导致的,另外莎芙林的问题也需要解决。以下是解决这些问题的一些建议:

    1. 核实Serial Port设备参数设置是否正确,例如波特率、数据位等。
    import serial
    
    ser = serial.Serial('/dev/ttyUSB0', 9600)
    
    1. 检查当前的IP地址和端口号,确保没有其他可能影响串行通信的问题。
    print('serial.tools.list_ports.com')
    
    1. 确保莎芙林文件存在并且可以被 Modbus poll 配置使用。

    2. 尝试将莎芙林转换为波特率相同的 modbus 协议以使其可以在 Modbus poll 中正常工作。

    #莎芙林到波特率的值需要计算
    port_speed = 9600
    port_speed_bps = (port_speed // 8) * 8
    port_speed_mbps = port_speed * 1000 / port_speed_bps
    
    ser.setbaudrate(port_speed)
    
    ser.write(b'TCRT') #输入 TCP 特征位
    
    ser.close()
    
    1. 如果上述方法都无法解决问题,你可能需要检查莎芙林文件的元数据和编码方式,看看是否有其他未识别的字符或者缺失的数据。

    如果以上都解决了你的问题,那么你应该能够正常使用 Modbus poll 来读取莎芙林文件了。如果仍然有问题,建议重新尝试以下步骤:

    1. 将莎芙林文件复制到 Modbus poll 中,并且尝试用 Modbus poll 进行连接。
    2. 在 Serial Monitor 中确认文件读取是否成功。
    3. 检查 Modbus poll 是否正常运行,可以通过控制台的 select 或者 input 命令来查看相关的命令状态。例如,你可以使用 select 0 0 > GETPUT/TEST 来查询当前配置是否有效。

    希望这些信息能对你有所帮助!如果你还有其他问题,欢迎随时向我提问。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月15日