NI製品ディスカッション

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

2つのループ間の連動に関して

モーターの回転を制御するviと、スライドテーブルの障害物を感知するViまでは別々に

作りました。問題はこれらの2つのループを連動させながらスライドテーブルに取り付けられている障害物

センサーが発動した場合にモーターの回転方向を変えながらViを終了するまで障害物センサー間を

連続往復運転するViを作りたいのですが、2つのViを連動させる所で行き詰まっております。

打開策をご教示頂けませんでしょうか。

詳細は添付ファイルを参照

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

並列ループ間で情報をやり取りするには、共有データ(ローカル変数、VIグローバルなど)を介するか、通信経路(キュー、ユーザイベント、チャンネルワイヤなど)を使う方法があります。

ビギナーに理解しやすいのは共有データですが、この先性能や機能を拡張する予定があるなら通信がお勧めです。

イベントストラクチャがあるのでセンサー状態をユーザイベントで送る例を添付します。LabVIEW2020のVIで、実機でのテストはできていないので動かない場合は状況を教えてください。

 

ところで、CW/CCW/PAUSEボタンが「放されるまでスイッチ」動作になっていますが、これだと命令が2回(押したときと放したとき)Writeされますよ。もしかしてJOG動作(押している間動いて放すと止まる)させたかったのでしょうか?

メッセージ2/8
294件の閲覧回数

ご丁寧なコメント有難う御座います。

仰る通り”押している間動いて放すと止まる”をしたかった

のです。

添付頂いたViですが開け様とすると添付ファイルに示す

エラーが発生します。

回避策をご教示頂けませんでしょうか。

また、添付頂いた

action_stateというのはどの様に使えば良いの

でしょうか。

以上 宜しくお願い致します。

 

0 件の賞賛
メッセージ3/8
290件の閲覧回数

action_state.ctl はタイプ定義にしたカスタム制御器です。

oriental_moter_testrun6.vi と同じフォルダに置いてください。

0 件の賞賛
メッセージ4/8
284件の閲覧回数

分かりました

有難う御座います。

私には敷居が高いですが一つ一つ

Viの動作を確認しまがら今日1日

Viを眺めてみます。

0 件の賞賛
メッセージ5/8
278件の閲覧回数

おはよう御座います。

お蔭様でなんとか動作を理解する所

まできました。

後は、ボタンを押している間だけモータが

動く様に改造したいのですが、上手くいきません。

スタートコマンドを送信するとストップコマンドを

送るまでモーターは回転し続けます。

ボタンを離した時に停止コマンドが出せる

と良いのですが。

この様に改造したいのでが、その方法があれば

ご教示頂けませんでしょうか。

 

0 件の賞賛
メッセージ6/8
242件の閲覧回数

スイッチ動作のイベントはボタンをONしたときとOFFしたときに発生するので、そのときのボタンの論理に従ってコマンドを変えればいいです。

0 件の賞賛
メッセージ7/8
238件の閲覧回数

夜分失礼します。

お蔭様でボタンを押している時だけ

モータが動く様に改修できました。

アドバイス感謝致します。

0 件の賞賛
メッセージ8/8
219件の閲覧回数