2015-10-13 13 views
5

UPDATE: Komutlarımın, seri yapılandırmanın ve sonlandırıcının ('\ r') doğru olmasını sağladıktan sonra, bunu 1'in üzerinde çalıştım. bilgisayarlar. Bu bana bir adaptör sorunu olduğuna inanmamı sağlıyor. Ben this okudumBrainTree Scientific, Inc. Şırınga Pompası (model bs-8000) rs232 için Seri Komutlar


(Ben Keyspan USB-> DB9-> benim mac RJ11 adaptörü kullanarak olmuştu) ama ben hala bir USB/RJ11 adaptörü siparişi hakkında görmek için şirket çağıran plan Bu pompa ile iletişim kuramıyor.

$ 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 

o komutları gönderiyorsa ben bile emin değilim: Bu benim modifiye python komut dosyası (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 portlar. Hata veya geri bildirim almamak. Hiçbir şey pompasını oluyor ve hiçbir şey

Bu benim duyulur (out dize her zaman boştur) döndürdü oluyor:

(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 

Benim nihai hedefi: kurmak

  • parametreleri
  • pompalar
  • belirtilen üç aşama vardır:
  • 1. aşama: sıvıyı borunun ucuna itin
  • faz 2: manifolddan damla olmayacak şekilde sıvı (faz 3) içine geri çekilir sıvı geri
  • çekme ve böylece söz konusu:
  • faz 3 belirli bir oranda ve hacim olarak sıvının dağıtılması ememezsin. Bu şekilde,
  • sıvısını geri akış noktasına geri itmek için faz 1 gereklidir.
  • birim ve dağıtım oranı değiştirilebilir. aşağıdaki formülü kullanarak:
  • oranı = hacim/sn * 60
  • örnek: .5/4 x 60 = 7,5
+0

NOT iyi şanslar: 00buz13, buz1, buz13 bip veya pompa şey uğultu değildir. Komutları gönderdiğimde adaptörüm yanıp sönüyor. Bunlar pompayı ateş sorun yazdım Python diğer komut – broinjc

+0

şunlardır: https://github.com/natsn/sweetcrave/tree/master/util – broinjc

cevap

3

pompaları çok kolaydır (.5 4 sn süresince ml teslim) Konuşmak için - ama çok fazla sorun yaşıyorsanız - o zaman düzeltilmek için bekleyen bir sorun olmalı.

Programlama kodunuzdan pompalara komut gönderme konusunda endişelenmeden önce, pompanın bilgisayar bağlantısı kurmaya hazır olduğunu test etmek iyi bir fikirdir. Eğer pompa ile iletişim zorluk bu seviyede karşılaştığınızda sana kırık kabloları söyleyebilir bu pompalarla yılların deneyimi itibaren

sayısı 2 pompanın arkasındaki doğru deliğe onları takmayı, EN yaygın bir sorundur. Benimki http://www.SyringePumpPro.com gibi yüklemeden ve pompa yazılımın bilinen işleyen parçası ile iletişim kuracak onaylamak için kullanarak -

Ben 3 partiden bilinen çalışma uygulaması kapma öneririz. Her şey pompalar ve kablolarla iyi uyuşuyorsa, SyringePumpPro pompanızın faaliyetlerini birkaç saniye içinde algılar ve görüntüler. Herhangi bir şeye mal olmayacak ve pompanın, seri adaptörün ve kabloların düzgün çalıştığını bilmenizi sağlayacaktır.

Programınız ...

Sana pompalar şey göndermek takdirde kendilerine cevap verecektir, kenara tty portu vb açılıyor olmadığını konusunu bırakacaktır - genellikle

00s gibi bir dizi ile ? bilinmeyen bir komut için.

sizin piton koduna baktığımızda - Ben iki kez komutları tekrar endişe duyuyorum. Pompa sadece bir kez yüklenen bu komutlara ihtiyaç duyar ve bunları güç çevrimleriyle hatırlar.

varsayarsak sizin komutları pompalamak için pompayı neden olur bunlardan pompa hiçbiri elde edildi - onlar ne yapacağını ile pompanın hafızasını yüklenirken ama aslında bunu yapıyor değildir. Pompanın yüklediğinizi çalıştırması için RUN komutuna ihtiyacınız var.

pompa komutları tek bir yükleme yüklenen ve daha sonra çalıştırılabilir. Daha sonra, pompalama ve stimülasyonu python kodunuzda senkronize etmektir. Yukarıdaki diziyi pompalama bir PPL yapılan veya pompa programı dil dosyası ve bir kez yüklenebilir O

.

pompa kılavuzun arka örneği PPL dosyaları var ve ilgilendiğiniz olabilir örnek Örnek 2.

Geri emmek ile tekrarlanan dağıtım denir olduğunu. ben youtube olan bu konuda looooong eğitim videosu yapılmış olur gibi

. Pompaların nasıl çalıştığını, pompanın programlama dilinin nasıl çalıştığını ve pompa programlarının nasıl yükleneceğini açıklamaya yardımcı olabilir.

+0

Merhaba tim, yanıtlama için teşekkürler ve SO hoş geldiniz. Sorumu, ne yapmaya çalıştığımı eklemek için güncelledim. (btw - Jason'ın nedeni "de-spam" idi. http://stackoverflow.com/posts/27209062/revisions - e-postaları/web sitelerini yayınlama, sadece yorum bölümünde iletişim kurma) – broinjc

+0

yine de - özgürlüğü aldım e-posta gönderme;) – broinjc

+0

Arka taraftaki TTL bağlantısını kullanıyorum, btw, rs-232 bağlaçlarını değil. Aynı komutları kullanır mıyım? – broinjc