Project

General

Profile

Feature #1227

Updated by Izerg over 4 years ago

Существует огромное множество измерительных приборов и механизмов    для решения как лабораторных так и производственных задач.Часто процесс измерения похож на рутину - тысячи измерений, сотни условий, десятки режимов. Доверять такие задачи человеку нельзя - результат будет непредсказуем, необходима автомотизация процесса измерения.Для управления процессом измерения и удаленного получения данных с прибора используют интерфейсы связи.Фактически стандатным интерфейсом систем    измерения в    промышленности     является IEEE-488 GPIB.  
 "Описание интерфейса GPIB" https://ru.wikipedia.org/wiki/IEEE-488#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5 

 Сегодня интерфейс GPIB медленно заменяется более современными USB, Ethernet. Однако, для управления имеющимися в распоряжении приборами по-прежнему требуется наличие GPIB-контроллера для выполнения задач контроля и управления. 

 В большенстве случаев, для связи сприбором используется обычный ПК в настольном либо промышленном исполнении, под управлением Windows или Linux систем, и совсем редко MAC OS. Большинство производителей поддерживают интерфейс GPIB с помощью отдельных утилит и библиотек для своих    программных продуктов.  

 Использование GPIB совместно с стандартным адаптером GPIB-USB не вызывает проблем или затруднений в Windows-среде, в Linux все часто заканчивается многими часами проб и ошибок, если ваш дистрибутив не поддерживается официально, либо нет опыта в использовании библиотек GPIВ. Попробуем разобраться в работе GPIB под Linux на примере популярного микрокомпьютера Raspberry Pi. 

 h2. Адаптер интерфейса National Instruments GPIB-USB-HS h2. 
 Рассмотрим подробнее аппаратную часть адаптера интерфейса, который будем использвать. Существует множество версий USB-GPIB адаптеров от National Instruments. Будем использвать "GPIB-USB-HS":http://sine.ni.com/nips/cds/view/p/lang/en/nid/201586, хотя есть более новая версия адаптера "GPIB-USB-HS+":http://sine.ni.com/nips/cds/view/p/lang/en/nid/212429, с ценой около ~600 USD. 

 " !http://xdevs.com/doc/National/GPIB-USB-HS/img/overview_1.jpg!":http://xdevs.com/doc/National/GPIB-USB-HS/img/overview.jpg 

 Документация кратко описвает спецификацию и основные этапы подключения адаптера "datasheet":http://xdevs.com/doc/National/GPIB-USB-HS/GPIB-USB-HS_DS.pdf. 
 h3. Особенности адаптера: 

 * специализированный ASIC обеспечивает максимальную производительность интерфейса IEEE 488.2  
 * высокоскоростной GPIB контроллер 
 * подключение к приборам без специального кабеля  
 * скорость передачи данных до 1.8 MB/s (IEEE 488.1) и до 7.9 MB/s (HS488) 
 * наличие лицензии для    NI-488.2 



 " !http://xdevs.com/doc/National/GPIB-USB-HS/img/top_1.jpg!":http://xdevs.com/doc/National/GPIB-USB-HS/img/top.jpg " !http://xdevs.com/doc/National/GPIB-USB-HS/img/chips_1.jpg!":http://xdevs.com/doc/National/GPIB-USB-HS/img/chips.jpg 

 Основной микроконтроллер для связи с USB - Cypress CY7C68013A "EZ-USB® FX2LP™ USB Microcontroller High-Speed USB Peripheral Controller":http://www.cypress.com/documentation/datasheets/cy7c68013a-cy7c68014a-cy7c68015a-cy7c68016a-ez-usb-fx2lp-usb построен на ядре 8051.  

 GPIB часть интерфейса    построена на специализировннном ASIC от National Instruments - TNT5004-AB, контроллер может использовать как интерфейсы общего назначения, так и PCI. Увы, документацию можно получить только под NDA,    однако доступна документация для аналогичного контроллера "TNT5002-AB":http://xdevs.com/doc/National/GPIB-USB-HS/TNT5002.pdf, которая прольет свет на внутреннее устройство контроллера.  
 В схеме адаптера также присутствует памятьдля хранения данных    "Cypress CY7C1399BN":http://www.cypress.com/part/cy7c1399bnl-12zxct 256-Kbit (32K x 8) SRAM. Частота системного генератора 40 МГц.  

 !http://xdevs.com/doc/National/GPIB-USB-HS/img/fx2lp.png! 
 h2. Структурная схема интерфейсного контроллера. 

 В схеме адаптера присутствуют микросхемы "Texas Instruments TLC7733I":http://www.ti.com/lit/ds/symlink/tlc7733.pdf и "Maxim MAX804CSA":http://www.maximintegrated.com/en/products/power/supervisors-voltage-monitors-sequencers/MAX804R.html супервизоры питания, а также несколько микросхем логики. Монтаж элеметнов печатной платы выполнен с одной стороны, вторая сторона - пуста.  

 Для сравнения привведем фото предыдущей версии адаптера GPIB-USB-B, которая использует Cypress FX и National Instruments TNT4882C-BT GPIB контроллеры. Документация на контроллер TNT4882*C* так же предоставляется под NDA, но доступна версия TNT4882 без буквы "С"    "datasheet here":http://xdevs.com/doc/National/GPIB-USB-B/TNT4882.pdf  

 !http://xdevs.com/doc/National/GPIB-USB-B/web.jpg! 

 Фото GPIB-USB-HS. Пластиковая крышка с металлизированным покрытием для защиты от ЭМИ. 

 " !http://xdevs.com/doc/National/GPIB-USB-HS/img/back_1.jpg!":http://xdevs.com/doc/National/GPIB-USB-HS/img/back.jpg " !http://xdevs.com/doc/National/GPIB-USB-HS/img/side_1.jpg!":http://xdevs.com/doc/National/GPIB-USB-HS/img/side.jpg 


 Достаточно железа, давайте погрузимся в мир Linux. 

 Проверяем Наличие ПО для Linux - заявлена поддержка RedHat, Scientific Linux and SUSE. В наших планах использование GPIB совместно с "Raspberry Pi":https://www.raspberrypi.org под управлением Debian. 
 h2. Raspberry Pi setup 

 Вся, предоставленная ниже информация проверялась на платформе    Raspberry Pi 1 model B revision 2, 
 использовалось подключение к интерфейсу USB. Версия операционной системы платы "RASPBIAN Debian Wheezy":https://www.raspberrypi.org/downloads/,    с дополнительными настройками интерфейса I2C описанными в "Настройка I2C":/article/ddr4s/. если вы хотите установить систему "с чистого листа" на пустую SD карту, рекомендуем воспользоваться описанием: "описание установки ОС":/article/ddr4s/. 

 Приводим пошаговую инструкцию по подключению GPIB-USB-HS к Raspberry Pi. 
 В качестве руководства к действию мы импользовали тему форума    "Forum thread on EEVBlog.com" пользователя    *bingo600*. Этот материал оказал большую помошь и позволил сократить время на установку. *bingo600* использовал подключение к приборам Beiming S82357 и Agilent 82357B, но основной ход установку    аналогичен нашему. 

 #1 Пред началом установки настоятельно рекомендуется обновить все пакеты. все команды выполняются с правами администратора, иначе необходимо использовать *sudo*. 

 pre. apt-get update 

 #2 Установим образ ядра Linux. Поскольку linux-gpib версии модулей отличаются для разных версий ядра, в нашем случае - версии должны совпаадть. в нашем случае используется версия 3.18.0. 

 pre. apt-get install linux-image-rpi-rpfv 

 В каталоге /boot присутствуют два файла *initrd.img-3.18.0-trunk-rpi* и *vmlinuz-3.18.0-trunk-rpi* 

 #3 Для загрузки ядра, отличного от "Foundation kernel" в конец файла boot/config.txt добавим запись:  

 pre. ************* SNIP *********************** 
 # Set params for "raspbian debian-style kernel" boot 
 kernel=vmlinuz-3.18.0-trunk-rpi 
 initramfs initrd.img-3.18.0-trunk-rpi followkernel 

 #4 Дважды проверьте имена файлов и их наличие, иначе Raspberry Pi не загрузится. если допущена ошибка - это легко исправить. Достаньке SD карту из слота, поместите ее в ваш РС и измените файл config.txt, он доступен с файловой системы FAT в любой операционной среде, в отличие от остальных linux разделов Raspberry    SD карты. 

 #5 После загрузки проверим версию ядра системы и установим необходимые пакеты:  

 After success with kernel change and boot, we can check kernel version and install header package: 

 pre. pi@tin ~ $ uname -a 
 Linux tin.pi 3.18.0-trunk-rpi #1 PREEMPT Debian 3.18.5-1~exp1+rpi16 (2015-03-28) armv6l GNU/Linux 
 pi@tin ~ $ sudo apt-get install linux-headers-rpi-rpfv 

 #6 поскольку мы будем компилировать некоторое ПО позже    установим все необходимые для этого библиотеки, что бы убедится что зависимости выполнены правильно.  

 Since we will be compiling lot of stuff later, worth to preinstall all packages and libraries, to make sure dependency are met correctly. 

 pre. apt-get install build-essential texinfo texi2html libcwidget-dev tcl8.4-dev tk8.4-dev libncurses5-dev libx11-dev binutils-dev bison flex libusb-1.0-0 libusb-dev libmpfr-dev libexpat1-dev tofrodos subversion autoconf automake libtool 

 #7. Перейдем непосредственно к инсталяции linux-gpib. Входим в Now install linux-gpib itself. Enter home директорию и запускаем: directory and run next: 

 pre. root@tin:/home/# mkdir linux-gpib   
 root@tin:/home/# cd linux-gpib 
 root@tin:/home/linux-gpib# svn checkout svn://svn.code.sf.net/p/linux-gpib/code/trunk linux-gpib-code 
 A      linux-gpib-code/linux-gpib 
 A      linux-gpib-code/linux-gpib/test 
 A      linux-gpib-code/linux-gpib/test/runtest 
 ... 
 ... 
 root@tin:/home/linux-gpib# cd linux-gpib-code/linux-gpib/ 

 #8 На этом этапе мы имеем    последнюю версию At this moment we have latest linux-gpib из from SVN и мы готовы настроить и установить ее. and ready to configure and install it. 

 pre. root@tin:/home/linux-gpib# cd linux-gpib-code/linux-gpib/ 
 root@tin:/home/linux-gpib/linux-gpib-code/linux-gpib# ./bootstrap 
 libtoolize: putting auxiliary files in `.'. 
 libtoolize: copying file `./ltmain.sh' 
 libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. 
 libtoolize: copying file `m4/libtool.m4' 
 libtoolize: copying file `m4/ltoptions.m4' 
 libtoolize: copying file `m4/ltsugar.m4' 
 libtoolize: copying file `m4/ltversion.m4' 
 libtoolize: copying file `m4/lt~obsolete.m4' 
 configure.ac:102: installing `./compile' 
 configure.ac:39: installing `./config.guess' 
 configure.ac:39: installing `./config.sub' 
 configure.ac:20: installing `./install-sh' 
 configure.ac:20: installing `./missing' 
 examples/Makefile.am: installing `./depcomp' 
 ... 
 ... 

 #9 linux-gpib использует заголовочные файля ядра, поэтому версия библиотеки и ядра должны совпадать. ДЛя того чтобы убедится, что установка прола успешно выполним:  

 is using kernel headers, which version must match our kernel version. So make sure those installed as well: 

 pre. root@tin:/home/gpib/linux-gpib-3.2.21# apt-get install linux-headers-3.18.0 
 Reading package lists... Done 
 Building dependency tree 
 Reading state information... Done 
 ... 
 ... 
 The following NEW packages will be installed: 
   linux-headers-3.18.0-trunk-all linux-headers-3.18.0-trunk-all-armhf 
   linux-headers-3.18.0-trunk-rpi2 
 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. 
 Need to get 857 kB of archives. 
 After this operation, 6,807 kB of additional disk space will be used. 
 Do you want to continue [Y/n]? Y 
 ... 
 ... 
 Fetched 857 kB in 2s (365 kB/s) 
 Selecting previously unselected package linux-headers-3.18.0-trunk-rpi2. 
 (Reading database ... 97166 files and directories currently installed.) 
 Unpacking linux-headers-3.18.0-trunk-rpi2 (from .../linux-headers-3.18.0-trunk-rpi2_3.18.5-1~exp1+rpi16_armhf.deb) ... 
 Selecting previously unselected package linux-headers-3.18.0-trunk-all-armhf. 
 Unpacking linux-headers-3.18.0-trunk-all-armhf (from .../linux-headers-3.18.0-trunk-all-armhf_3.18.5-1~exp1+rpi16_armhf.deb) ... 
 Selecting previously unselected package linux-headers-3.18.0-trunk-all. 
 Unpacking linux-headers-3.18.0-trunk-all (from .../linux-headers-3.18.0-trunk-all_3.18.5-1~exp1+rpi16_armhf.deb) ... 
 Setting up linux-headers-3.18.0-trunk-rpi2 (3.18.5-1~exp1+rpi16) ... 
 Setting up linux-headers-3.18.0-trunk-all-armhf (3.18.5-1~exp1+rpi16) ... 
 Setting up linux-headers-3.18.0-trunk-all (3.18.5-1~exp1+rpi16) ... 

 #10 Запускаем    Now run *./configure* в    in linux-gpib директории системного окружения.  

 directory to prepare it for our system environment. 

 pre. root@tin:/home/linux-gpib/linux-gpib-code/linux-gpib# ./configure 
 checking for a BSD-compatible install... /usr/bin/install -c 
 checking whether build environment is sane... yes 
 checking for a thread-safe mkdir -p... /bin/mkdir -p 
 checking for gawk... no 
 checking for mawk... mawk 
 checking whether make sets $(MAKE)... yes 
 checking whether to enable maintainer-specific portions of Makefiles... no 
 checking build system type... armv6l-unknown-linux-gnueabihf 
 checking host system type... armv6l-unknown-linux-gnueabihf 
 checking Linux kernel directory... ok 
 checking Linux kernel compile flags... Makefile:10: *** mixed implicit and normal rules: deprecated syntax ok 
 checking for gcc... gcc 

 #11 Компилируем и устанавливаем Compile and install linux-gpib 

 pre..  
 root@tin:/home/gpib/linux-gpib-3.2.21# make 
 make    all-recursive 
 make[1]: Entering directory '/home/gpib/linux-gpib-3.2.21' 
 Making all in include 
 make[2]: Entering directory '/home/gpib/linux-gpib-3.2.21/include' 
 make    all-am 
 make[3]: Entering directory '/home/gpib/linux-gpib-3.2.21/include' 
 make[3]: Nothing to be done for 'all-am'. 
 ... 
 ... 
 root@tin:/home/gpib/linux-gpib-3.2.21# make install 

 h2. Настроки для Configuration for linux-gpib и интерфейса and interfacing 

 После того, как все вышеописанные действия выполнены без ошибок, подключаем адаптер    After everything successfully installed without errors, let's connect GPIB-USB-HS к adapter to Raspberry Pi и попробуем с ним "пообщатся".  

 and try to talk with it. 

 p(#error_note). Убедитесь, что Raspberry Make sure your Pi запитана от источника как минимум powered with good high-current USB cable and +5 VDC power supply with at least 1 А, а подключение выполнено хорошим кабелем. Поскольку Amp , as NI GPIB-USB-HS требует мощного питания - подключение дешевым кабелем is taking some decent amount of power and with cheap USB к порту cable connected to PC может вызваь нестабильность в работе, например светодиоды port it was causing unstable operation, LAN    непрерывно моргают, ничего не работает, а падение напряжения на кабеле - слишком большое. 


 Проверить соединене с адаптером просто, достаточно запустить *lsusb*, что бы увидеть какие устройства подключены к USB: LEDs on Pi were blinking like crazy and nothing worked, as voltage drop too much.  

 Checking interface connection is simple, just run *lsusb* to see which devices are present on USB bus: 

 pre..  
 root@tin:/etc# lsusb 
 Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
 Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
 Bus 001 Device 004: ID 3923:709b National Instruments Corp. GPIB-USB-HS 

 p. в отличие от старого адаптера Unlike old GPIB-USB-B, который требовал загрузку firmware which need Cypress FX , firmware upload after connection, GPIB-USB-HS не требует каких либо загрузок и прошивок, а готов к работе сразу после включения "Из коробки" does not need any firmware uploads and ready to work right from the box. 
 Запускаем модуль ядра с Let's load kernel module with *modprobe*: 

 pre..  
 root@tin:/home/gpib/linux-gpib-3.2.21# modprobe ni_usb_gpib 
 root@tin:/home/gpib/linux-gpib-3.2.21# 

 p. на данном этапе не должно быть ошибок, это можно проверить с помощью *lsmod* следующим образом: Should be no error messages here. Can check if module was correctly used as well by *lsmod*. 

 pre..  
 root@tin:/home/gpib/linux-gpib-3.2.21# lsmod 
 Module                    Size    Used by 
 i2c_dev                   6970    0 
 i2c_bcm2708               5306    0 
 ni_usb_gpib              26063    0 
 gpib_common              31031    1 ni_usb_gpib 

 p. Пробуем использовать Now I tried using gpib_config tool для проверки, но получаем неприятную ошибку:  

 to test operation, but got nasty error instead: 

 pre..  
 root@tin:/home/gpib/linux-gpib-3.2.21# gpib_config 
 failed to configure boardtype: ni_usb_gpib 
 failed to configure board 
 main: Invalid argument 

 p. Oops... После нескольких попыток, обнаруживаем, что ошибка связана с отличающимися именами текущего драйвера и модуля ядра.    Исправляем After some amount of trial and error, and googling similar issues on web, answer is simple: this is due to actual driver called different name compared to kernel module.  
 After modify /etc/gpib.conf : like below: 

 pre..  
 board_type = "ni_usb_b">/* type of interface board being used */ 
     
 p. Проверяем, теперь все должно работать: Everything working well now: 

 pre..  
 root@tin:/home/gpib/linux-gpib-3.2.21# gpib_config 
 root@tin:/home/gpib/linux-gpib-3.2.21#  

 p. Ошибок нет! адаптер готов к работе. No errors, yey! Let's test how it works now. 

 h2. Проверяем работу с Testing GPIB интерфесом: operation 

 Для проверки подключаем адаптер To test I had NI GPIB-USB-HS к connected to "Keithley 2002 bench digital multimeter":/review/kei2002/. Прибор настроен на 17-й адрес GPIB. Instrument is configured with GPIB Address = 17. 

 pre..  
 root@tin:/# ibtest 
 Do you wish to open a (d)evice or an interface (b)oard? 
         (you probably want to open a device): d 
 enter primary gpib address for device you wish to open [0-30]: 17 
 trying to open pad = 17 on /dev/gpib0 ... 
 You can: 
         w(a)it for an event 
         ... 
         ... 
         (r)ead string 
         perform (s)erial poll (device only) 
         change (t)imeout on io operations 
         request ser(v)ice (board only) 
         (w)rite data string 
 : w 
 enter a string to send to your device: *IDN? 
 sending string: *IDN? 

 gpib status is: 
 ibsta = 0x2100    < END CMPL > 
 iberr= 0 

 ibcnt = 6 
 You can: 
         w(a)it for an event 
         ... 
         ... 
         (r)ead string 
         perform (s)erial poll (device only) 
         change (t)imeout on io operations 
         request ser(v)ice (board only) 
         (w)rite data string 
 : r 
 enter maximum number of bytes to read [1024]: 1024 
 trying to read 1024 bytes from device... 
 received string: 'KEITHLEY INSTRUMENTS INC.,MODEL 2002,1167961,A09    /A02' 
 Number of bytes read: 57 
 gpib status is: 
 ibsta = 0x2100    < END CMPL > 
 iberr= 0 

 ibcnt = 57 

 p. Как видно выше - результат проверки - положительный, интерфейс работает, данные передаются от\к прибору корректно. 

 Now we can confirm that interface is working, and data send/received correctly.  

 h2. Python-приложение для связи Python-application to talk GPIB с from Raspberry Pi 


 Вот и пришло время написать простую программу для общения с нашими "инструментами" через GPIB. 
 в качестве языка программирования выберем Python. ... тут поток сумбурных мыслей пропущен, я подумаю, что здесь написать. 


 >It's 

 It's time to write some simple program to talk with our instruments over GPIB. 
 >One One of easy choices would be using Python, as this high-level language is very easy to write data-logging >programs programs and format data, without worry much about low-level coding. 

 Для использования To use GPIB в in Python нужна we need to have python-dev библиотека установленная и работающая: library installed and working: 

 pre..  
 root@tin:/# apt-get install python-dev 
 Reading package lists... Done 
 Building dependency tree 
 Reading state information... Done 
 The following extra packages will be installed: 
   libssl-dev libssl-doc python2.7-dev 
 The following NEW packages will be installed: 
   libssl-dev libssl-doc python-dev python2.7-dev 
 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 
 Need to get 2,699 kB/31.4 MB of archives. 
 After this operation, 41.4 MB of additional disk space will be used. 
 Do you want to continue [Y/n]? Y 
 .... 
 Setting up python2.7-dev (2.7.3-6+deb7u2) ... 
 Setting up python-dev (2.7.3-4+deb7u1) ... 

 p. Python-dev библиотеке нужен доступ к    library is needed to access GPIB адаптеру. module. 
 Теперь мы можем установить Now we can install python egg для подключения to include *Gpib* модуля совместно с module with our python system environment: 

 pre..  
 root@tin:/home/linux-gpib-code/linux-gpib/language/python# python ./setup.py    install 
 running install 
 running build 
 running build_py 
 creating build 
 creating build/lib.linux-armv6l-2.7 
 copying Gpib.py -> build/lib.linux-armv6l-2.7 
 running build_ext 
 building 'gpib' extension 
 creating build/temp.linux-armv6l-2.7 
 gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I../../include -I/usr/include/python2.7 -c gpibinter.c -o build/temp.linux-armv6l-2.7/gpibinter.o 
 gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-armv6l-2.7/gpibinter.o -L../../lib/.libs -lgpib -lpthread -o build/lib.linux-armv6l-2.7/gpib.so 
 running install_lib 
 copying build/lib.linux-armv6l-2.7/Gpib.py -> /usr/local/lib/python2.7/dist-packages 
 copying build/lib.linux-armv6l-2.7/gpib.so -> /usr/local/lib/python2.7/dist-packages 
 byte-compiling /usr/local/lib/python2.7/dist-packages/Gpib.py to Gpib.pyc 
 running install_egg_info 
 Writing /usr/local/lib/python2.7/dist-packages/gpib-1.0.egg-info 

 p. Простой тест поможет проверить доступ к прибору, Для настроек используем Simple Python test can help to check access, for multimeter sitting on GPIB    адрес    17.Тест отправляет"IDN?" и запрашивает чтение bus with address 17. Test is simple sending IDN? request and reading back 100 байт: bytes: 

 pre..  
 root@tin:/home/linux-gpib/linux-gpib-code/linux-gpib/language/python# python 
 Python 2.7.3 (default, Mar 18 2014, 05:13:23) 
 [GCC 4.6.3] on linux2 
 Type "help", "copyright", "credits" or "license" for more information. 
 >>> import Gpib 
 >>> inst = Gpib.Gpib(0,17) # Device address 17 
 >>> inst.write("*IDN?") 
 >>> inst.read(100) # read 100 bytes 
 'KEITHLEY INSTRUMENTS INC.,MODEL 2002,1167961,A09    /A02    \n' 
 >>>  

 p. Надеемся, эта статья поможет использовать маленькую, но мощную плату Hope this article help to use little, but mighty Raspberry Pi совместно с промышленным стандартным интерфейсом GPIB. Размер и возможности микрокомпьютера, позволяют интегрировать его совместно с имеющимися with industry standard GPIB инструментами в производство. Такой подход позволяет добавлять новые вычислительные мощности и интерфейсы (LAN, WEB...), осуществлять удаленное наблюдение и управление, отпадает необходимость в больших громоздких ПК. instrumentation. Size and capabilities of small microcomputer, such as Raspberry Pi can make something wild possible, such as integrating it into old GPIB-interfaced instruments to bring modern computing power and interfacing, such as interactive web via LAN port or even having instrument on remote location, controlled thru internet. No need big bulky computer with Windows tied to it. 

 pre..  
 # xDevs.com Python test GPIB app 
 # http://xdevs.com/guide/ni_gpib_rpi/ 
 import sys 
 import Gpib 
 inst = Gpib.Gpib(0,17) # Instrument GPIB Address = 17 
 inst.write(":DISP:WIND:TEXT:DATA 'Raspberry Pi GPIB;)'") 
 inst.write(":DISP:WIND2:TEXT:DATA 'xdevs.com/guide/ni_gpib_rpi'") 
 inst.write(":DISP:WIND:TEXT:STAT ON") 
 inst.write(":DISP:WIND2:TEXT:STAT ON") 

 p. " !http://xdevs.com/doc/Keithley/2002/photo/xDevs.com/kei2002_rpi_1.jpg!":http://xdevs.com/doc/Keithley/2002/photo/xDevs.com/kei2002_rpi.jpg 

 Если у вас есть какие-либо замечания и предложения If you have any comments and suggestions - всегда готовы выслушать их в коментариях. feel free to join in comments!

Back