我有一个发酵罐(NBS BioFlo 3000)通过RS232电缆连接到PC(Windows XP)。我下载了一个免费软件(http://www.foxylogic.com)来监控发酵罐。你知道吗
它工作,所以我知道一个事实,硬件,电缆等,是好的。你知道吗
自由软件不是开源的,而且非常古老。我想用pySerial监控发酵罐。我知道端口是COM1,8位数据,偶校验,波特率=9600。我看到的一篇论文(http://dx.doi.org/10.1371/journal.pone.0092108,补充S1,第2页)说我应该使用“AFS通信协议”,请求信息的字符串如下所示:
(MD#)RA(CR)
其中(MD#)是反应器的编号(在我的例子中是0),而(CR)是回车。
基于此,我在iPython终端上做了:
import serial
ser = serial.Serial(0)
ser.parity = serial.PARITY_EVEN
ser.timeout = 1
print ser
我得到:Serial<id=0x1976cb0, open=True>(port='COM1', baudrate=9600, bytesize=8, parity='E', stopbits=1, timeout=1, xonxoff=False, rtscts=False, dsrdtr=False)
ser.write('0RA\r')
print ser.read(9999)
…我什么也没得到-只是一个空字符串。我试图更改超时时间(最多15秒,我知道这不能再长了),我也尝试了readline()和read(1),但我没有更改任何其他参数。我还试图改变字符串:
b'0RA\r'
'0RA\r'.encode()
'00RA\r'
'0RA\r\n'
'0RA\n'
'MD0RA\r'
'(0)RA\r'
'0ra\r'
还有很多人,我都记不清了。什么都不管用,我总是得到一个空字符串。不错误串行设备完全没有声音。你知道吗
当我在循环中ser.read(1)
时,唯一一次我得到的不是空字符串,而是没有写入,我物理上关闭或打开发酵罐。我得到一个空间。你知道吗
我在谷歌上搜索了很多,但似乎我正在处理一个非常独特的问题,所以我不希望在这里找到一个简单的答案。我无法测试所有字符串和设置的组合,所以我的问题是:
从哪里开始故障排除?
(我的python是2.7)
谢谢!你知道吗
您可以通过检查是否有任何实际交流来开始故障排除。在Windows中,能够实现这一点的实用程序包括PortMon from the Sysinternals suite和SerialMon。你知道吗
相关问题 更多 >
编程相关推荐