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

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

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

Re[3]: 多チャンネルに接続した計測器とのGPIB通信


(過去ログ 77 を表示中)

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

■45670 / inTopicNo.1)  多チャンネルに接続した計測器とのGPIB通信
  
□投稿者/ miha (1回)-(2010/01/18(Mon) 16:48:32)

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

はじめまして。GPIB通信未経験者です。

今回、顧客の要望でKIKUSUI社製 AIP8410とPCでGPIB通信を行うことになりました。


・AIP8410にはOP01-PIAカードを全スロットに装着、計8Ch全てと常時通信(実際には1秒周期くらい)する必要があります。
・通信用のプログラムはVB.NET2005で開発します。
・PCに接続するGPIBカードは現在検討中です。


このとき、全てのチャンネルと常時通信するためには

A.各チャンネル毎にコネクト用オブジェクトを作成、全てのオブジェクトを常時オープン

B.コネクト用オブジェクト1つを都度
 ・チャンネル設定し直し−>オープン−>通信開始
 ・通信完了−>クローズ

C.他の方法(PCに接続するGPIBカードの仕様に応じて組み方が違う?、など)

どのようにすべきなのでしょうか?(理想はA.なのですが)


ちなみに、本当は実機でいろいろ試すことが出来ればよいのですが、AIP8410は現場設置当日まで
届かない予定(顧客談)だそうで、開発期間中に借りられる目処が今のところないです。。。
引用返信 編集キー/
■45671 / inTopicNo.2)  Re[1]: 多チャンネルに接続した計測器とのGPIB通信
□投稿者/ επιστημη (2395回)-(2010/01/18(Mon) 16:55:48)
επιστημη さんの Web サイト
> どのようにすべきなのでしょうか?(理想はA.なのですが)

なにはさておき実機を入手すべし。レンタルでもかまわんから。
さもなくば

> ちなみに、本当は実機でいろいろ試すことが出来ればよいのですが、AIP8410は現場設置当日まで
> 届かない予定(顧客談)だそうで、開発期間中に借りられる目処が今のところないです。。。

現場設置/電源ON/一発完動 なんて無理に決まってんぢゃん。

引用返信 編集キー/
■45672 / inTopicNo.3)  Re[2]: 多チャンネルに接続した計測器とのGPIB通信
□投稿者/ miha (2回)-(2010/01/18(Mon) 17:41:57)
No45671 (επιστημη さん) に返信

話が脱線しますが

 誤:AIP8410
 正:PIA8410

でした。失礼致しました。


> なにはさておき実機を入手すべし。レンタルでもかまわんから。

孫受け個人の身なので正直厳しいです。
現在、親受けにも何とか成らないか、現在、必死に交渉中ではあります。


> さもなくば
>
>>ちなみに、本当は実機でいろいろ試すことが出来ればよいのですが、AIP8410は現場設置当日まで
>>届かない予定(顧客談)だそうで、開発期間中に借りられる目処が今のところないです。。。
>
> 現場設置/電源ON/一発完動 なんて無理に決まってんぢゃん。

現地一発が無理なのは理解していますので、顧客には試運転前の通信テストと、通信テスト後の
修正期間が必要なこと申し入れしてあります。



επιστημη さんのおっしゃることが正当なのは十分承知しているのですが、
年度末を控えた現場って、こんな感じばかりです。。。(独り言)
引用返信 編集キー/
■45673 / inTopicNo.4)  Re[1]: 多チャンネルに接続した計測器とのGPIB通信
□投稿者/ .SHO (1135回)-(2010/01/18(Mon) 17:49:48)
No45670 (miha さん) に返信

> ・PCに接続するGPIBカードは現在検討中です。

これを決めれば解決するんじゃないですかね?
つまり「C」だと思います。

引用返信 編集キー/
■45674 / inTopicNo.5)  Re[1]: 多チャンネルに接続した計測器とのGPIB通信
□投稿者/ オショウ (505回)-(2010/01/18(Mon) 18:15:44)
No45670 (miha さん) に返信
> はじめまして。GPIB通信未経験者です。

  未経験なら、かなり無理があろうかと・・・

> 今回、顧客の要望でKIKUSUI社製 AIP8410とPCでGPIB通信を行うことになりました。

  ???PIA4810じゃ〜ないの・・・
  訂正すら間違ってません?

> ・AIP8410にはOP01-PIAカードを全スロットに装着、計8Ch全てと常時通信(実際には1秒周期くらい)する必要があります。
> ・通信用のプログラムはVB.NET2005で開発します。
> ・PCに接続するGPIBカードは現在検討中です。

  一般的には、NI社のものがどこのメーカーも推奨なんですが・・・

  私は、この10年以上、インターフェース社のPCI-4301使ってます。
  尚、GP-IB通信部分は、添付のサンプルを元に完全自作です。

  ただし、接続する機器との相性が出る可能性が非常に高いので、
  初心者の方には、キツイ仕事かと考えます。

  メーカーホームページでは・・・(抜粋)
  &#8226;Windows95/98またはNT4.0が動作するPC
  &#8226;NI-488.2M Softwareが動作するNational Instruments製GPIBカード
  &#8226;GPIBケーブル
  &#8226;Microsoft Visual Basic 4.0以降、またはMicrosoft Office97以降

  とありますネ!〜

  GP-IBの規格は2種類あるんで、どこに規格が書いてあるのか探してみて
  よかったです。

  『488.2』なんで、もしインターフェース社のを使うなら『PCI-4302』に
  なりますネ!(見つかってよかったよかった!)

  ただ、サンプルはVB4なんで、全く使えない・・・
  インターフェース社のもVB6基準なんで、.NET化するなら作り直した方
  がよいのですが。

  あと、NI社のでしたら、ある意味、プログラム作るのは楽です。
  インターフェース社の見たら、わけ解らんと思います・・・

> このとき、全てのチャンネルと常時通信するためには
>
> A.各チャンネル毎にコネクト用オブジェクトを作成、全てのオブジェクトを常時オープン
> B.コネクト用オブジェクト1つを都度
>  ・チャンネル設定し直し−>オープン−>通信開始
>  ・通信完了−>クローズ
> C.他の方法(PCに接続するGPIBカードの仕様に応じて組み方が違う?、など)
> どのようにすべきなのでしょうか?(理想はA.なのですが)

  『B』です!

  GP-IBのコマンド体系がどうなっているのか解らないので・・・
  1秒毎に計測のトリガコマンドを送信し(多分、全チャンネル分ブロードキャスト)
  SRQ割り込み、もしくはSRQステータスを見て(パラレルポール)サンプリング終了
  ビットを確認した後、1台づつにデータ読み出しコマンド送信して終了。

  これを1秒毎に繰り返す・・・

  計測時間とGP-IBの遅延がありますが、8台なんで、なんとかなるかナ〜

  それと、1秒毎にオープン・クローズしたらその毎にGP-IBの制御ライン
  から初期化が行われてしまい、計測する為の各種設定を毎回行う必要が
  発生するので、計測開始時(オープン時)に初期化して、後はただひた
  すらに、計測トリガ送信=>完了待ち=>取り込み を繰り返す。
  計測終了の際にそのループを抜け、クローズ。です。

● もう機器変更できないなら仕方ないですが・・・
  メーカーサイトでは、USB接続のものがあったので、その方が通常の
  シリアル通信のようにでいてしまうはずなので、楽だったと思いますが。

● 1秒毎の計測の正確さは、どこまで必要ですか?
  PCのタイマーは結構いい加減なので、1秒毎のイベントが確実に必要
  ならば、ハードウェアタイマーボードを入れて、1秒毎の割り込みを作
  り、そのイベントで計測を行うようにすれば、ある程度の安定度は確保
  できます。

> ちなみに、本当は実機でいろいろ試すことが出来ればよいのですが、AIP8410は現場設置当日まで
> 届かない予定(顧客談)だそうで、開発期間中に借りられる目処が今のところないです。。。

  メーカーサイトで掲載されているプログラムを元?に、なんとかする・・・
  初心者のあなたが?無謀ですネ!

  私もFA関係プログラマーで20年以上やってますが、そこまで無謀な
  ことはやったことないです。そういう仕事出すところも無責任ですネ!

  もう決まっているならば・・・どうしようもないですけど。
  現地での立ち上げ工数は、どの程度の時間があるのでしょうか?
  1〜2日なんかで、どうにかなるレベルじゃ〜ないですヨ!

  手元にGP-IB通信する完動済みクラスモジュールがあって、コマンドを
  その装置用に書き換えたら即動作する。と言う状況ならできるでしょう。

  何はともあれ、どこをどう頑張るかさえ指摘できませんが、頑張って
  下さい!

以上。

引用返信 編集キー/
■45675 / inTopicNo.6)  Re[2]: 多チャンネルに接続した計測器とのGPIB通信
□投稿者/ オショウ (506回)-(2010/01/18(Mon) 18:19:35)
抜粋部分が文字化け・・・

Windows95/98またはNT4.0が動作するPC
NI-488.2M Softwareが動作するNational Instruments製GPIBカード
GPIBケーブル
Microsoft Visual Basic 4.0以降、またはMicrosoft Office97以降

これでちゃんと読めるかな・・・
引用返信 編集キー/
■45768 / inTopicNo.7)  Re[2]: 多チャンネルに接続した計測器とのGPIB通信
□投稿者/ miha (3回)-(2010/01/19(Tue) 19:26:03)
.SHOさん、オショウさん ご返答ありがとうございます。


>   ???PIA4810じゃ〜ないの・・・
>   訂正すら間違ってません?

完璧に間違えまくってました!何も言い訳できません・・・


一部いただいたコメントをいじらせて頂きますが

■.SHOさん
>   PCに接続するGPIBカードを決めれば解決するんじゃないですかね?
>   つまり「C」だと思います。


■オショウさん
>   『B』です!
>
>   GP-IBのコマンド体系がどうなっているのか解らないので・・・
>   1秒毎に計測のトリガコマンドを送信し
>   (多分、全チャンネル分ブロードキャスト)
>   SRQ割り込み、もしくはSRQステータスを見て(パラレルポール)
>   サンプリング終了
>   ビットを確認した後、1台づつにデータ読み出しコマンド送信して終了。
>
>   これを1秒毎に繰り返す・・・

というご意見を拝領して考えてみたのですが、今のところオショウさんの
案かな〜?と思っています。

ただし、今回の通信は計測値の収集だけでなく、電圧/電流値の調整も
行います(そのため、GP-IBカード2枚差しの2系統で調整専用と収集専用に
分ける方向です。もちろん、通信プログラムも2つに分けて)。


なので、ブロードキャスト・・・ではなく

1.プログラム起動と同時にコネクションオープン
2.チャンネル指定
3.電圧値送信(取得)−>電流値送信(取得)
4.チャンネルの変更−>(2.項へループ)
5.プログラムの終了とともにコネクションクローズ

といった流れを想像しています。
この一連の動作が数秒かかるようでしたら「装置の限界です」と顧客には説得してみます。


オショウさんからは、その他アドバイスや叱咤激励をいただきましたが、
それらをよく肝に命じながら、また、WEB上に散らばっているサンプルや文献を
解読・参照しながらシステムの構築を進めたいと思います。


引用返信 編集キー/
■45774 / inTopicNo.8)  Re[3]: 多チャンネルに接続した計測器とのGPIB通信
□投稿者/ オショウ (509回)-(2010/01/19(Tue) 20:47:07)
No45768 (miha さん) に返信
> ただし、今回の通信は計測値の収集だけでなく、電圧/電流値の調整も
> 行います(そのため、GP-IBカード2枚差しの2系統で調整専用と収集専用に
> 分ける方向です。もちろん、通信プログラムも2つに分けて)。

  うん?・・・
  ええ〜と、私も最高14台のGP-IB機器を接続して行ってますが
  GP-IBカード2枚にしないといけない訳は?
  当然、計測用と収集用で分けてますが・・・

  お使いになるGP-IBボードのライブラリ(DLL)が、複数ロードに
  対応しているかどうかが心配です。

  要は、複数カードを1本のDLLで管理する方式になっていたり
  しますので、逆に厄介・・・

> なので、ブロードキャスト・・・ではなく
>
> 1.プログラム起動と同時にコネクションオープン
> 2.チャンネル指定
> 3.電圧値送信(取得)−>電流値送信(取得)
> 4.チャンネルの変更−>(2.項へループ)
> 5.プログラムの終了とともにコネクションクローズ
>
> といった流れを想像しています。
> この一連の動作が数秒かかるようでしたら「装置の限界です」と顧客には説得してみます。

  いや・・・ただやり方が悪いだけなんですが・・・

  まぁ〜技術的にできる限界が当然あるので『装置の限界』と言う言い方は、後でバレたら
  厄介なことになるんで、費用面でこの方式が限界・・・と言う方がよいかと。

  ワークに対して1個の計測部で行うならば、その方式でしかできないでしょうけど複数の
  ワークを同時に行えるハード構成ならば、それら多チャンネル全てに一気にコマンドを送
  信した方が、時間短縮が可能なので、ブロードキャストするんですが。

  8chとあるんで、8個のワークが同時に調整・検査できる構造と思ってますが、違うんです
  か?同時にできるならば、1個づつ調整・検査する動作を8回繰り返すと、単純8倍の時
  間がかかります。1秒では多分無理です。

  GP-IBって、コマンド送信後、すぐに違うコマンド投げるとエラーや無応答になったりし
  ます。なんせそれら機器や仕様が策定されたので大昔ですから・・・
  最悪、コマンドとコマンド間に50ms〜100msのウェイト入れて投げないと正常に動作しな
  い場合がありますので。

  それらウェイト時間が全てオーバーヘッドとなりますので、どう考えても1秒以内には
  終わらないでしょう・・・

  2系統化することによっても衝突は回避できますが、同一ボード内での8回繰り返しで
  は、時間的ロスが大きい・・・

> オショウさんからは、その他アドバイスや叱咤激励をいただきましたが、
> それらをよく肝に命じながら、また、WEB上に散らばっているサンプルや文献を
> 解読・参照しながらシステムの構築を進めたいと思います。

  どの程度、製作時間があるのでしょうか?
  1ケ月もあれば・・・とレベルだと思いますが。

※ そんなワークの調整・検査か解りませんが・・・
  通常はマルチメータ使った計測になりますので、車関係ならば、1PLC計測で20個取得
  して、平均するか、標準偏差を計算して異常データを除外し残りを平均化。
  結果を検査仕様に照らし合わせて調整・・・と言うような計測・調整の基本的なやり方
  があります。エンドユーザーから計測・調整の詳細仕様が出ているならばよいのですが
  無い場合でも『知っていることが前提』(鉄鋼メーカーに多い)と言う場合もあり、注
  意が必要です。(参考まで)

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


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

このトピックに書きこむ

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

管理者用

- Child Tree -