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

PyVISA控制温度控制器出现termination character invalid错误怎么解决

PyVISA 温度控制器通讯故障排查

关于PyVISA是否会后台修改指令的问题

PyVISA 串口(ASRL)资源默认开启自动追加终止符逻辑,未主动配置的情况下会默认在所有发送的指令末尾追加\n(LF),属于可配置的默认行为,并非后台暗改。你可以通过以下代码确认当前配置:

print(keithley.write_termination, keithley.read_termination)

默认配置下输出为\n \n,也就是说你手动输入的b2 1 CR实际会被追加一个LF后发送,多出来的字符会被设备判定为终止符错误。

其他可能的故障原因

  • 串口基础参数不匹配:你当前代码未配置波特率、数据位、停止位、校验位,默认的9600/8N1如果和设备要求参数不一致,会导致设备解析指令乱码,将正常终止符识别为普通内容触发报错。
  • 终止符发送格式错误:设备支持的NULL终止符是单字节0x00,如果直接输入字符串NULL发送,实际发出的是四个ASCII字符,无法被设备识别为终止符。
  • 指令编码不匹配:部分工业控制器要求指令严格使用ASCII编码,PyVISA默认write方法使用UTF-8编码,虽常规字符无差异,但特殊控制字符会出现解析异常。
  • 指令格式细节偏差:部分设备要求指令参数的空格数、数值位宽严格符合规范,比如传感器设置指令的-20 000要求固定三位小数位补零,格式不对也会触发解析异常,误报终止符错误。

修复方案参考

修改代码关闭自动终止符追加,手动控制发送的字节流,同时打印实际发出的字节确认格式:

import pyvisa
import threading

def listen(keithley):    
    while True:
        if keithley.bytes_in_buffer >= 1:
            out = keithley.read_bytes(keithley.bytes_in_buffer).hex()
            print(f"收到响应:{out}\n")

if __name__ == '__main__':
    rm = pyvisa.ResourceManager()
    # 打开资源时明确配置串口参数,关闭自动终止符
    keithley = rm.open_resource(
        "ASRL5::INSTR",
        baud_rate=9600, # 替换为设备实际要求的波特率
        data_bits=8,
        parity=pyvisa.constants.Parity.none,
        stop_bits=pyvisa.constants.StopBits.one,
        write_termination="",
        read_termination=""
    )
    threading.Thread(target=listen, args=(keithley,), daemon=True).start()
    print('Enter your commands below.\r\nInsert "quit" to leave the application.')
    print("Main    : start receiver")
    while True:
        data = input(">> ")
        if data == "quit":
            keithley.close()
            quit()
        else:
            # 解析输入的转义字符,比如输入\r会转为实际的CR字节
            encoded_data = data.encode('raw_unicode_escape').decode('unicode_escape').encode('ascii')
            keithley.write_raw(encoded_data)
            print(f"实际发送字节:{encoded_data.hex()}")

测试时发送带CR终止符的指令直接输入b2 1\r即可,从打印的发送字节可以确认是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:09:00