OROS社 OR3x
マクロに関するFAQ
Qマクロとは?
Qプロジェクトを自動で読み込みたい
FAQ ID:x150
現在、次のように計測を行っています。
事前に複数のプロジェクトを用意しておきます。例えば、TestA、TestB、TestC
測定はModel1という製品に対してはTestA、TestCを行い、Model2に対してはTestB、TestCというパターンで行います。
現在、自分でプロジェクトを切り替えて操作していますが、NVGateのマクロ機能を使用した場合、この切り替えを自動で行うことはできますか?
尚、各テスト(例えば、TestA)の測定を行った場合、測定後に結果を保存するかどうか確認メッセージを出し、保存しない場合には再度試験を実行するようにしています。
NVGateのマクロを利用すれば可能です。
サンプルマクロを用意しました。
マクロファイル | |
---|---|
ModelA.macro | TestAとTestCを実行します |
ModelB.macro | TestBとTestCを実行します |
プロジェクトファイル | |
---|---|
Menu | マクロを選択するためのメニューです |
TestA | TestAのプロジェクト |
TestB | TestBのプロジェクト |
TestC | TestCのプロジェクト |
設定方法
マクロファイルは以下のフォルダにコピーしてください。
C:\Program Files\OROS\OR3X\Macros
プロジェクトファイルは、メニュー"ファイル/インポート/プロジェクト"でインポートしてください。
使用方法
最初にインポートしたプロジェクト"Menu"を読み込み、コントロールパネルを開きます。
Qマクロの実行状態を確認できますか?
FAQ ID:x110
可能です。
ログウィンドウの”マクロトレース”を確認してください。以下のように実行状態を確認できます。
ログウィンドウは、ホームタブ内の”ワーキングセット”> “ログウィンドウ” にチェックを入れると確認できます。
また、トレースコマンドを利用すると希望するメッセージを表示することができます。
例えば、下図のマクロに対し、計測待機中を示すメッセージを表示したい場合、マクロエディタの”アルゴリズムコマンド挿入”ボタンをクリックしてください。
左側のコマンドリストから”トレース”を選択し、メッセージに表示させたい文字列を設定します。
以下のようにマクロエディタにトレースコマンドが挿入されますので、”実行”ボタンをクリックしてください。
ログウィンドウには以下のように表示されます。
Qマクロレッスン:はじめてのマクロ
FAQ ID:x020
ここでは、FFTの平均サイズ(平均に使用するFFTの個数)を100から300へと自動変更して計測を行うマクロを作成してみます。
準備
入力1をFFT1に接続して、平均スペクトラムを表示させてください。また、アナライザ設定ブラウザを開き、FFT1のパラメータを以下のように変更してください。
- サイズ :100
- タイプ :リニア
それではスタートボタンを押して解析を開始してください。スペクトラムが計算され、数秒後(今回の設定では4sec後)に自動で停止します。
以上で準備は完了です。
マクロの作成(1)
それでは、実際にマクロを作成してみましょう!
【STEP1】
マクロ作成ダイアログを表示させます。
メニュー"ツール/マクロ/新規"を選択してください。
以下のダイアログが表示されます。
【STEP2】
リストの"マクロ終了"を選択してください。
【STEP3】
これから平均サイズを100から300へ変更します。
マクロエディタの右側にある"オンライン記録ボタン"をクリックして記録モードに切り替えます。
"オンライン記録ボタン"は以下のように"記録停止ボタン"に切り替わります。
【STEP4】
このままアナライザ設定ブラウザ内のFFT1-平均-サイズをダブルクリックして、設定ダイアログを表示し、値を300に変更してください。
OKボタンをクリックすると、以下のように現在の操作がマクロエディタに記録されます。
【STEP5】
マクロの記録を終了するために、"記録停止ボタン"をクリックしてください。
【STEP6】
もし上記STEPで不要なコマンドが作成された場合、リストの項目を選択して、"削除ボタン"をクリックする事で、選択したコマンドを削除します。
マクロの動作確認(1)
それでは作成したマクロが正しく動作するか確認してみましょう。
マクロエディタを表示させたまま、先ほど設定した平均サイズを100に変更してください。
次にマクロエディタ内の"実行ボタン"をクリックしてマクロを実行させます。
平均サイズは300に変更されましたか?
マクロの作成(2)
それではもう少し進んでみましょう!
今度は設定変更後に自動で測定を開始するように変更します。
【STEP1】
リストの"マクロ終了"を選択してください。
【STEP2】
マクロエディタの右側にある"オンライン記録ボタン"をクリックして記録モードに切り替えます。
【STEP3】
スタートボタンをクリックします。
以下のように現在の操作がマクロエディタ記録されます。
【STEP5】
マクロの記録を終了するために、"記録停止ボタン"をクリックしてください。
マクロの動作確認(2)
それでは作成したマクロが正しく動作するか確認してみましょう。
先ほど設定した平均サイズを100に変更してください。
次に"実行ボタン"をクリックしてマクロを実行させます。
平均サイズは300に変更され、測定は自動で開始されましたか?
マクロの保存
作成したマクロを保存します。"保存ボタン"をクリックしてください。
現在のマクロはリストの先頭行に表示された名称で保存されます。
"閉じる"ボタンをクリックしてマクロエディタを閉じてください。
マクロの呼び出し
作成したマクロを実行させるためにはツールタブ内のマクロ欄の管理ボタン(V6以前の場合はメニュー"ツール/マクロ/管理")で作成したマクロを選択して"実行"ボタンをクリックしてください。
このダイアログの"プロパティ"ボタンをクリックして"ホットキー"に割り当てることも可能です。ホットキーに割り当てると、メニューからダイアログを呼び出す必要なく、マクロを実行できます。
また、コントロールパネルに作成したマクロを割り当てることもできます。
アナライザ設定ブラウザの下にある、コントロールパネルを開き、コントロールパネル上で右クリックして"コントロールパネルのカスタマイズ"を選択してください。下図ダイアログが表示されます。
マクロタブから作成したマクロを選択して、右側のリストへ挿入します。"OK"をクリックすると以下のようにコンロトールパネルにマクロを実行させるボタンが追加されます。
マクロの再編集
作成したマクロを実行させるためにはツールタブ内のマクロ欄の管理ボタン(V6以前の場合はメニュー"ツール/マクロ/管理")でダイアログを表示し、作成したマクロを選択して"編集"ボタンをクリックしてください。
Qマクロレッスン:外部アプリケーションとの連携
FAQ ID:x013
外部アプリケーションとやり取りする簡単なマクロを紹介します。
最初にNVGateツールタブ内のマクロ項目の”新規"を選択してください。
下記ダイアログが表示されます。
リストの先頭にあるマクロ名を選択して、プロパティボタンをクリックしてください。
以下に示すように3つの変数を作成してください。
名前 | 形式 | 値 | |
---|---|---|---|
bFlg | 論理型 | 成功(True) | デフォルト値は何でも構いません |
intPara | 整数型 | 0 | デフォルト値は何でも構いません |
MyStr | 文字列型 | まだ設定されていません |
後で取り扱いやすくするために最初にマクロ名を変更しましょう。
保存ボタンをクリックしてください。"マクロ4"という名前で保存されます。
一度マクロエディターを閉じ、ツールタブ内のマクロ項目の”管理"を選択してください。
リストに"マクロ4"がありますので、これを選択し、"プロパティ"ボタンをクリックしてください。
名前を"testExecMacro"に変更します。
"OK"ボタンを押してください。
再度、マクロを編集しますので、"testExecMacro"を選択して、"編集"ボタンをクリックしてください。
マクロの作成
intParaの値に応じて処理を分岐させ、分岐後にメッセージボックスを表示させます。そのために、下図のようにifとメッセージボックスを組み合わせます。
メッセージボックスは以下のように表示する文字列を変数"MyStr"に設定してください。
マクロの実行
このままマクロを実行させると以下のようにintPara=0の分岐のメッセージボックスが表示され、文字列として最初に設定した"まだ表示されていません"が表示されます。
外部コマンドから実行
外部からNVGateにコマンドを送ります。NVGateにコマンドを送る場合は、ハイパーターミナルやTera Termのような端末エミュレータを使用するか、NVDriveを利用してコマンド送信プログラムを作成してください。今回は、Tera Termを使用します。Tera Term(TCP/IP ポート3000)を起動させて、以下のコマンドを実行させてください。
この結果、オプションパラメータにより分岐は"intPara=1"を実行して、文字列の内容を"abc"に変更します。
Qマクロレッスン:結果名を変更する
FAQ ID:x036
結果名を変更してみましょう!
準備
最初にベース名を”AAA”として以下のように保存設定を行い、OKボタンを選択します。
これで適当な測定(FFT等)を実行して保存すると、以下のような結果が保存されます。
マクロの作成
今後保存する結果に対して結果名を変更するためには、保存設定ダイアログの”ベース名”を変更する必要があります。
そこで、この操作をマクロに記録します。
【STEP1】
マクロエディターを起動させてください。
リストで”マクロ終了”を選択して、オンライン記録ボタン をクリックします。これでこれから行う操作が記録されます。
【STEP2】
保存設定を開き、”ベース名”を”BBB”へ変更し、”OK”ボタンをクリックしてダイアログを閉じてください。
【STEP3】
マクロエディタに戻り、収録ストップボタン をクリックしてオンライン記録を停止させます。
【STEP4】
リストには自動で以下のように記録されます。
ここで、”新しいメジャーの設定”は必要ないので削除してください。
【STEP5】
以上で設定は完了です。
以降、このマクロを実行させると、以下のように”BBB(数字)”という結果名で保存されるようになります。
Qマクロレッスン:マクロで時計を作る
FAQ ID:x035
マクロの作成
マクロのサンプルとして、時計を作成してみましょう!
【STEP1】
マクロ作成ダイアログを表示させます。
(V7以降) ホームタブ>ツール>マクロ>新規を選択してください。
(V6以前) メニュー"ツール/マクロ/新規"を選択してください。
以下のダイアログが表示されます。
【STEP2】
取得した現在時刻を格納する変数を定義します。
先頭行の"マクロ5"を選択して、プロパティボタンをクリックしてください。
追加ボタンをクリックして名前を"現在時刻"、タイプを"文字列"とします。
定義した変数が一覧に表示されます。
"OK"ボタンを押してダイアログを閉じてください。
【STEP3】
リストで"マクロ終了"を選択して、時間を取得するコマンドを挿入します。をクリックしてください。
【STEP4】
次に取得した現在時刻を表示するために"トレース"コマンドを挿入します。をクリックしてください。
図のように"パラメータ"を選択します。
【STEP5】
これまでの設定で以下のリストが生成されました。
これまでの結果を確認してみます。マクロエディタ内のボタンをクリックしてください。
左下の"マクロトレース"に以下のように表示されます。
【STEP6】
時計のように時々刻々と更新されるようにします。
リストで"ctime=現在時刻"を選択して、をクリックしてください。
値に1(秒)と入力します。
"OK"ボタンをクリックするとリストは以下のようになります。
ループ内で処理が行われるように" loop終了"を”トレース(ctime)を送出”の下にドラッグ&ドロップしてください。
【STEP7】
以上で完成です。
左下の"マクロトレース"に以下のように表示されます。
Qマクロレッスン:アラームとの連携
FAQ ID:x021
概要
結果テンプレートを使用して、結果テンプレートで設定したグラフよりFFTのスペクトラムレベルが大きくなった場合、メッセージを表示させるというサンプルマクロを作成します。
結果テンプレートの作成
最初に合否判定を行うための判定ラインを作成します。
(V7以降) ホームタブ>ツール>結果テンプレート>新規を選択してください。
(V6以前) メニュー"ツール/結果テンプレート/新規"を選択してください。
以下のダイアログが表示されますので、名前を付け、適用する予定のFFTの設定に合わせて、対応する設定を変更してください。特に、物理量については、適用先のFFTの物理量と一致させる必要があるため、必ず変更してください。
OKボタンをクリックするとテンプレート編集ダイアログが表示されます。
"ポイントの追加"ボタンをクリックして以下のようにテンプレートを作成してみます。作成したポイントを移動させるためにはマウスでドラッグ&ドロップします。作成したポイントは右側ペーンで直接値を指定して変更することも可能です。
テンプレートが完成したらウィンドウを閉じてください。テンプレートを保存するかどうか下図ダイアログが表示されますので、はい(Y)を選択して保存してください。
作成したテンプレートはプロジェクトに作成されます。
テンプレートの表示
FFT解析結果とテンプレートを重ねて表示させます。
まず、OROSに接続した状態で、FFTウィンドウを表示させます。
テンプレートを重ねます。
プロジェクトマネージャーにあるテンプレートをFFT解析結果グラフまでドラッグ&ドロップします。
以下のようにFFTウィンドウ上に、作成した合否判定ラインが重ね書きされます。
アラームの追加
FFT解析結果と作成した合否判定ラインを連携させるために"アラーム"を設定します。アラームを設定するためには、ツールタブ内の"アラームの追加"を選択(もしくは、グラフの灰色の部分で右クリックして、コンテキストメニューから"アラームの追加"を選択)し、前面に表示させたい波形名称を選択してください。
マクロ作成
アラームの動作を確認するため簡単なマクロを作成します。
マクロは測定結果がテンプレートで設定した値を超えているかどうかチェックして、超えている場合メッセージボックスを表示させます。そのために、判定に使用するif...thenと、それを繰り返すWhileを組み合わせます。例えば、次のようにマクロを組む事で、計測中に判定を行い、ラインを超えた段階で計測を停止させることができます。
(V7以降) ツールタブ>マクロ>新規を選択して、マクロエディターを起動します。
(V6以前) メニュー"ツール/マクロ/新規"を選択して、マクロエディターを起動します。
リストの先頭にあるマクロ名を選択して、 プロパティボタンをクリックしてください。
以下に示すように変数を作成してください。メッセージボックスの表示を設定するだけですので適当な名前を設定してください。
bFlg | 論理型 | True | デフォルト値は何でも構いません |
マクロエディターのリストにある"マクロ終了"を選択して、 コマンドボタンをクリックしてください。
左側のリストから"While"ループを選択して以下のように設定します。
左側のリストから"If...Then..."を選択して、以下のように設定します。
条件形式 | 簡単なアラーム |
---|---|
演算 | = |
値 | 交差 |
左側のリストから"メッセージボックス"を選択して、以下のように設定します。
以上で設定は完了です。
マクロの検証
マクロを実行させると計測が始まります。計測中、以下のように合否判定ラインを超えない状態では何も起こりません。
一方、下図のようにテンプレートの値を超えると、設定したメッセージボックスが表示され、計測が停止します。
注意
FFT結果が判定ラインに一瞬しかかからない場合、正しく判定されない可能性があります。これは、Whileループでif判定を繰り返している際、if判定とif判定の間にわずかな時間差があり、その間の結果は考慮されない(if判定が実行された瞬間の結果しか参照されない)ためです。そのため、もし判定がシビアな場合は、FFTの平均をピークホールドに設定いただく事をお勧め致します。ピークホールドであれば、合否ラインを超えた結果が残り続けるため、判定を逃すことが無くなります。
Q他のPCでマクロを使用するためには?
FAQ ID:x018
マクロファイルは下記のディレクトリに保存されています。
C:\OROS\NVGate data\Macros
この中にある".macro"ファイルをコピーして、対象のPCの同じ場所に保存してご利用ください。
なお、”アラーム”機能を使用した場合のように、特定の設定を使用する事が前提のマクロを移行する際は、元にしたプロジェクトも移行するのを忘れないようにしましょう。
プロジェクトを移行する方法については、プロジェクトを別のPCに移行する方法をご参照ください。
Q繰り返し加振信号を入力し、任意回数の加振後にFFT解析結果を取得
FAQ ID:x061
下図のようなシステムで加振器に対して繰り返し正弦波を入力します。
数回の正弦波を入力した後、応答信号が振動が安定しているかFFT解析で確認し、結果が安定したら結果を保存することは可能ですか?
マクロを使うと実現できます。
最初にプロジェクトを作成します。
(1) 入力1をFFT1に接続
(2) FFT1を以下のように設定
平均サイズを1
平均形式をエキスポネンシャル
トリガをマニュアルトリガ
(3) 結果を保存するように設定してください。
以上で、スタートボタンを押して計測を開始すると、マニュアルボタンを押す度にFFT解析結果が更新されることを確認してください。
次に信号出力の設定を行います。
(4) 信号出力のサインにサイン1を追加してください。
(5) サイン1のRMSレベルは0Vに設定してください。
(6) サイン1をフロントエンドの出力1に割り当てます。
以上でプロジェクトの設定は完了です。
次にマクロを生成します。新しいマクロを開いてください。
(7) パラメータの設定を以下のように定義します。
T1:浮動小数点型 (加振しない時間)
T2:浮動小数点型 (加振する時間)
Level:浮動小数点型 (出力レベル)
(8) T1、T2、Levelの初期値を設定します。
マクロはこのようになります。
(9) T1、T2、Levelの値をユーザが指定できるようにします。
各パラメータに対してパラメータ値設定コマンドを指定してください。
マクロはこのようになります。
(10) 加振を繰り返すためにループコマンドを挿入します。
(11) ループ内に信号出力のON/OFFを繰り返すように設定します。
(12) FFTアナライザの制御を加えます。以下のように”実行”、”マニュアルトリガ”を加えます。
これによりアナライザは起動し、各ループ毎にFFT解析します。
(13) 最後にストップボタンが押されたらマクロを終了するようにします。
サンプルファイル
Qアラームの判定結果を他のプログラムへ引数として渡す
FAQ ID:x213
OR30シリーズ マルチJOB FFTアナライザ NVGateを使用しており、マクロで次のようなことを考えているのですが可能でしょうか?
アラーム機能で合否判定ができることは理解しています。
■判定した結果出力(True, False)を他へプログラムへの入力信号とする
アラームの設定方法は「X021:マクロレッスン:アラームとの連携」で説明しています。参照してください。
ここでは、他のプログラムへ引数を渡す方法について説明します。
サンプルマクロとBATファイルを用意しました。ダウンロードしてください。
ダウンロードしたら、以下のディレクトリに配置してください。(Version 4以降)
Exec_Macro.macro | c:\OROS\NVGate Data\Macros |
---|---|
Exec_Macro.BAT | c:\OROS\NVGate Data\Links |
マクロは以下のようになっています。
ループを作成し、10回分BATファイルを引数付きで実行します。
BATファイルの内容は以下です。
echo %1
pause
このマクロを実行すると、以下のように引数が渡されていることがわかります。