FAQ
FAQ検索結果
検索キーワード:
Qオフセットの補償方法
Q複数チャンネルに対して一度に設定したい
可能です。
以下に手順を示します。
(全チャンネル同じ設定にしたい場合)
全チャンネルのウェイティングウィンドウがレクタンギュラに設定されています。
ウェイティングウィンドウと書かれている項目をダブルクリックします。ドロップダウンリストが表示されますので、設定したいウインドウを選択してください。(画像ではハニングに設定しています。)
全チャンネルのウェイティングウィンドウがハニングに変更されました。
(部分的に設定を変更する場合) 最初に1つだけ設定を変更します。
(下図ではチャンネル1のウェイティングウィンドウをフラットトップに変更しました。)
次にチャンネル1のウェイティングウィンドウのセル上で右クリックしてください。下図のようにコンテキストメニューが表示されますのでコピーを選択してください。
この後、他に設定したい複数のチャンネルをマウスの左ボタンをクリックしたまま選択します。
選択した範囲の上で右クリックしてください。下図のようにコンテキストメニューが表示されますので貼り付けを選択してください。
選択した範囲外のセルをクリックすると変更が反映されます。
Qユーザ定義したセンサデータベースを別のPCで利用したい
Qユーザーの切り替えダイアログを表示させたくない(1)
Qネットワークのプロトコルは?
QOROSの耐振動/耐衝撃性は?
OR36/38に組み込まれているハードディスクは衝撃や振動に対応するために特別なダンピング材でマウントされています。また、OR35-10J, OR36/38V3の場合はSSDが使用されています。従って、振動/衝撃に対してはある程度耐性があります。
例えば、OR36/38であれば、振動については、10 m/s² (5-500 Hz)、衝撃については100 m/s² (11 ms, ½ sine)以下であれば、計測を続けることができます。詳細は、リファレンスマニュアル内”Environmental / Compliance with standards”の”Shock”、”Vibration”をご参照ください。
Qどのようなプログラミング言語が使用できますか?
NVDriveはTCP/IPでの通信が基本技術になりますので、特別に指定されるプログラム言語はございません。
ただし、TCP/IPでの通信がサポートされているか、簡単に行える言語を選択されるのがよろしいかと思います。
また、データの型変換が必要になるケースがございますのでその点も考慮ください。Visual Besic.Net、C#(.Net)、C言語、Labview、Matlabなどが候補になるかと考えられます。
Q実際にNVGateとの通信を体験するツールはありますか?
下記のNvdConsole.exeのツールを用いてNVDriveでNVGateの制御を確認することができます。
<NvdConsole>
https………
- NvdConsole.exe
- .Net 4.7、 Windows7 64bit で動作確認しています。
ここでは以下のNVDriveのコマンドを使用します。
<使用するNVDriveコマンド>
- RUN
+ NVGateで測定を実行します。
- STOP
+ NVGateで測定をストップします。
※ 以下の手順を実行する際は、予期せぬことが発生した場合もリカバリーのできる環境で作業してください。
<手順>
NVGateの準備
1. NVGateを起動します。
1. NVGateの設定を初期値にするために、「ホーム」タブからセットアップの「リセット」を押します。
2. 「ホーム」タブの「入力選択」を開き、入力1の「電圧」にチェックを入れ、「結果」ボタンを押します。
図: 入力選択ウィンドウ
3. 結果ウィンドウの「FFT1」タブの「メイン」から「平均スペクトラム」、「電圧 > 入力1」を選択してFFTスペクトラムのグラフを表示します。
図: 結果ウィンドウ
図: FFTスペクトラムのグラフ
NVドライブコンソールでコマンドの実行
4. NvdConsole.exeをダブルクリックで起動します。
5. IPアドレスに「127.0.0.1」を入力してエンターキーを押します。
6. Portに「3000」を入力します。
7. NVGateとの接続が確立され、下図のようにNVDriveコマンドが入力待ちになります。
8. 「RUN」と入力してエンターキーを押してください。
9. 正しくコマンドが入力されると、NVGateで測定が実行されます。
10. 次にSTOPと入力します。
11. 正しくコマンドが入力されると、測定がストップします。
12. NvdConsole.exeを閉じるボタンで終了してください。
<手順終了>
このようにNVDriveを用いたプログラムではNVGateにコマンドを送ることによって、測定の自動化や高度な処理を作成することができます。上記の手順はNvdConsole.exe以外でもTCPクライアント機能を持つフリーソフト等を用いても確認することができます。
NVDriveには、NVGateのほとんどの設定項目にアクセスできるようコマンドが用意されています。例えば、FFTの設定項目を参照および変更したり、測定したFFTスペクトラムのデータを読込んだりなどはNVDriveのコマンドを利用することで可能になります。
NVDriveを購入いただくと、コマンドの完全なドキュメントを納品させていただきます。
NVDriveの価格や詳細については東陽テクニカ オートモーティブ・ソリューション部にお問い合わせください。
→ お問い合わせフォーム
QFAMOS 2021以降のバージョンでサンプルデータがどこにあるのか知りたい。
Qエンジンの回転パルスを計測しました。各回転パルス間の時間を求めることはできますか?
関数“SearchLevel”を使用すると簡単に求めることができます。
以下のようなコマンドでパルス間隔を求めることができます。
res = SearchLevel(data, 2, 5, 0, 2, 1, 0, 1)
res1 = CutIndex( res.X, 1, leng?(res.X)-1)
res2 = CutIndex( res.X, 2, leng?(res.X))
DiffTime = Res2-Res1
解説
最初に関数“SearchLevel”を使用して、5Vになった部分を検索します。
結果resには、検索された時間とそのときの値がX、Yのデータとして出力されます。
この結果に対して、インデックスを1つずらした波形を作成します。
これは以下のような処理を行っています。
res1 | 1個目のX座標 | 2個目のX座標 | 3個目のX座標 | 4個目のX座標 |
---|---|---|---|---|
res2 | 2個目のX座標 | 3個目のX座標 | 4個目のX座標 | 5個目のX座標 |
これらの値を減算することにより、各パルス時間間隔を求めることができます。以下にサンプルを示します。
;----------------------------------------------------------------
;サンプルパルスデータ作成
;各パルスの間隔が異なるように設定しています。
;----------------------------------------------------------------
;****************************
; Low=0, High=5のパルスデータを作成します。
;****************************
p=0 ;データ処理経過を%で表示
YUnit p %
show p
data = Leng(0,0)
i=1
While i<=720
data = Join( data, Leng(0,10+2*Mod(i,5))+0) ;0のデータを作成
data = Join( data, Leng(0,10+2*Mod(i,5))+5) ;5のデータを作成
p = i/720*100
i = i+1
End
data = XDel( data, 0.001);サンプルレートの設定
XUnit data s
Show data
CvXAxis( data, 0, 0.2, 0)
CvYAxis( data, data, 0, -1, 6, 10000, -2)
;----------------------------------------------------------------
;
これ以降が実際の処理です。
;----------------------------------------------------------------
;****************************
;トリガーポイントの検出
; 関数"SearchLevel"を使用します。
; 結果は立ち上がりエッジのX,Yデータとなります。
;****************************
res = SearchLevel(data, 2, 5, 0, 2, 1, 0, 1)
CvYAxis( data, Res, 0, -1, 6, 10000+5000+400, -2);データ表示。
実際の処理では必要なし
;****************************
;パルス間隔の計算
;****************************
res1 = CutIndex( res.X, 1, leng?(res.X)-1)
res2 = CutIndex( res.X, 2, leng?(res.X))
DiffTime = Res2-Res1
Show DiffTime ;データ表示。実際の処理では必要なし
CvYAxis( DiffTime, DiffTime, 0, 0, 0, 3000+300, -2)
;データ表示。実際の処理では必要なし
CvXAxis( DiffTime, 1, 20, 0)
;データ表示。実際の処理では必要なし
Q製品マニュアル
QWAVファイルの読み込み方法
WAVファイルの読み込み方法には2種類あります。
サウンドキットの利用方法
以下の関数を実行してください。
(デフォルトのデータディレクトリー[c:\imc\dat]が参照されていることを前提にしています。)
Data = SndReadF( "Ding", 1)
関数の実行に成功すると、WAVファイルは変数としてFAMOS変数リストに表示されます。
インポートフィルターの利用
インポートフィルターを利用すると2chより多いチャンネル数のWAVファイルを読み込むことができます。
また、インポートフィルターを利用すると、WAVファイルをFAMOS標準形式のデータのように扱うことができます。
Qテーブルビュー: テーブルセルに数値を動的に設定したい
Q入力信号の表示範囲
フロントエンドの入力は、少し用途が異なります。
フロントエンド入力はオシロスコープのように時系列波形をモニタリングするために用意しています。
信号のレベルなどのチェック用として使用してください。
お客様は恐らく、FFTを行う際に使用する1ウィンドウ幅に相当する時系列波形をご希望になられているのだと思います。
これはトリガーブロックという波形を選択することで表示できます。
操作方法は、
(V7以降) 表示/グラフタブ>ウインドウ>追加・削除を選択してください。
(V6以前) メニュー"ウィンドウ/追加・削除"を選択してください。
ダイアログが表示されますので、"FFT1"タブを選択してください。
"トリガブロック(Triggered Block)"を選択してください。
Qカーソルを使って値を取得する方法
カーソル位置の値を取得し、Excelにデータを転送します。
カーソルを使って値を取得すると、測定ポイントからずれるので修正しています。
;-----------------------------------------------
;ファイルの指定
;-----------------------------------------------
filename = DlgFileName("c:\imc\dat", "dat", "ファイルを開く", 0)
If TLeng( filename)=0
del FileName
ExitSequence
Else
FAMOS
Load <filename>DATA
del filename
Show DATA
End
;-----------------------------------------------
;ウィンドウ設定
;-----------------------------------------------
CvWin( DATA, 9) ;カーソルのみを表示
CvWin( DATA, 3) ;オーバービューウィンドウを表示
CvWin( DATA, 10) ;ナビゲータを表示
CvXAxis( DATA, XOff?(DATA), XOff?(DATA)+Leng?(DATA)/10*XDel?(DATA), 0)
CvYAxis( DATA, DATA, 0, 0, 0, 50000+4000+200, -2)
;-----------------------------------------------
;ダミーデータ
;-----------------------------------------------
P_X = Leng( 0, 0)
P_Y = Leng( 0, 0)
Point = XYOf( P_X, P_Y)
CvYAxis( DATA, Point, 0, 0, 0, 70000+5000+400, -2)
;-----------------------------------------------
;コメント文字列
;-----------------------------------------------
crlf = TAdd( SvToChar(0x0d), SvToChar(0x0a))
Text = TAdd( "カーソル位置が決定したら<再試行>ボタンを押してください。", crlf)
Text = TAdd( text, "シーケンスを終了する場合、<キャンセル>ボタンを押してください。")
exit=1
While exit
err = BoxMessage("",Text, "!3")
If Err=0
;-----------------------------------------------
;キャンセルならシーケンスを終了
;-----------------------------------------------
exit=0
Else
;-----------------------------------------------
;継続する場合、データを取得してExcelに転送
;-----------------------------------------------
xLeft = CvCursor(DATA,1)
xLeft = xLeft-Mod((xLeft-XOff?( DATA)), XDel?( DATA)) ;測定点に値を設定
P_X = Join( P_X, xLeft) ;測定点をカーブウィンドウに表示
P_Y = Join( P_Y, Value( DATA, xLeft))
Point = XYOf( P_X, P_Y)
Cell_1 = TAdd( "R", TForm( exit, "F00")) ;Excelに転送
Cell_N = TAdd( Cell_1, "C1")
err = DDESet( "Excel","Sheet1", Cell_N, TForm( exit, "F00"), 1)
Cell_N = TAdd( Cell_1, "C2")
err = DDESet( "Excel","Sheet1", Cell_N, xLeft, 1)
Cell_N = TAdd( Cell_1, "C3")
err = DDESet( "Excel","Sheet1", Cell_N, Value( DATA, xLeft), 1)
exit = exit+1
End
End
Qオクターブ分析データの表示
オクターブ分析されたデータのX軸は周波数スケールで等間隔になるように定義されています。但し、これらの値を以下のようにそのまま表示すると端数が出てしまいます。
このように単なる対数表示ではX/軸ラベルが一般的なオクターブ表示と多少異なりますし、軸の設定も煩雑です。通常、これらの端数を丸めた値を使用しています。
下表は1/3オクターブの中心周波数です。
Center [Hz] |
---|
1000 |
1250 |
1600 |
2000 |
2500 |
3150 |
4000 |
5000 |
6300 |
8000 |
10000 |
そこで、オクターブ分析されたデータのX軸をスケーリングします。スケーリングは以下の式に従います。
中心周波数=10^(スケールパラメータ/10)
X-Scaling | 中心周波数[Hz] |
---|---|
.. | .. |
-3 | 0.5 |
-2 | 0.63 |
-1 | 0.8 |
0 | 1 |
1 | 1.25 |
2 | 1.6 |
3 | 2 |
4 | 2.5 |
5 | 3.15 |
6 | 4 |
7 | 5 |
8 | 6.3 |
9 | 8 |
10 | 10 |
11 | 12.5 |
.. | .. |
20 | 100 |
30 | 1000 |
40 | 10000 |
41 | 12500 |
42 | 16000 |
43 | 20000 |
.. | .. |
このようにスケーリングすることで、X軸データは周波数スケールからリニアスケールに変換され、1/3オクターブではXスケールは0, 1, 2...となります。1/1オクターブでは0, 3, 6, 9, 12...、1/12-オクターブでは0, 0.25, 0.5, 0.75, 1, 1.25...です。
各周波数バンドのX間隔は次のようになります。
Width of Filter Band | Delta-x |
---|---|
1/1オクターブ | 3 |
1/3オクターブ | 1 |
1/12オクターブ | 0.25 |
1/24オクターブ | 0.125 |
FAMOSはこのスケーリングに対応した表示モードを備えていますので、カーブウィンドウに表示させる際にはモードを切り替えるようにしてください。
標準表示モード
オクターブ表示モード
Q変数名に連続した番号を付けているのですが、ループを使って処理できますか?
例えば、以下のようなチャンネル名(データ)が存在するとします。
Ch1 Ch2 Ch3 : Ch15 Ch16
例えば、これらのチャンネルのデータを切り出す場合、それぞれ処理させると以下のようにプログラムが凡長になってしまいます。
Out01 = Cut( Ch1, 0, 10 ) Out02 = Cut( Ch2, 0, 10 ) Out03 = Cut( Ch3, 0, 10 ) : Out15 = Cut( Ch15, 0, 10 ) Out16 = Cut( Ch16, 0, 10 )
このとき、以下のように文字列関数を使ってチャンネル名を作成します。
Example
_i = 1 While _i <= 16 ;文字列としてチャンネル名を作成します ;---------------------- _temp = TForm( _i, "F00") ; 数値を文字列に変換 _ChName = TAdd( "Ch", _temp) ; 文字列を連結(Ch1) ;データ処理(例:波形の切り出し) ;---------------------- _temp1 = Cut( <_ChName>, 0, 10) ;作成した文字列に対応する変数を処理 ;<>で囲むと文字列に対応した変数を参照できます。 ;出力データの作成 ;---------------------- _Output = TAdd( "Out", _temp) <_Output> = _temp1 _i=_i+1 End Del _* ;必要のない変数を削除