General Purpose Interface Bus の略で、主に計測機器の絡む通信で使われる規格。
 
 *所感 [#m0f860f2]
 
 -長い歴史を持ち、
 -特定分野以外では殆ど見ることなく、
 -特定の分野では「業界標準」の地位にあり、コツコツと進化している
 
 というあたりがFORTRANと同じ匂いがする。今から学ぼうとした時に、知識・資料集めに一苦労するという点まで似ている。
 
 自分のやりたい制御は、対象の計測機器のマニュアルとにらめっこしながら考える必要があるので、GPIB通信の規格だけを知っていても何もできない。しかしGPIBでは凝った機能が幾つかあって、それらの詳細なんかもマニュアルにズラズラ並んでいたりするので、結局のところ計測制御のためにはある程度GPIBそのものについても知っておく必要がある。
 
 「凝った機能」とは、データの送受信に使われるパラレルの信号線の他に、命令終了や制御要求の信号線が独立に用意されていたり、汎用のコマンドがあったりする点である。しかしこれらへの応答なんかは機器によってマチマチだったりするので注意を要する。[[National Instruments:http://ni.com/]]のMeasurement and Automation Explorerなるソフトが「GPIBプログラミングをする前に、ぼくを使って計測機器とはなしをしよう!」というノリだったので試してみたが、目当ての装置からの応答が全くなく、故障を心配したといういきさつがあった。本来電源投入時の状態に戻す汎用コマンドであるデバイスクリアという命令があるのだが、原因はその装置がその命令に対してfreezeしてしまうからであった。
 
 GPIBという規格が悪いのか、妙な実装をした装置メーカーが悪いのかは判断がつかないが、いずれにせよそのおかげで随分な気力と時間を消費してしまったので、私のGPIBに対する印象は悪くなってしまった。あとケーブルが固くかさばるのも嫌いだ。
 
 でも、ある程度の機能を持つ計測機器にはかなりの確率で装備されていることと、数珠つなぎに装置同士を接続できるのはとても便利だと思う。上記の時間の浪費にしても、結局私の知識不足も原因の一端であるので、ちゃんとした知識を身につければ今後はウハウハのGPIBライフが待っていると信じて、現在頑張って場数を踏んでいる。
 
 *link [#l9279f6e]
 
 
 **基本 [#bc20b8ee]
 [[LabVIEW World:http://www.ocs-lv.co.jp/LabVIEW/]]にはGPIBに限らず、LabVIEWに関する有益な情報が沢山ある。
 -[[GPIB:http://www.ocs-lv.co.jp/LabVIEW/Sub3_1.htm]]
 -[[GPIBを使ってみよう:http://www.ocs-lv.co.jp/LabVIEW/Sub4_11.htm]]
 -[[GPIBの欠点:http://www.ocs-lv.co.jp/LabVIEW/Sub3_5.htm]]
 
 [[National Instruments:http://ni.com/]]の解説も参考になる。しかし、製品にこういった文書が付属していないのはとても残念だ(それとも私の探し方が悪いだけなのだろうか?)
 -[[GPIB Controllers:http://zone.ni.com/devzone/conceptd.nsf/webmain/2B206E4705DBC17486256816006EBA5F]]
 -[[GPIB Messages:http://zone.ni.com/devzone/conceptd.nsf/webmain/C22B1B6801D2BBE98625680F00535F1D]]
 
 全貌を眺めるには[[The MathWorks:http://www.mathworks.com/]]の[[GPIB Overview:http://www.mathworks.com/access/helpdesk/help/toolbox/instrument/ch_gpib2.html]]が役に立った。
 
 **サービスリクエスト [#m641c54b]
 GPIBにはサービスリクエストなる信号線(SRQ)があり、重要な役割を担っている(のだそうだ。私の用途で必要になったことはない)。これの理解には、[[National Instruments:http://ni.com/]]の文書が役に立った。
 -[[Using Service Requests in your GPIB application:http://zone.ni.com/devzone/conceptd.nsf/webmain/CF4FCC64D7AE6918062569DF00630630]]
 -[[Using Instrument Status Registers and Service Requests in LabVIEW:http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=C99424CC48EC1273E034080020E74861&p_node=DZ52354&p_source=external]]
 -[[Serial Polling and SRQ Servicing with NI-488.2 Software and LabVIEW:http://zone.ni.com/devzone/conceptd.nsf/webmain/CE6220D5E6EFF2AD86256804006B0389]]
 -[[Parallel Polling with NI-488.2 Software:http://zone.ni.com/devzone/conceptd.nsf/webmain/0720D95371CDE550862568040056632A]]