Pyserial和QUERY问题

时间:2013-09-10 21:47:11

标签: pyserial

我有一个带9针DB连接器的MKS压力传感器。用户界面通过RS-232或RS-485串行通信。我目前正在使用pyserial和python开发代码,通过可插拔的RS-232到usb适配器查询传感器。我确定适配器有效,因为我用它通过pyserial与另一台仪器进行通信。

传感器的相关引脚为:

3 - POWER +
4 - POWER -
6 - RELAY COMMON
7 - RS485 - / RS232 TXD
9 - RS485 + / RS232 RXD

我的适配器已连接到/ dev / ttyUSB1。

传感器的出厂默认波特率= 9600,数据格式为8个数据位,无奇偶校验和一个停止位。根据手册,RS485和RS232的查询和命令语法相同。

我遇到的问题是查询换能器。

查询所需的语法是:

@<device address><query>?;FF

例如查询当前波特率:@ 253BR ?; FF

其中:

@ <attention charector>
253 <default address>
BR? <query for baud rate>
;FF <terminator>

我的python代码是:

import serial 

Piezo = serial.Serial(port ='/dev/ttyUSB1',
                         baudrate=9600,parity =serial.PARITY_NONE,
                         stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS, 
                         timeout =1)

print Piezo.isOpen()

Piezo.write('@253BR?;FF')
print Piezo.readall()
Piezo.close()

我的回复:

%run /home/vivekd/Desktop/Software/Pressure/Piezon.py 真

不幸的是我没有收到回复,我假设它与写序列和非传统终结符有关。我尝试过其他写作组合,但我没有得到回应。任何和所有建议都会有所帮助。

感谢。

-V

1 个答案:

答案 0 :(得分:1)

解决了,问题是rs232发送和接收引脚接线是倒退。