Python BrainTree Scientific,Inc.注射泵(bs-8000型)rs232的串行命令

Python BrainTree Scientific,Inc.注射泵(bs-8000型)rs232的串行命令,python,serial-port,psychopy,Python,Serial Port,Psychopy,更新:在确保我的命令、串行配置和终止符('\r')正确后,我在5台计算机中的1台上实现了此功能。这使我相信这是一个适配器问题。我计划打电话给该公司,询问订购USB/RJ11适配器的事宜(我在mac电脑上使用了一个按键USB->DB9->RJ11适配器) 我已经读过了,但是我仍然无法与这个泵进行通信。这是我修改过的python脚本() tty端口: $ ls -lt /dev/tty* | head crw--w---- 1 nathann tty 16, 0 Oct 13 14

更新:在确保我的命令、串行配置和终止符('\r')正确后,我在5台计算机中的1台上实现了此功能。这使我相信这是一个适配器问题。我计划打电话给该公司,询问订购USB/RJ11适配器的事宜(我在mac电脑上使用了一个按键USB->DB9->RJ11适配器)


我已经读过了,但是我仍然无法与这个泵进行通信。这是我修改过的python脚本()

tty端口:

$ ls -lt /dev/tty* | head
crw--w----  1 nathann  tty     16,   0 Oct 13 14:13 /dev/ttys000
crw-rw-rw-  1 root     wheel   31,   6 Oct 13 14:12 /dev/tty.KeySerial1
crw-rw-rw-  1 root     wheel   31,   8 Oct 13 13:52 /dev/tty.USA19H142P1.1
crw-rw-rw-  1 root     wheel    2,   0 Oct 13 10:00 /dev/tty
crw-rw-rw-  1 root     wheel   31,   4 Oct 12 11:34 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw-  1 root     wheel    4,   0 Oct 12 11:34 /dev/ttyp0
crw-rw-rw-  1 root     wheel    4,   1 Oct 12 11:34 /dev/ttyp1
crw-rw-rw-  1 root     wheel    4,   2 Oct 12 11:34 /dev/ttyp2
crw-rw-rw-  1 root     wheel    4,   3 Oct 12 11:34 /dev/ttyp3
crw-rw-rw-  1 root     wheel    4,   4 Oct 12 11:34 /dev/ttyp4
我甚至不确定它是否在发送命令。没有收到任何错误或反馈。泵上未发生任何事件,也未返回任何内容(
out
string始终为空)

这是我的输出:

(sweetcrave)nathann@glitch sweetcrave (master) $ python pumptest.py
Serial<id=0x1093af290, open=True>(port='/dev/tty.USA19H142P1.1', baudrate=19200, bytesize=7, parity='O', stopbits=2, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
dia26.59
>>
phn01
funrat
rat15mm
vol0.7
^CTraceback (most recent call last):
  File "pumptest.py", line 28, in <module>
    time.sleep(1)
KeyboardInterrupt
(甜心)nathann@glitchsweetcrave(大师级)$python pumptest.py
串行(端口='/dev/tty.USA19H142P1.1',波特率=19200,字节大小=7,奇偶校验=0',停止位=2,超时=None,xonxoff=False,rtscts=False,dsrdtr=False)
第26.59段
>>
phn01
芬拉特
rat15mm
第0.7卷
^CTraceback(最近一次通话最后一次):
文件“pumptest.py”,第28行,在
时间。睡眠(1)
键盘中断
我的最终目标是:

  • 设置泵参数
  • 规定了三个阶段:
  • 阶段1:将液体推至管端
  • 第2阶段:按特定速率和体积分配液体
  • 第三阶段:把液体拉上来
  • 液体被拉回(第3阶段),这样它就不会从歧管滴落,也就不会被主体吸出。因此,需要第1阶段来推动
  • 液体回流到流出点
  • 可以更改容量和分配速率。使用以下公式:
  • 速率=音量/秒*60
  • 示例:.5/4 x 60(在4秒时间内输送0.5毫升)=7.5

泵很容易与人交谈,但如果您遇到很多问题,那么一定有问题等待解决

在您担心从编程代码向泵发送命令之前,最好先测试泵是否已准备好进行计算机连接

根据多年使用这些泵的经验,我可以告诉您,当您遇到与泵通信的这种困难时,电缆断裂是最常见的问题,第二个问题是将电缆插入泵背面的正确孔中

我建议从像我这样的第三方获取一个已知的工作应用程序,安装它并使用它来确认你的泵将与一个已知的功能软件进行通信。若泵和电缆一切正常,PumpPro将在几秒钟内检测并显示泵的活动。它不会花费你任何东西,它会让你知道泵,串行适配器和电缆都工作正常

你的程序

我将撇开您的tty端口是否被打开等问题不谈,但是如果您发送泵,他们将回答任何问题-通常是以如下顺序

00秒?对于未知命令

看看你的python代码- 我担心你会重复两次命令。泵只需要上传一次这些命令,并在整个电源循环中记住它们

假设您的命令到达泵,它们中没有一个会导致泵启动-它们正在加载泵的内存,其中包含要执行的操作,但实际上没有执行。您需要运行命令以使泵运行您上传的内容

泵命令可以在一次上载中全部上载,然后运行。然后就是在python代码中同步泵送和刺激

上述泵送顺序可以在PPL或泵送程序语言文件中完成,并上传一次

泵手册后面有PPL文件示例,您可能感兴趣的示例是示例2

这叫做重复的放弃吸回

碰巧我在youtube上制作了一个关于这个的长时间培训视频。这可能真的有助于解释泵是如何工作的,泵的编程语言是如何工作的,以及如何上传泵程序


祝你好运

嗨,蒂姆,谢谢你的回答,欢迎来到SO。我已经更新了我的问题,包括我正在尝试做什么。(顺便说一句,杰森的理由是“反垃圾邮件”-不要把电子邮件/网站放在帖子中,只是在评论部分交流)尽管如此-我还是冒昧地给你发了电子邮件;)顺便说一句,我使用的是背面的TTL连接,而不是rs-232连接器。我是否使用相同的命令?注意:00buz13、buz1、buz13没有在泵上发出嘟嘟声或嗡嗡声。当我发送命令时,我的适配器正在闪烁。以下是我用python编写的用于排除泵故障的其他脚本:
(sweetcrave)nathann@glitch sweetcrave (master) $ python pumptest.py
Serial<id=0x1093af290, open=True>(port='/dev/tty.USA19H142P1.1', baudrate=19200, bytesize=7, parity='O', stopbits=2, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
dia26.59
>>
phn01
funrat
rat15mm
vol0.7
^CTraceback (most recent call last):
  File "pumptest.py", line 28, in <module>
    time.sleep(1)
KeyboardInterrupt