C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: GPIB制御


(過去ログ 68 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■39484 / inTopicNo.1)  GPIB制御
  
□投稿者/ 匿名希望 (3回)-(2009/08/09(Sun) 23:15:34)

分類:[VB.NET/VB2005 以降] 

始めまして。
私は、Agilent様のスペクトラムアナライザーを使用しています。
スペアナを使用した際に、送信電力を測っています。

そこで質問なのですが、測定した結果をVBを使用し、Excelに測定結果を表示するというプログラムを作成したいと思っています。

GPIB制御のコマンドがあるのですが、それはどの様な感じで打てばいいのでしょうか?
VBでGPIBを制御するプログラミングの入力の仕方がわからないのです。

入力例などを教えていただけませんか?

また、C言語が使用できない環境なので、VBしか使えないのですが、プログラムを組むことは可能なのでしょうか。
引用返信 編集キー/
■39486 / inTopicNo.2)  Re[1]: GPIB制御
□投稿者/ オショウ (298回)-(2009/08/09(Sun) 23:46:22)
No39484 (匿名希望 さん) に返信
> 始めまして。
> 私は、Agilent様のスペクトラムアナライザーを使用しています。
> スペアナを使用した際に、送信電力を測っています。
>
> そこで質問なのですが、測定した結果をVBを使用し、Excelに測定結果を表示するというプログラムを作成したいと思っています。
>
> GPIB制御のコマンドがあるのですが、それはどの様な感じで打てばいいのでしょうか?
> VBでGPIBを制御するプログラミングの入力の仕方がわからないのです。
>
> 入力例などを教えていただけませんか?
>
> また、C言語が使用できない環境なので、VBしか使えないのですが、プログラムを組むことは可能なのでしょうか。

  まず、GP-IBのボードはどこのメーカーの型式のものをお使いですか?
  そのボードのドライバー等にサンプルがついてませんか?

  私は、インターフェース社のGP-IBボードやコンテックのボード
  ラトックやケースレーのUSB-GP-IB変換アダプタ使ってGP-IB通信
  していますので・・・

  Agilentの超高速A/DやADVANTECのA/Dや電圧発生器の制御・サンプリング
  ESPECの温度槽通信にGP-IB通信のソフト作ってますので、あなたがやり
  たいことは、十分に解ります。

  で、VB.NETでと言うことでもC言語使わないでもAPIが公開されているは
  ずですので、可能です。

  ただし、シリアルポール・パラレルポールの割り込み使った場合は、.NET
  の場合、大抵できません。.NETの構造的問題でです。

  が、普通に同期通信でサンプリングデータを取得するならば何の問題も
  無いかと思います。

  問題なのは、Excelへの出力かと・・・
  CSV出力ならテキストファイル生成なので問題ないですが、Excelを起動
  し、シート上に書き込んでいく場合は、Excelプロセスの制御にいろい
  ろ細工が必要・・・検索してもらえばその辺、お解りになるかと思いま
  すが。

  あと大量なデータをExcelに出力する場合、GP-IB通信よりもExcel連携
  に思わぬ時間を要する場合がありますので、その辺ご注意ください。

  私は、Excelを使わず、Excelファイルを生成できる外部コンポーネント
  を使ってますので、時間的にもExcelプロセス制御も問題にはなりません。

※ 老婆心ながら・・・
  C++ CLI使えばC言語と.NET両方使えますので、GP-IBの割り込み制御も
  問題なく書けます。結局C言語・・・が一番安全ですが、VB.NETででも
  24時間稼働のデータサンプリングで、3年ほど稼働させてますが、
  GP-IBの不具合で止まったことは2度ほど・・・
  機器側の経年劣化による故障でしたので、.NETだけでも十分に信頼性の
  あるプログラムは作れます。

以上。参考まで
引用返信 編集キー/
■39487 / inTopicNo.3)  Re[2]: GPIB制御
□投稿者/ オショウ (299回)-(2009/08/09(Sun) 23:50:47)
>>私は、Agilent様のスペクトラムアナライザーを使用しています。
>>スペアナを使用した際に、送信電力を測っています。

  因みに、そのスペアナのマニュアルにGP-IB制御関係の
  ことは記載あるはずです。

  コマンドの送信順番等も・・・

  マニュアル読まれました?

※ Agilentでは、NI社のボードを推奨品にされてますが、その辺も
  調べました?

  GP-IB通信コマンドは、NIの場合、非常に簡素でいて、難しい
  こと考えずに通信できてしまうコマンド体系になっているので・・・
  高価ですが、初心者にはよいようには思います。

以上。
引用返信 編集キー/
■39489 / inTopicNo.4)  Re[3]: GPIB制御
□投稿者/ オショウ (300回)-(2009/08/10(Mon) 00:04:13)
Agilent社のサイトを久々にのぞいてみました

SCPIのコマンドリファレンスのPDFをダウンロード
できますので、お使いの型式に該当するものを取得し
お読みになれば?

また、BenchLinkと言うソフトもデモ版がありますので
お試しになってみれば?

GP-IB以外でRS-232Cも使えるので(機種によっては無い?)
サンプリングデータ数が大量でなければ、シリアル通信
の方が、楽かも・・・

以上。
引用返信 編集キー/
■39508 / inTopicNo.5)  Re[4]: GPIB制御
□投稿者/ オショウ (302回)-(2009/08/10(Mon) 10:21:20)
GP-IBの通信の流れ・・・

※ ご使用のボードのメーカー・ライブラリに依存します

デバイスのオープン時の手順
1. SetConfigで、通信の際のデリミタ・SRQ割り込み・タイムアウト等最低限の
  設定を行う。
2. SetIfc送信
3. SetRen送信
4. Send命令で、ご使用の機器の初期化(設定)コマンドを
  文字列等で送信。必ずレスポンスを受信し、正常終了を
  確認。
5. SRQ割り込みを使う場合、
  ExecSpollしてフラグを一度リセットし、Send命令でSQR
  使用設定コマンドを送信。
  SRQ割り込みを受信する割り込みルーチンを初期化・開始
  する。

通常の通信の手順
1. Send命令でコマンド文字列を送信
2. レスポンスを受信し、コマンド送信完了の確認を行う
  ただし、機器よりデータを受信する場合は、その手順に
  従ってReceive命令で受信する。
※ 受信バイト数が解っている場合はよいのですが、不定長
  の場合、タイムアウトしないと受信から返ってこない場
  合があり、注意が必要。
※ 複数台の機器を制御している場合、ある一定時間以上、
  1台の機器を占有して通信していたら、エラーを発する
  場合がある。
※ SRQ割り込みを使わず、ただ単にサンプリングデータが
  機器にある状態を確認して受信させるならばExecSpoll
  命令で、受信したステータスのビットを確認して受信動
  作を行うのが、CPU負荷がかからず安全に受信しやすい。
  ただし、SRQに関わる仕様を熟知する必要がある。

デバイスのクローズ時の手順
1. Close命令でデバイスの使用を終わる。
※ ただし、機器によっては、ある動作の途中でCloseされて
  しまうとエラーを発し、再オープン時に正常に制御でき
  ない場合がある。機器側の初期化ボタン等を押さないで
  プログラム的に正常動作させたい場合は、DeviceClear
  命令を送信するなりして、動作やデータをクリアするの
  が好ましい。
  尚、機器によっては、設定情報全てクリアされてしまう
  ので、注意が必要。
※ SRQ割り込みを使っている場合、この使用をオフするよう
  命令を送らないでCloseしたら、OS的にクラッシュする
  場合があるので、これにも注意が必要。

● 全てに言えることは、GP-IB機器には、アドレス設定があ
  り、その機器のアドレスに向けて命令を送信することに
  なります。全てにブロードキャストする命令をドライバー
  が持っている場合もありますが、基本、アドレスに向け
  て送信・・・です。

  また機器によっては、アドレスのビット構成に、機器の
  性能や制限がある場合がありますので、マニュアルをよ
  く読んで、正しくアドレス設定しましょう!

  よくやるミスに・・・
  GP-IBボード自体もアドレスがありますので、機器同様
  に・・・『ゼロ』が指定できない場合もあります。
  ゼロが使えても正常に動作するものもありますが、突然
  異常動作を起こす場合もありますので、注意して下さい。

● GP-IBのケーブリングについて
  マニュアル通りにコネクタ・ケーブルの取り回しを行う
  よう心がけて下さい。
  いい加減につなぐと、経年した場合、機器側レスポンス
  の遅延で、GP-IB通信自体に異常が発生して正常動作し
  なくなる傾向にあります。
  (オカマ掘る・・・とか、耳が遠いとか言います)
  GP-IBボードより、機器側GP-IBインターフェースの方が
  耐久性が低いので、ケーブリングの都合で負荷がかかり
  より壊れやすくなります。

※ 高価な機器(スペアナ)を使うので、そんなことで故障
  したら、修理費もバカになりませんので・・・

以上。参考まで・・・
引用返信 編集キー/
■39638 / inTopicNo.6)  Re[2]: GPIB制御
□投稿者/ 匿名希望 (5回)-(2009/08/11(Tue) 21:36:14)
>   まず、GP-IBのボードはどこのメーカーの型式のものをお使いですか?
>   そのボードのドライバー等にサンプルがついてませんか?
>
>   私は、インターフェース社のGP-IBボードやコンテックのボード
>   ラトックやケースレーのUSB-GP-IB変換アダプタ使ってGP-IB通信
>   していますので・・・

私の会社も、おそらくインターフェース社のGPIBボードを使用していると思われます。
会社の所要物なので曖昧な回答なのですが・・・。
>
>   問題なのは、Excelへの出力かと・・・
>   CSV出力ならテキストファイル生成なので問題ないですが、Excelを起動
>   し、シート上に書き込んでいく場合は、Excelプロセスの制御にいろい
>   ろ細工が必要・・・検索してもらえばその辺、お解りになるかと思いま
>   すが。

出来ればExcelシートに書き込んでいくという仕様にしたいのですが。
前者の方が簡易なら前者の方でやりたいです。

> ※ 老婆心ながら・・・
>   C++ CLI使えばC言語と.NET両方使えますので、GP-IBの割り込み制御も
>   問題なく書けます。結局C言語・・・が一番安全ですが、VB.NETででも
>   24時間稼働のデータサンプリングで、3年ほど稼働させてますが、
>   GP-IBの不具合で止まったことは2度ほど・・・
>   機器側の経年劣化による故障でしたので、.NETだけでも十分に信頼性の
>   あるプログラムは作れます。

.netでも安心ですね。
ただ、初心者なのでプログラムの書き方すらいまいちなのです・・。
引用返信 編集キー/
■39639 / inTopicNo.7)  Re[3]: GPIB制御
□投稿者/ 匿名希望 (6回)-(2009/08/11(Tue) 21:42:37)
>   因みに、そのスペアナのマニュアルにGP-IB制御関係の
>   ことは記載あるはずです。
>
>   コマンドの送信順番等も・・・

そういうコマンドっぽいのはあるんですけど、実際にどういうふうにプログラムを書いていけばよいのかわからないで困っています。
ちなみに使用スペアナは
E4404Aです。

>
>   マニュアル読まれました?
>
> ※ Agilentでは、NI社のボードを推奨品にされてますが、その辺も
>   調べました?

調べ方というのは・・・マニュアルを読むしかないですよね?
>
>   GP-IB通信コマンドは、NIの場合、非常に簡素でいて、難しい
>   こと考えずに通信できてしまうコマンド体系になっているので・・・
>   高価ですが、初心者にはよいようには思います。
>
インターフェース社より簡易なのでしょうか。
引用返信 編集キー/
■39640 / inTopicNo.8)  Re[4]: GPIB制御
□投稿者/ if (1回)-(2009/08/11(Tue) 22:04:22)
No39639 (匿名希望 さん) に返信
> インターフェース社より簡易なのでしょうか。
 インターフェイス社ではなく?


ハード系:

株式会社インタフェース
http://www.interface.co.jp/

インターフェイス株式会社
http://www.itf.co.jp/


別系統:

株式会社インターフェイス(留学コンサルタント)
http://www.kkinterface.co.jp/

株式会社インターフェイス(コンシェルジュ)
http://concierge-line.com/

インターフェイス株式会社(医薬試験)
http://clinical-testing.jp/

株式会社インターフェース(映像製作)
http://www.interface-kobe.com/
引用返信 編集キー/
■39644 / inTopicNo.9)  Re[3]: GPIB制御
□投稿者/ オショウ (305回)-(2009/08/11(Tue) 23:09:09)
順番にご返答・・・

No39638 (匿名希望 さん) に返信
> 私の会社も、おそらくインターフェース社のGPIBボードを使用していると思われます。
> 会社の所要物なので曖昧な回答なのですが・・・。

  ご自身がお使いになる(プログラム対象となるデバイス)が、
  何者なのか、よく知らないでプログラム書けませんヨ!

  夏休み明け?には、メーカー・型式を正確に確認して下さい。

> 出来ればExcelシートに書き込んでいくという仕様にしたいのですが。
> 前者の方が簡易なら前者の方でやりたいです。

  Excelファイル生成をどのように行うかは・・・
  .NETのサンプルやカキコミ、わんくまの掲示板でも多数扱われて
  おりますので、御調べ下さい。

  私は、Excel使わないでExcelファイル生成できる有償ソフト使っ
  てますので・・・

  CSVファイル作成は、ただ単にカンマ区切りのテキストファイル
  ですので、どうにでもなろうかと・・・

> .netでも安心ですね。
> ただ、初心者なのでプログラムの書き方すらいまいちなのです・・。

  インターフェース社のボードのドライバーやUtilityに.NETの
  サンプルコードが含まれてますので、まずはそれらを見てから
  と言うことで・・・

※ あまり突き放すのも・・・
  インターフェース社のGP-IBボード一覧
  http://www.interface.co.jp/catalog/selection/gpib/gpib_pci.asp?btn=1

  アジレントテクノロジー社適用は・・・
  PCI-4301・PCI-4302
  のどちらかですネ!

  私は、PCI-4301使ってます。
  ドライバー関連は・・・
  http://www.interface.co.jp/catalog/soft/prdc_soft.asp?name=GPC-4301

以上。




以上。
引用返信 編集キー/
■39646 / inTopicNo.10)  Re[4]: GPIB制御
□投稿者/ オショウ (306回)-(2009/08/11(Tue) 23:44:21)
No39639 (匿名希望 さん) に返信
> そういうコマンドっぽいのはあるんですけど、実際にどういうふうにプログラムを書いていけばよいのかわからないで困っています。
> ちなみに使用スペアナは
> E4404Aです。

  コマンドっぽい?
  SCPIのリファレンスは見ました?

  それと『E4404A』?
  現行商品ですか?型式間違ってませんか?
  E4404B-STD ESA-E スタンダード・アナライザ、9 kHz - 6.7 GHz ではない?

  E4404B として話を進めると・・・
  http://www.home.agilent.com/agilent/product.jspx?cc=JP&lc=jpn&ckey=1000003731:epsg:pro&nid=-35491.536882050.00&id=1000003731:epsg:pro
  http://www.home.agilent.com/agilent/product.jspx?cc=JP&lc=jpn&ckey=1000000186:epsg:pro&nid=-35189.536881612.00&id=1000000186:epsg:pro

  こういうソフトもあるので、動作させてみるのも知る上では有用かと。

  次にSCPI関連・・・
  http://www.home.agilent.com/agilent/editorial.jspx?cc=JP&lc=jpn&ckey=887742&nid=-11143.0.00&id=887742
  http://www.home.agilent.com/agilent/redirector.jspx?action=ref&cname=AGILENT_EDITORIAL&ckey=424087&lc=jpn&cc=JP&nfr=-11143.0.00

  それらの中に.NETサンプルがあるかは未確認

  別途、.NETサンプルなら・・・
  http://www.home.agilent.com/agilent/editorial.jspx?cc=JP&lc=jpn&ckey=887875&nid=-11143.0.00&id=887875
  http://www.home.agilent.com/agilent/editorial.jspx?cc=JP&lc=jpn&ckey=887963&nid=-11143.0.00&id=887963

> 調べ方というのは・・・マニュアルを読むしかないですよね?

  はい!その通り・・・

  因みに、アジレントのサポートに問い合わせたとか・・・
  で、話的には、NI社ボードを使ったケースで適切な技術的説明が
  為されるのですが、インターフェース社ボードを使っていると言
  えば、APIを置き換えて頑張って下さい!と言われるはず・・・

  私も昔、言われました・・・

> インターフェース社より簡易なのでしょうか。

  インターフェース社のボードに付随するライブラリは・・・
  2種類あって、高機能版は、APIも大量にあってどう使うか、初
  心者には無理!

  で、NI社のものは、逆にAPI的にインターフェース社のものより
  少なく、ライブラリ・ドライバー間で、結構なことを自動的に
  やってくれるので、あまり知らなくてもAPI数少ないので、使い
  やすい傾向にあるかと。(個人的私見ですが)

  アジレントを含めアドバンテックやGP-IB使う計測機器メーカー
  は、大抵NI社標準(推奨)になっていますので・・・

  ただし、高速性や複数台機器を繋いだケースの場合・・・
  細工ができないので、タクトタイムを短縮化できない場合があ
  ります。ケースバイケースですが・・・

● まずは、SCPIのサンプルコードで、どのようなコマンドを送信
  して、どういうステータスを受信しているか
  を調べ・・・

  次にインターフェース社のサンプルで、GP-IBの制御の流れを
  読破し・・・

  インターフェースのサンプルにSCPIで使われている実質的な
  GP-IBコマンド(文字列)を導入して、動作するように改造を
  してみる。

  と言う流れでしょう。

  上記のサンプルは既に両社より公開されているものですので
  まずはそれらコードを読破するのが先決かと。

※ これ以上書くならば・・・
  もう.NETのコードを書くしか無いのですが・・・
  実際にそれはあなたの仕事なんですから、あなたがお手上げ
  で仕事に差し支える・・・と言うならば、それらができる外
  注探して依頼するしか無いかと

  今時、GP-IB通信の実績あるソフト屋、そんなに無いと思い
  ますし、『できる』と言っても高価な金額になるのでは・・・

  一応、私も自営でFAのソフト屋26年ほどやってますので
  仕事の範疇ではありますが・・・

  何はともあれ、調べて勉強し方法を習得して、仕事に活かし
  ましょう!

以上。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -