2015-10-13 39 views
5

更新:確保我的命令,串行配置和終止符('\ r')正確後,我得到了這個工作1 5電腦。這導致我認爲這是一個適配器問題。我打算致電公司看到有關訂購USB/RJ11適配器BrainTree Scientific,Inc.注射泵(型號bs-8000)的串行命令rs232


我讀過this(使用Keyspan的USB - > DB9->我的Mac RJ11適配器我已經),但我仍然無法與此泵通信。這是Python腳本我修改(source),

import time 
import serial 

# configure the serial connections (the parameters differs on the device you are connecting to) 
ser = serial.Serial(
    port='/dev/tty.USA19H142P1.1', # /dev/tty.KeySerial1 ? 
    baudrate=19200, 
    parity=serial.PARITY_NONE, 
    stopbits=serial.STOPBITS_ONE, 
    bytesize=serial.EIGHTBITS 
) 


if not ser.isOpen(): 
    ser.open() 

print ser 
commands = ['dia26.59', 'phn01', 'funrat', 'rat15mm', 'vol0.7', 'dirinf', 
      'phn02', 'funrat', 'rat7.5mm', 'vol.5', 'dirinf', 'phn03', 
      'funrat', 'rat15mm', 'vol0.7', 'dirwdr', 'phn04', 'funstp', 
      'dia26.59', 'phn01', 'funrat', 'rat15mm', 'vol1.0', 'dirinf', 
      'phn02', 'funrat', 'rat7.5mm', 'vol.5', 'dirinf', 'phn03', 
      'funrat', 'rat15mm', 'vol1.0', 'dirwdr', 'phn04', 'funstp'] 

for cmd in commands: 
    print cmd 
    ser.write(cmd + '\r') 
    time.sleep(1) 
    out = '' 
    while ser.inWaiting() > 0: 
    out += ser.read(1) 
    if out != '': 
    print '>>' + out 

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字符串總是空)

這是我的輸出:

(sweetcrave)[email protected] 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 

我的終極目標是:

  • 設置泵參數
  • 有三個階段是指定的:
  • 階段1:推液到管端
  • 階段2:在分配特定速率和體積液體
  • 相位3:拉備份液體
  • 液體被拉回向上(相3),使得它不會從歧管滴落,所以主題不能把它吸出來。因此,需要階段1將液體推回到流出點。
  • 體積和分配率可以改變。使用下面的公式:
  • 率=體積/秒* 60
  • 例如:0.5/4×60(提供0.5 ml,其在4秒的持續時間)= 7.5
+0

注:00buz13,buz1,buz13不發出蜂鳴聲或嗡嗡泵東西。我發送命令時,我的適配器閃爍。 – broinjc

+0

這些是python中的其他腳本,我寫了麻煩拍攝泵:https://github.com/natsn/sweetcrave/tree/master/util – broinjc

回答

3

該泵是很容易與之交談 - 但如果你遇到很多麻煩 - 那麼肯定有一個問題需要修復。

在您擔心從編程代碼向泵發送命令之前,測試泵是否準備好連接計算機是個好主意。

根據多年使用這些泵的經驗,我可以告訴你,當你遇到與泵連通的難度時,電纜斷裂是最常見的問題,2號插頭將它們插入泵背面的正確孔中。

我建議從第三方獲取已知的工作應用程序 - 比如我的http://www.SyringePumpPro.com,安裝它並使用它來確認您的泵將與已知功能的軟件進行通信。如果泵和電纜一切正常,SyringePumpPro將在幾秒鐘內檢測並顯示泵的活動。它不會花費任何東西,它會讓你知道泵,串口適配器和電纜都正常工作。

你的程序...

我會擱置你的TTY端口是否被打開等問題,但是如果你發送的任何泵他們會回答 - 通常喜歡

00S序列?爲一個未知的命令。

看看你的python代碼 - 我擔心你重複執行兩次命令。泵只需要上傳一次這些命令,並通過電源週期記住它們。

假設你的命令到達泵,它們都不會導致泵抽 - 它們正在裝載泵的內存,但是實際上並沒有這樣做。你需要命令RUN來讓泵運行你的上傳。

泵命令都可以上傳到一個上傳文件,然後運行。然後就是在Python代碼中同步泵送和刺激。

上述泵送順序可以在PPL或泵程序語言文件中完成並上傳一次。

有例如PPL文件在泵手冊的背面,你可能會感興趣的例子是示例2

這就是所謂的有回吸重複分配。

就在我做了一個looooong培訓視頻關於這是在youtube上。它可能真的有助於解釋泵的工作方式,泵的編程語言如何工作以及如何上載泵程序。

好運

+0

嗨,蒂姆,感謝您的回答和歡迎來到SO。我已經更新了我的問題,以包括我正在嘗試做的事情。 (順便說一句 - 傑森的原因是「反垃圾郵件」http://stackoverflow.com/posts/27209062/revisions - 不要把電子郵件/網站的職位,只是在評論部分溝通) – broinjc

+0

儘管如此 - 我冒昧給你發電子郵件;) – broinjc

+0

我在後面使用TTL連接,順便說一句,而不是rs-232連接器。我是否使用相同的命令? – broinjc