こんばんは!
帰宅したら、にゃんこ達がラグの上に盛大にお醤油をこぼしていて、ちょっとショッキングなゆってぃです。
洗って落ちるとかいう生ぬるいレベルの範囲ではなかったので、泣く泣く処分を決めました。

でもね、これは

テーブルの上に醤油を置いておいた僕がいけないんです。

ちゃんとフタは閉めてたのですが、にゃんこは何が起こすかわからないので…(涙)

まだ買って数ヶ月しか経ってないのになぁ(T_T)



さて、今日は昨日のVISAの続きです。
というほど書く内容もないのですが、大まかな使い方はわかりました。

基本的には
<接続> → <通信> → <接続終了>
という流れのようです。

それでは、さっそくひとつひとつ見ていきましょう。

<接続>
viOpenDefaultRM()関数でVISAシステムを起動し、viOpen()関数で接続を確立します。
この時、viOpen()の引数として、測定器を特定するためのアドレス情報などを渡します。
その後、viSetAttribute()関数で接続の属性を決めます。タイムアウトなどもここで設定します。


<通信>
接続が完了したら、viPrintf()関数で、測定器にコマンド(クエリ)を投げます。
文字列は通常のprintf()フォーマットで記述します。
これらのコマンドはSCPI(スキッピー)と呼ばれるコマンドセットに定義されており、測定器の機種に関係なく送ることが出来るコモン部分のコマンドと、機器別のコマンドに分かれています。
機種別のコマンドは、各測定機器のヘルプをご参照ください。

なお、SCPIに関する概要はwikipediaに書かれていますので、合わせてご参照ください。
SCPIとは(英語)
IEEE488(SCPIのみに関する説明ではないですが、日本語)

また、投げるコマンドの最後に"?"を付けた場合は、機器が該当するデータを応答として返します。
(※全てのコマンドに応答するわけではありません。?が付けられるコマンドを知るには、接続機種のヘルプをご覧下さい。)
例えば、ある測定値の最大値を知りたい場合などに用います。
なお、この応答を受け取る際には、viScanf()関数を使用します。
このフォーマットも、scanf()関数と同じですので、簡単に使用することが出来ます。

つまり、viScanf()を使用する前には、必ずviPrintf(io, "xxx?")のように、問い合わせを行う必要があります。
もし、応答がこない場合(正しい問い合わせコマンドが投げられていない場合)は、viSetAttribute()関数で指定した時間だけ待ち、その後はエラーとして先に進みます。

<接続終了>
通信が終わったら、viClose()関数を用いて、接続を解放することを忘れずに!

以上が、VISAライブラリを用いた測定器のリモートコントロール方法です。
実際に組んでいただければわかりますが、驚くほど簡単に、PCから測定器を操作することが出来ます。
ログ取りも簡単に出来るし、開発段階でも大いに役立ってくれそうです^^

最後までお読みいただいて、ありがとうございました!(感謝)
関連記事
スポンサーサイト
コメント
コメントの投稿
トラックバック URL
トラックバック
ご訪問者様
プロフィール

ゆってぃ

Author:ゆってぃ
経歴7年の組み込み系・制御系エンジニアです。
("ど素人"という文言は取りました…笑)
ソフトウェア開発経験ゼロの状態から、なんとか実務がこなせるようになってきた現在に至るまでの経験を、備忘録代わりに綴っていきたいと思います。
入門者の方、大歓迎!
(上級者の方、ごめんなさい…)

あと、ブログには全然関係ないですが、Bumpy Headというバンドのギターをやっています。
ライブ情報なんかも書いたりすることがあるので、その時に「行ってもいいよ~」といった感じのコメントを戴けると、泣いて喜びます(泣)
ブログ読んでくださってる方なら、チケット代サービスしちゃいます!

最後に…滅多に流用することは無いでしょうが、このブログに書かれているソースは、特に指定の無い限りMITライセンスとします。ただし、一部それ以外のものもございますのでご注意下さい。
※ブログのリンク先にあるコードに関しては、リンク先のポリシーに従ってください。

最新記事
最新コメント
カテゴリ
RSSリンクの表示
メールフォーム

名前:
メール:
件名:
本文:

twitter
リンク
ブロとも申請フォーム
スポンサードリンク