2013-09-10 55 views
0

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

换能器相关的引脚是:

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() 

与我回应:

%运行/home/vivekd/Desktop/Software/Pressure/Piezon.py 真

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

谢谢。

-V

+0

FF'可能是'换页',即字符''\ f'',或者可能是一个十六进制ASCII码,即字符号0xFF? – Simon

+0

我确实相信FF是一种换页功能,我尝试过使用:Piezo.write('@ 253BR?;'+'\ f') print Piezo.readall()...没有回应 –

回答

0

解决了,问题是rs232发送和接收的引脚连线都是反向的。