2017-07-08 6 views
1

こんにちは、私は、DMソフトウェアを使ってtxtファイルを分析し、数値を取得する必要があります。各番号は、移動ステージを制御するLabviewソフトウェアに送信されました。その後、Labviewはそれが完了したと伝えます。DMは写真を撮ってファイルを保存します。どのようにすればいいですか?DMスクリプトのサンプルはほとんど見つかりませんでした。方向を教えてください。ありがとうlabviewとDMソフトウェアのやりとり方法

答えて

1

速度が問題ない場合は、Labviewに空の.txtを保存させることができます。あなたのdmソフトウェアは、ファイルが存在するかどうかをチェックして、すぐに画像を撮ることができます。もちろん、より速く、より安全な方法が存在しますが、あなたのdmソフトウェアがどれほどの柔軟性を持っているかはわかりません。例えば、ActiveXのような仮想COMポートでは、ソフトウェアが互いに通信するための多くのオプションがあります。

1

現在のDigitalMicroグラフでは、「外向き」または「内向き」のコミュニケーションの可能性はあまりなく、一部のオプションは、後のGMSバージョンでのみ使用できます。 Labviewのオプションもわからないので、動作しているものとそうでないものを調べる必要があります。提案は以下のとおりです。

あなたはGMS 2.3以降を使用している場合は、コマンドプロンプトから行うだろうと同じようDigitalMicrographの中から任意のルーチンを起動するコマンドLaunchExternalProcess()を使用することができます。

Labviewでコマンドプロンプトからパラメータを指定して呼び出して一部の機能をトリガできる場合は、これが最も簡単なオプションです。起動されたプロセスが終了したとき、または指定されたタイムアウト後に、DMスクリプトが続行されます。

あなたはGMS 3.1以降を使用している場合は、opositeを行うと、外部のプログラムは、DM-スクリプトの開始をトリガするために、コマンドラインパラメータでDigitalMicrograph.exeを呼び出すことができます。

これは基本的に、最初の提案の逆です。 Labviewは、次のアクションを実行するたびにDigitalMicroグラフを呼び出す必要があります。私はこれが可能かどうかを判断するのに十分なLabviewを知らない。

スクリプトは、COMポート(RS232)を介してシリアル通信するためのコマンドがありますが、インストールはプラグインフォルダにSerialControl.dllを持って提供しました。

Labviewがこれをサポートしている場合は、これを使用してプログラム間通信を確立することができます。シリアル通信スクリプトの呼び出しは、正式にはサポートされていませんが、コマンドは、むしろ自明です:彼の答えにGelliantによって示唆されているように

Number SPOpen(Number port, Number baud, Number stop, Number parity, Number data) 
Number SPOpen(String prefix) 
void SPClose(Number serialPortL) 
Number SPSendString(Number serialPortL, String string) 
Number SPSendHex(Number serialPortL, String string) 
void SPFlushInput(Number serialPortL) 
Number SPGetPendingBytes(Number serialPortL) 
Number SPGetTime() 
String SPReceiveString(Number serialPortL, Number maxLength, NumberVariable actual) 
String SPReceiveHexString(Number serialPortL, Number maxLength, NumberVariable actual) 
void SPSetRTS(Number serialPortL, Boolean on) 
void SPSetDTR(Number serialPortL, Boolean on) 

ます。また、回避策との「コミュニケーション」を確立することができます。 DMスクリプトは、ハードドライブ上の特定のフォルダを「監視」し、このフォルダ内の(特定の)ファイルが作成または変更されるたびに何らかのアクションをトリガーすることができます。

この「書き込みディスク」と「ウォッチ・フォー・チェンジ」メソッドを使用して、2つのプログラムが互いに同期して動作するようにすることができます。

Labviewがこれを直接サポートしていない場合、一般的なシステムにサードパーティ製の「スクリプト」言語を使用することで、同様の「ハッキング」同期を達成することができます。私は以前はAutoItというソフトウェアを個人的に使用していましたが、互換性のないソフトウェアと制御ハードウェアを同期させました。

あなたがC++プログラミングを知っていれば、DigitalMicrographため「ソフトウェア開発キット(SDK)」を取得し、DigitalMicrographための独自のLabVIEWで通信プラグインを作成することができます。

このオプションは、あなた自身のC++コードで達成できるものによってのみ制限されるため、もちろん最も汎用性があります。欠点は、異なるバージョンのDigitalMicrograph用にプラグインDLLを再コンパイルする必要があることです。

+1

Labviewは、コマンドラインで外部プログラムを呼び出し、2つのパラメータを添付することができます。 –

関連する問題