NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

DAQmx スライダーにロードセル付けて 電圧常時監視しながら動作制御

解決済み
解決策を見る

DAQmxを使用して

スライダー(オリエンタルモーターAZDのドライバーにパルス入力する)に

ロードセル(アナログ電圧をモジュールから入力)付けて

アナログ電圧を常時監視しながらスライダーの動作制御をしたいと考えています。

viの構成をご教授いただけると助かります。

自動昇降の圧力測定機を自作しようとしています。

 

使用機器

シャーシ:cDAQ9174

モジュール:9402,9222,9472

 

構築したい内容

1.電圧入力をエッジトリガで開始し入力待機させる

2.スライダーに動作指令のパルス出力する(有限)

3.電圧入力開始(有限) main.viに電圧をリアルタイム表示させたい

4.電圧が指定値を超えたらスライダー停止させる(ドライバーのスイッチ切替)

 

リアルタイム表示はできないが、緊急停止ボタンをmain.viに作成しスライダーを停止させるところまでは

なんとか構築できています。知識が浅い分ブロックダイアグラムはぐちゃぐちゃになっていますが。

 

参考になる情報が得られればと思い投稿しました。

情報をお持ちの方よろしくお願いしいます。

0 件の賞賛
メッセージ1/13
1,426件の閲覧回数

制御ループをリアルタイムにやりたい場合、「トリガ」収録や「有限」入出力は使わないと思うので、とりあえずVIを見せてもらえませんか?

0 件の賞賛
メッセージ2/13
1,382件の閲覧回数

ご返信ありがとうございます。vi添付します。

このviをmain.viに組み込んでます。

0 件の賞賛
メッセージ3/13
1,378件の閲覧回数

やりたいことはだいたいわかりました。やはりVIを見るのが手っ取り早いです;-)
「60パルス出して圧力を取得」するのですね。トリガ収録も納得です。ただサブVIとして繰り返し呼び出すには構造が適切ではありません。

 

とりあえず圧力が目標レベルになるまでパルスを出し続けるように修正してみたので、添付VIを単体で実行して希望の動作になるかどうか見てください。OKならサブVI化を検討します。

緑色の枠で囲った箇所が主な修正点です。考え方は以下の通り。
1) 制御ループのレートは20Hz。20Hzはアナログ入力のサンプリングレートと一回毎のサンプル数で規定。
2) モータ駆動パルスは連続で出力。
3) パルス出力開始をトリガにしてアナログ入力を開始。
4) 圧力を読み取って目標圧力レベルと比較し、到達していたら終了する。

 

0 件の賞賛
メッセージ4/13
1,361件の閲覧回数

viの送付ありがとうございます。動作確認できました。とても参考になっております。

 

修正したいところがあります。

パルス出力とアナログ入力を有限にしたいです。

動作中だけアナログ入力できる構成でも良いです。

 

目標値で動作を止めるのは圧力の過負荷時です。

決まった動作を繰り返します。

説明が足りなくてすみません。

 

試しにアナログ収録のサンプル数を1データ毎にしてみたのですが

グラフへの表示に遅延が出ているようにみえました。

最適なサンプル数とかあるのでしょうか。

 

修正したvi添付します。

0 件の賞賛
メッセージ5/13
1,333件の閲覧回数

1ポイントずつ読み取るループが200Hzで回らないため、データを遅れて読み取ることになり遅延しているように見えると思います。ただしデータはバッファに入っている(トリガから2秒間の)データなので値は合っているはずです。10~20ポイントずつ読み込めば遅延なく読めると思います。

 

「決まった動作」とは「パルスを指定した個数出力」で、繰り返し条件判断のために「圧力値」をパルス出力中もmain.viで把握していたい、ということで合っていますか?

 

アナログ入力の開始トリガは、パルス出力開始と同期するためですか(スライダ位置に対する圧力の変化データが必要)?

 

0 件の賞賛
メッセージ6/13
1,307件の閲覧回数

ご返信ありがとうございます。助かります。

 

動作は圧縮や引っ張り試験機が近いイメージなのですが

 

「決まった動作」とは「パルスを指定した個数出力」です。

 

繰り返し条件判断のために「圧力値」を把握していたいわけではなく

動作中の変化をモニタリングしていたいだけです。

 

アナログ入力の開始トリガは、パルス出力開始と同期するためです。

スライダ位置に対する圧力の変化データがざっくりと必要です。

エンコーダー情報を拾って正確に結び付けるまでは必要としていません。

0 件の賞賛
メッセージ7/13
1,301件の閲覧回数

おっしゃる内容であれば最初のVIである程度できていたと思います。とりあえずサブVI化してみましたので、添付のVI(2個)を同じ場所に置いてmain_3.viを実行してください。完了するとファイルパスを聞いてくるので適当な名前を付けてください。

 

繰り返し呼び出される度にチャンネル作成をし直さずに済むよう、作成とクリアのスイッチを付けました。テスト用なので細かい使い勝手まで考慮していません。

 

アナログ入力の「サンプル数÷サンプルレート」とパルス出力の「パルス数÷周波数」は一致させてください。
これらはそれぞれのタスクが完了するための時間であり、サブVI一回当たりの実行時間になります。添付VIは3秒になっています。
3秒間のアナログ波形を逐次mainに表示するために、波形チャートのリファレンスを用いています。毎秒の更新回数は「グラフ更新レート」によって決まります。(コネクタに割り当てていないのでmainから変えたい場合は適当なクラスタ制御器に含ませてください)。

すべてをダウンロード
0 件の賞賛
メッセージ8/13
1,286件の閲覧回数

アナログ入力とパルス出力の時間を完全に合わせなくても良いようにループを分けました。

そしたら最初のVIとほぼ同じになったので、少々遠回りをしてしまったようです。

すべてをダウンロード
0 件の賞賛
メッセージ9/13
1,270件の閲覧回数

ありがとうございます。

動作確認しておりますのでまた結果を報告させていただきます。

細かいところとても参考になっております。

 

0 件の賞賛
メッセージ10/13
1,268件の閲覧回数