NI製品ディスカッション

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

分光器

Labviewを使い始めて2週間の初心者です



現在、分光器 SOLAR TII MS3504I をLabviewで制御(スリット、ミラー等)しようと思っています。

 

インターフェイスはRS232Cで、現在分光器の制御は付属ドライバのDLLファイルから制御ウィンドウを呼び出してくる形となっているのですが、これをLabviewでの制御にすることは可能なのでしょうか?

また、Labviewでのプログラムはどのようなものになるのでしょうか?



よろしくお願いします

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

キットカット様

 

平素より、NI 製品をご利用頂きまして誠にありがとうございます。
日本ナショナルインスツルメンツ技術部のワカスと申します。

 

分光器 SOLAR TIIをLabviewでどのように制御されますでしょうか。

 

LabVIEWで「ライブラリ関数呼び出しノード」関数を用いて、DLLファイルを読み取り、実行することができますので、こちらをご利用頂ければ、以前と同様にLabVIEWでも分光器を制御することができると思います。

LabVIEWでDLLファイルの呼び出し方法について下記のリンクを参照ください。

 

Win32ダイナミックリンクライブラリ(DLL)の作成とLabVIEWからの呼び出し:

http://zone.ni.com/devzone/cda/tut/p/id/12339

 

なお、LabVIEWは、グラフィカルプログラミングで、アイコンとワイヤを使用するフローチャートに似た直感的なインタフェースになっております。多数のハードウェアデバイスとの統合が可能で、高度な解析やデータの可視化が行えるライブラリも数多く内蔵されており、その全てを使ってVIを作成することができます。

 

LabVIEWの詳細について弊社の下記リンクをご参考して頂ければと思います。

http://www.ni.com/labview/whatis/ja/

 

また、LabVIEWツールメニューのヘルプから「サンプルを検索」をクリックするとNIサンプルファインダが開きます。「参照」タブで「基本機能」にあるサンプルプログラムが用意されていますので、是非こちらをご参照して頂ければ、と思います。

 

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

0 件の賞賛
メッセージ2/17
4,627件の閲覧回数

 

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

 

ワカス様のおっしゃるとおり「ライブラリ関数呼び出しノード」 関数を用いたところ、いくつかうまく実行することができました。

しかしこの方法で実行させたところ、いくつかのライブラリ関数呼び出しノードでエラー 1097 と出てしまい、現在原因がわからない状態です。

 

具体的には添付いたします分光器のマニュアルに記載されている ShowWindowDevice  、 GetWaveLength  、 SetSlitWidth  等の部分になります。

 

もし陥りやすい部分等あればご教授していただけると助かります 

 

 

 

 

 

0 件の賞賛
メッセージ3/17
4,480件の閲覧回数

キットカット様

日本ナショナルインスツルメンツ技術部のワカスと申します。
ご連絡頂きましてありがとうございます。


 

この問題はご使用されているDLLに依存している可能性がございます。

こちらのエラー(1097)は読み込まれるDLLが使用中のメモリを被害させたことを意味しております。

 現在ご使用されているDLLの呼び出し設定をお確かめいただけますでしょうか。

特に,関数プロトタイプ,変数のデータタイプがご目的のものであるかどうかお確かめくださいませ。

 

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

0 件の賞賛
メッセージ4/17
4,472件の閲覧回数

 

ワカス様

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

 

今回DLLの呼び出しにはLabview内にある共有ライブラリのインポート機能を用いて呼び出しを行ないました。

この場合でも 関数プロトタイプ、変数データタイプ等の呼び出し設定が誤っている可能性はあるのでしょうか?

よろしくお願いします 

 

0 件の賞賛
メッセージ5/17
4,443件の閲覧回数

キットカット様

 

ご連絡頂きましてありがとうございます。

 

仰る通り、共用ライブラリーをインポートする手法でも、DLLを呼び出すことができます。
この場合、ライブラリーをインポートされる最中、関数のコンフィグレーションという設定があります。
通常は、インポートウィザードは自動的に関数のタイプを読み込みますが、ユーザにより変更を加えることも可能です。

共用ライブラリーをご利用頂き、ライブラリーをインポートする手法は下記のリンクに記載されておりますので、ご参照頂けますでしょうか。

英語記載の資料になりますがご了承下さい。

http://zone.ni.com/devzone/cda/tut/p/id/2818

 

共用ライブラリーをご利用頂いて、今回正常にDLLをご利用頂けましたでしょうか、経過をお知らせ頂ければと思います。

 

0 件の賞賛
メッセージ6/17
4,438件の閲覧回数

 

 

ワカス様

返信頂きありがとうございます

 

経緯といたしましては、 まず始めに共有ライブラリのインポートを用いたのですが、① いくつかインポートできない関数があった、② インポート後、いくつか実行できずにエラーを生じる関数があった  この2点の理由から、インポート機能を使用せずに「ライブラリ関数呼び出しノード」を用いてDLLを呼び出し、実行しようと考えたのですが同じエラーに行き着いてしまい現在にいたるといった状態です

 

やはり関数タイプ等に過ちがあると考えてよろしいのでしょうか?

よろしくお願いします 

 

 

 

 

0 件の賞賛
メッセージ7/17
4,432件の閲覧回数

キットカット様

 

ご連絡頂きましてありがとうございます。

 

そうですね。ライブラリ関数呼び出しノードでご使用中のDLLの関数タイプ等には間違いがある可能性が高いです。
この場合、実行可能なDLLがあれば、実行できないDLLを見直す必要があります。

 

分光器側に用意されたDLLが対応するLabVIEWバージョン等は指定されておりますでしょうか、ご確認頂けますでしょうか。

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

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

 

ワカス様

 

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

 

マニュアル等にLabviewのバージョンに関する記述を探したものの特に指定はありませんでした。

やはり変数データの間違いが濃厚とのことなのでそこをもう一度見直していきたいと思います。

 

 

 

 

0 件の賞賛
メッセージ9/17
4,392件の閲覧回数

 

ワカス様

 

分光器のマニュアルを読み込んだところ一部の配線にミスがあったためうまく実行できなかったようで、現在は動作可能となりました。

ありがとうございます

 

 また一つ問題が出てきたので質問させていただきます

ある関数を実行すると動作はするのですがその後Labview自体が落ちるといったことが起こってしまいます

この原因について何かわかることはないでしょうか?

よろしくお願いいたします 

0 件の賞賛
メッセージ10/17
4,345件の閲覧回数