pyserial:如何正确接收电源的rs232答案

问题描述 投票:0回答:1

我正在尝试通过RS232和pyserial建立与电源(RND 320-KA3005P)的通信。问题是,在发送“* DIN?”后,应返回制造商,型号名称和软件版本,连接似乎什么也得不到。也没有其他命令成功。使用附带的软件,连接后,LabView程序打开,设备可远程控制,所以我认为问题出在我的代码中。

代码示例:手册中描述的连接参数。作为行尾字符我试过“\ r \ n”,“\ r”,“\ n”这似乎解决了许多其他问题,但这里没有成功。

import io
import serial
import time
import sys

ser = serial.Serial('COM4',
                baudrate = 9600,
                bytesize=8,
                timeout=1,
                stopbits = serial.STOPBITS_ONE,
                parity = serial.PARITY_NONE,
                xonxoff = False)

eol_char = '\r\n'
sio = io.TextIOWrapper(io.BufferedReader(ser),newline=eol_char)

while True:
    sending = input("type:\n")
    ser.write((sending + eol_char).encode('utf-8'))
    time.sleep(0.2)
    ans = sio.read()
    sys.stdout.write('received: ' + str(ans))
    print('\ntry again\n')

输入命令后给出:

type:
*DIN?
received: 
try again

type:

当我在环回上运行脚本时

ser = serial.serial_for_url('loop://',timeout=1)
...

输出:

type:
*DIN?
received: *DIN?

try again

type:

它似乎工作正常。我正在使用Windows 10和USB转RS232转换器。有没有人知道我在这里缺少什么?

提前致谢。

python serial-port pyserial
1个回答
0
投票

我发现的解决方案相当令人失望。事实证明,使用USB转RS232转换器电缆,而不是之前使用的USB连接,设置和获取值的命令按预期工作。命令'* DIN?',我最初尝试过,我从手册:)得到的,仍然没有反应 - 可能只是不支持。

© www.soinside.com 2019 - 2024. All rights reserved.