2012年
1月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2012-01-05 測定装置のインターフェース

_ USBTMCを使ってみた

PCと測定装置の間のインターフェースとしては、少し前まではGPIBが一般的だった。しかし、最近ではGPIBは使えない装置も増えてきた。代わりに増えてきたのがLANかUSBである。LANの場合には、IPの設定や測定装置用のLANの構築が面倒だ。一方USBはどのようにPCに認識されるかが問題である。特にLINUXで制御する場合には問題である。

いろいろと調べていたら、USBTMCという規格があるらしく、LINUXでも標準で対応しているようだ。そこで、近くにあったagilentのUSBを持つ装置をubuntuで試してみた。USBケーブルとつなぐと、/dev/usbtmc0ができて、これをIOとして読み書きできるようだ。そこで、rubyから"r+"でopenしてコマンドを書き込んでみると、いくつかのコマンドは受け付けたが、エラーが返ってくるときもある。いろいろと試してみたら、コマンドを送ったあとで、flushすると、うまく動くようになった。これで、基本的にはLINUXマシンのUSBから装置の制御ができる。

しかし、考慮しなければいけない問題も残っている。まず、USBの装置が何台かあった場合に、それをどのように区別するかである。一つの方法としては、*IDN?をつかって、装置を特定して、プログラムの上からそれを割り当てることができる。また、ファイルのアクセスの権限がrootにしか無いので、これをどうするかである。今回はchownして使ったが、それはあまり良い方法とは言えない。ケーブルを接続するときにできるデバイスなので、あらかじめ権限を変えておくわけには行かないし。おそらく何か設定する方法があるのだろうから、それを探さないと。

USBを使った測定システムを構築することが、これでずいぶん簡単になった。まだあまりUSBの装置は手元に無いが、今度装置を買うときには、GPIBが無くてもUSBがあれば、気にせずに買うことができる。