自作の木製CNCというか、合板製のフレームとパーチクルボードのステージで構成した自作CNCを中心に、いろいろ遊んでいます。自作CNCは、「合板製CNC」と名付けました。 旧サイトは、http://blog.seyo.info/diary/ です。製作初期の段階はそちらで。最近は、はんだコテを握って電子工作をしています。 読んでいただいた方からのコメント書き込みができるようになりました。よろしくお願いします。
2015/08/19
CONTEC API-PAC(W32)RM/GPIB
EXCEL VBA と GP-IB 経由の測定器
で遊んでいる今日この頃。
先日購入した、
Hewlett-Packard 5316B Universal Counter
で送信はできるが受信がうまくできない。
CONTEC社製GP-IB(PCI)FLを使用。
CONTEC社製の診断プログラムでは、送受信とも可能である。
EXCEL VBA とGP-IBで接続されている測定機器と通信するのに
EasyGPIB (木下清美氏) のコマンド群を利用する。
eg.CardOpen
eg.CardCLose
eg.ActiveAddress
eg.AsciiLine (送信時と受信時)
eg.WAITmS
の5つのコマンド(6種類の使い方)で良い。
eg.AsciiLine で受信すると、
HP 3478A は通るのに、
HP 5316B は、エラー13000タイムアウト発生
となる。
EasyGPIB (木下清美氏) の説明書を読むと
EOIは常に有効です。EOIがアクティブにならない通信はサポートしていません。
の記述あり。
この辺がポイントだろうと予測する。
ドライバライブラリ API-PAC(W32)
http://www2.contec.co.jp/dl_data/LZF832/LZF832_031023.PDF
http://seyo.info/pdf/LZF832_031023_ALL.pdf
http://seyo.info/pdf/LZF832_031023_P33.pdf
http://seyo.info/pdf/LZF832_031023_P34.pdf
http://seyo.info/pdf/LZF832_031023_P44.pdf
GpListenBinary と GpDelim の2つに絞る。
VBAをトレースしてGpListenBinaryの戻り値を見ると、
HP 3478A は通る。 ==> 戻り値 2 EOI受信終了
HP 5316B は、エラー13000タイムアウト発生。 ==> 戻り値 254 タイムアウト
HP 5316B の受信バッファの内容を調べると、
「計測数値CR+LF」を3回受信している。
EasyGPIB での GpDelim の設定を見ると、
Delim(0&,1&)と記述を見つける。
Delim
0 : 未使用
1 : CR+LF
2 : CR
3 : LF
Eoi : EOI
0 : 未使用
1 : 使用
Delimは、使用していない。つまりEOIを受信して、受信終了するしかない。
受信時にCR+LFが来ているので、Delim(1&,1&)と記述の変更を試みる。
HP 3478A は通る。 ==> 戻り値 1 デリミタ及びEOI受信終了
HP 5316B は通る。 ==> 戻り値 0 デリミタ受信終了
HP 5316B でも受信できるようになった。
設定を変更したので、どこかで悪い影響が出ているかも知れない。
また受信時は、生のデータを直接セルに入れるのではなく、
NULLや制御文字など、テキストで現れないコードを
除去する関数を通している。
(除去する関数は、自前です。)
EasyGPIBで木下清美氏は、なぜEOIに、こだわったのか
それはきっと理由があるのだろう。
登録:
コメントの投稿 (Atom)
こんにちは
返信削除私も同じインターフェース基板手に入れましたが
パソコンに取り付けするプレートを作らないと取りつかないので
完成が遠いです
動かせるように成ったら教えてください
色々な古いマシンがコントロールするのが夢です
コメントありがとうございます。
削除GP-IBは、まだ7ヶ月の初心者です。
試行錯誤を重ねています。
EXCEL VBA+GP-IBは、アイディアがあれば
複数台の測定器をほぼ同時に動かすなど
いろんな事ができるTOOLだと思います。
きっと楽しめますヨ!