• ベストアンサー

AD、DA変換について

素人の質問で申し訳ないのですが、 現在実験で動的試験を行なうので、油圧式疲労試験機を使っています。 試験機の制御は付属のソフトで行なっていますが不具合がでるので、PCのC++のプログラムで制御することになりました。 PCにAD、DAボードを用いて、ロードセルと変位計の値を取得し、変位計を正弦波負荷で入力したいのですが、何から手をつけて良いのか分からないのでボードの選び方、取り付け方、サンプリングの仕方等、参考になるHPや書籍等ありましたら教えて頂きたいです。

  • 科学
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • phobos
  • ベストアンサー率49% (515/1032)
回答No.1

あまり詳しくはないので、自分の経験した範囲での回答となりますがご容赦を。 私の職場では計測・制御用ボードとして日本NI(ナショナル・インスツルメンツ)社のものをいくつか使っています。 同社製品にはAD,DA,ディジタルI/Oなどが1枚のボードに載った「マルチファンクションDAQ」といういう名のボードもあります。 私の所ではこのタイプではNI PCI-6229  http://sine.ni.com/nips/cds/view/p/lang/ja/nid/14136 をPCのPCIスロットに刺して、ボードからケーブルで引き出した端子台に自作のインタフェース回路を接続して、制御信号や計測データのやりとりをしています。 計測・制御のソフトについてですが、私にはマシン語レベルでのデータ入出力や制御のソフトを作るスキルも時間もありませんでしたので、同社で作っている計測/制御の定番ソフト「LabVIEW」  http://www.ni.com/labview/ja/ を利用して「仮想計測器」をPC画面上に構成して使っています。 LabVIEWを使ったことでソフトの開発時間をずいぶん節約できました。 実のところ、NI社のボード(若干割高ですが)を使う理由は、LabVIEWとの相性が非常に良く(同じ会社の製品なので当然ですが)、同梱されているサンプルプログラムを少し手直しすれば必要な機能を得られる場合が多いからです。 ご質問の用途ではADCが2ch以上、DACが1ch以上、疲労試験器とのことなのでサンプリングは多分1kHz程度で足りるかと思いますが、同社の下記ページで必要な条件を指定して製品を絞り込み検索できるので、一度ご覧になると良いでしょう。 http://sine.ni.com/nifn/cds/view/main/p/lang/ja/nid/1036/ap/daq? また、LabVIEWについては下記のサイトがとても参考になります。 ・Love! LabVIEW ( http://www.quatsys.com/labview/ ) 書籍としては上記サイトにも紹介されていますが「バーチャル計測器LabVIEW入門」(CQ出版社)が役に立ちました。 なお、AD/DAボードは他にもいろいろな会社でも作っていますので、代表的な物を下記に挙げます。もちろんこれらを使ってもご質問の用途にはかなうはずと思いますので、ご参考までに。 コンテック http://www.contec.co.jp/product/device/index.html インターフェース http://www.interface.co.jp/catalog/selection/adda/adda_pci.asp?btn=1

princekama
質問者

お礼

ご返信ありがとうございます. Labviewに関しましてはほとんど知識はありませんでしたが,C++よりもプログラムは構築しやすそうだと感じました. もし,予算が通りそうなら日本NI社のボードでLabviewの制御を行って行きたいと思います. ありがとうございました.

その他の回答 (1)

  • ShellCera
  • ベストアンサー率46% (12/26)
回答No.2

 私も以前、油圧式疲労試験機を使って変位制御の低サイクル疲労試験を行っていました。どのような不具合か分かりませんが、一度メーカーの方に相談してから取り組まれた方がよろしいかと思います。  変位制御ですと引張圧縮と思いますので、メカの部分の不具合かも知れませんし。また、制御プログラムを組むとしましても、ロードセル、変位計のスペックは分かると思いますが、おそらくアクチュエータのスペック等と完成してからのキャリブレーションなど必要で、結構面倒と思います。

princekama
質問者

お礼

御回答ありがとうございます. 確かに一度メーカの方と相談してから,リフレッシュもしくは制御プログラムの構築を考えた方が良さそうですね. メーカの方と相談しながら取り組んで行きたいと思います.

関連するQ&A

  • 高速なサンプリングが可能なAD/DAカード(ボード)を探しています

    大学で研究をしている者です.ハードウェアに関してはほぼ素人です. 実験でAD/DAを行うため,以下のようなAD/DAカード(ボード)を探しています. ・ADは(最低でも)50[kHz]以上のサンプリングが可能 ・DAは10[kHz]程度の出力が可能 調べてみても専門用語が多く,高い買い物になりそうなので,使ってみて失敗したくありません. ですので,ノウハウを知っている方がいらっしゃいましたら御助言よろしくお願いします. 実験はC++を使ってセンサに電圧を出力し,センサからADで得られた波形をリアルタイムに解析するといった内容です. ノートPCを使う予定なのでAD/DAカードと記述しましたが,ボードでもかまいません.(カードよりもボードの方が一般的に性能が良いようなことがあればボードを使うつもりです.) 既出でしたら申し訳ありません.

  • Sin波をAD変換ボードを通してAD変換したときの波形図。

    Sin波をAD変換ボードを通してAD変換したときの波形図。 AD変換ボードの操作に慣れようと思って、周波数発信機を用いて60Hz、600Hz、6kHz、60kHz、600kHzのsin波を測定しているのですが、60Hz、6kHzのときは、きれいなsin波が測定できるのですが、それ以外の周波数の場合には、sin波が測定できません。一応サンプリング周波数を変えてやってみたのですが、それでもダメでした。60Hzと6kHzの測定はサンプリング周波数1000Hzで取ることができました。こんな現象が起きるのにはサンプリング周波数以外にも何か理由があるのでしょうか? なお、供給する電圧は、2~3V程度の信号を使用しています。 使用しているAD変換ボード:分解能16bit、最高サンプリング速度100kSPS、バイポーラ:±10V 添付図は、電圧は違いますが同じ回路を使用した場合の60Hzと600Hzの波形です。

  • リアルタイムOSが必要かどうか

    Linuxが入ったPCで、AD/DAボードを介してロボット制御(サンプリング周期は1ms)をしようと思うのですが、RT Linuxなどのリアルタイムカーネルは入れた方が良いでしょうか?それとも、1ms程度なら必要ないでしょうか?

  • PCでモータなどをリアルタイム制御する方法

    RinuxOSのPCからAD/DAボード(USB接続)を介して、モーターなどのメカトロニクス機器をリアルタイム制御したいと思っています.それを実現するために, ・UbuntuなどにRTOSをインストールする。 ・PCにAD/DAボードを設置する。 ・デバイスドライバとAPIをインストールする。 まではわかったのですが、「AD/DAボードにアクセスするためのプログラム」をどのように書けばよいのかわかりません.また,「DAボードから任意の電圧を出力する(またはADボードを介して外部電圧をPCに取り込む)」にはどのようにプログラムを書けば良いのかもわかりません.そもそもAPIというものが何をするためのものかも分かっていません. ちなみに、Arduinoを使ってモータの制御はしたことがあります. どなたかアドバイスいただければ幸いです.「そもそもまず~~という本で~~の知識を入れるべき」というレベルでも結構ですので,どうかよろしくお願い致します。

  • ストップウォッチ

    油圧シリンダの弁をADボードを用いて外乱(構造物の地震による揺れ)を採取し、それに対してPID制御で調節する研究をしています。この制御は、あらかじめサンプリングクロックを設定し、あるサンプリング数に達したら、その度にswitch文を用いてを制御イベントが発生するプログラムとなっています。しかし、大まかには出来たのですがサンプリング周期がまだ目標には達していなく(目標サンプリング周期1ms)、プログラムをいじっても本当に改善されているのかわかりません。 そこで、このイベントが1回発生するために要する時間を知るため、制御ソフトのダイアログ上に0.001秒オーダーのストップウォッチを付けたいと思っていますが、何か参考になるサイト等はございますか。 上述の通り、サンプリング周期が数msオーダーとなるので、0.001秒オーダーのものが必要となります。 ちなみに使用言語はVC6のMFCを使用しています。また、PC環境等は影響するのでしょうか? よろしくお願いします。

  • PCに挿したIOボードを制御するためのプログラム

    IOボード(AD/DAボード)を使ってPCで入出力制御(例えばモーターのフィードバック制御)をしたいと思っているのですが、ボードにアクセスするためのプログラムや、信号を入出力するためのプログラムをどのように書いたら良いかわかりません。おそらくデータシート?に書いていると思うのですが、知識不足で読み解くことができません。(いままでArduino IDEでArduinoの制御をしたことしかありません。普通にC言語でAVRマイコンをプログラムして制御することはできません。C言語の基礎知識はあります。) そこで質問なのですが、PCから(例えばPCIスロットに挿した)IOボード(AD/DAボード)を制御するための知識は、どのようにして習得できますでしょうか?参考になる本やサイトが見つかりません。PICやAVRなどのマイコンであれば本が色々出ているようなのですが、そのようなマイコンを使えるようになれば、PCからIOボードを制御できる基礎知識は付きますでしょうか?

  • ロードセルの衝撃荷重

    ロードセルと油圧CYLを使って圧入機を製作しました。 ロードセルにかかる負荷と時間経過をアンプで見るようにしています。 圧入動作が始まって、ロードセルに初めて荷重がかかるところで、衝撃荷重が加わり、波形がピンと跳ね上がります。そのまま圧入動作を進めていくと、跳ね上がった波形が、CYL推力近くに短時間で落ち着かず、時間経過とともにじわじわと落ちていきます。 普通、ロードセルは衝撃荷重を受けると波形がピンと跳ね上がり、瞬時にCYL推力に落ち着くはずですが、なぜこんな現象が起きるのでしょう? ロードセルを幾度か使いましたが、このような現象は初めて経験します。 どなたか、手がかりをお持ちではないでしょうか?

  • PCIe/PCI接続のADボードのクロストーク特性

    現在研究室の試験機制御用のプログラムを改良している者です。 最近、制御用PCを入れ替えた都合で、AD変換ボードをPCI接続からPCIe接続のものに切り替えを行いました。 しかし、切り替え以後、クロストークが目に見えて大きくなり、他の接続していないチャンネルの電圧変化が大きくなりました。 販売会社に問い合わせを行ったところ、こちらでも理由は分からず、バッファアンプを入れるなどの対応をいただければとのことでした。 このような現象が起こる理由にはどのようなものがあるのでしょうか?PCIeとPCIにクロストークが大きくなりやすい特徴などがあるのでしょうか?

  • 正弦的に負荷ってなんですか?

    高分子に繰り返しの負荷を加えると、そのエネルギーの一部は熱エネルギーとして散逸していきますよね。 最近、そのような量を、ひずみを正弦的に負荷する試験機を用いて評価する方法があるというのですが、そもそも、正弦的に負荷ってなんですか? また、簡単な試験機でそのエネルギーの散逸の程度を評価する方法を教えてください。

  • 油圧回路について

    油圧シリンダーで、小さな部品を100kgぐらいで圧入したいのですが、圧入するまで早送りして、通過センサーを拾ったら本圧入に入り、ゆっくりで、なおかつ圧力を上げて、圧入します。 圧入されるストロークは実際3ミリくらいです、そのときに、相手の穴が大きかったりした場合には圧入されないので、圧入ストローク時の負荷を何らかの方法で詳しくではなく、変動した場合を検知できるような回路、制御方法は無いでしょうか? ちなみに、ロードセルは値段が高いので、出きるだけ使いたくないです。 油圧関係は初心者なのでどなたか、お願いします。