FAQ

FAQ検索結果

検索キーワード:

QFAMOS 2021以降のバージョンでサンプルデータがどこにあるのか知りたい。

A

FAMOS 2021以降でのサンプルデータのパスは下記になります。
C:¥Users¥Public¥Documents¥imc¥imc FAMOS¥_Demo Projects¥_Demo Files¥dat

なお、FAMOS 7.5までのバージョン、あるいは以前のバージョンからバージョンアップした場合、サンプルデータのパスは下記になります。
C:¥imc¥Dat

製品詳細はこちら

回答を閉じる

Qエンジンの回転パルスを計測しました。各回転パルス間の時間を求めることはできますか?

A

関数“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ファイルの読み込み方法

A

WAVファイルの読み込み方法には2種類あります。

サウンドキットの利用方法

以下の関数を実行してください。

(デフォルトのデータディレクトリー[c:\imc\dat]が参照されていることを前提にしています。)

Data = SndReadF( "Ding", 1)

関数の実行に成功すると、WAVファイルは変数としてFAMOS変数リストに表示されます。

インポートフィルターの利用

インポートフィルターを利用すると2chより多いチャンネル数のWAVファイルを読み込むことができます。

また、インポートフィルターを利用すると、WAVファイルをFAMOS標準形式のデータのように扱うことができます。

製品詳細はこちら

回答を閉じる

Qテーブルビュー: テーブルセルに数値を動的に設定したい

A

関数”DlgSetCellValue”関数を使用してください。

 DlgSetCellValue("Table", 2, 1, 1000)

製品詳細はこちら

回答を閉じる

Q入力信号の表示範囲

A

フロントエンドの入力は、少し用途が異なります。

フロントエンド入力はオシロスコープのように時系列波形をモニタリングするために用意しています。

信号のレベルなどのチェック用として使用してください。

お客様は恐らく、FFTを行う際に使用する1ウィンドウ幅に相当する時系列波形をご希望になられているのだと思います。

これはトリガーブロックという波形を選択することで表示できます。

操作方法は、

(V7以降) 表示/グラフタブ>ウインドウ>追加・削除を選択してください。
(V6以前) メニュー"ウィンドウ/追加・削除"を選択してください。
ダイアログが表示されますので、"FFT1"タブを選択してください。
"トリガブロック(Triggered Block)"を選択してください。

製品詳細はこちら

回答を閉じる

Qカーソルを使って値を取得する方法

A

カーソル位置の値を取得し、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オクターブ分析データの表示

A

オクターブ分析されたデータの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実際にNVGateとの通信を体験するツールはありますか?

A

下記の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の価格や詳細については東陽テクニカ機械制御計測部にお問い合わせください。
お問い合わせフォーム

回答を閉じる

Q変数名に連続した番号を付けているのですが、ループを使って処理できますか?

A

例えば、以下のようなチャンネル名(データ)が存在するとします。

    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 _* 		     	        ;必要のない変数を削除

製品詳細はこちら

回答を閉じる

Q凡例を表示させたくない(手動設定)

A

デフォルト設定では、2チャンネル以上がカーブウィンドウに読み込まれると自動的に凡例を表示するように設定されています。
2チャンネル以上読み込んだ場合に凡例を表示させたくない場合、以下の手順に従ってください。

(1)カーブウィンドウメニュー”オプション/凡例”をクリックしてください。
(2)”凡例の表示”リストから”表示しない”を選択します。

製品詳細はこちら

回答を閉じる

Q製造国はどこですか?

Qソフトウェアの特注はできますか?

A

弊社の開発部で様々なソフトウェアを製作した経験があります。ご連絡ください。

回答を閉じる

Q繰り返し加振信号を入力し、任意回数の加振後にFFT解析結果を取得

A

マクロを使うと実現できます。

最初にプロジェクトを作成します。

(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エクスポートする際にWAVとOR25形式の違いは?

A

OR3xは24bitの分解能を持っています。対してOR2xは16bitです。
OR25形式で出力する場合、24bitから16bitに丸めます。(精度は悪くなります。)

サンプリングレートなどは変更ありません。

Wav形式の場合、24bitから16bitに丸め、さらにサンプリングレートをWindowsのWavフォーマットがサポートする44.1kHzなどにリサンプリングします。

【参考】
UFFは24bitで保存します。

製品詳細はこちら

回答を閉じる

Q測定データが保存されない

A

NVGateでは"表示"と"保存"で、チャンネルをそれぞれ設定可能です。

今回の場合、表示はされているが、保存の設定を行っていないと思われます。

保存の設定は、メニュー”ファイル/保存設定”を選択してください。

このとき、以下を確認してください。

  • ネイティブフォーマット”OR3X”にチェックされているか?

  • 保存オプションで”名前を確認”、もしくは”名前を確認しない”にチェックされているか?

この後、”保存設定”クリックします。

このダイアログで保存したい解析内容を選択して、右側のリストに組み込んでください。

製品詳細はこちら

回答を閉じる

Q平均化のパラメータについて教えてください。

A

引数は以下のように定義されています。

AveragingType

0 平均化なし
1 線形数値平均(平均化されるスペクトルの量はパラメータ'Reduction'によります)
 例えば、Reduction=10と指定した場合、1~10th,11~20th...の平均を表示します。
2 ピークホールド(最大)
 Reductionの設定に拘わらず、全てのスペクトラムのピーク値をホールドします。
3 低減化されたスペクトルのピークホールド(最大)
 Reductionで設定された回数内でのスペクトラムのピーク値を求めます。
4 ピークホールド(最小)
5 低減化されたスペクトルのピークホールド(最小)

スペクトラムキットで周波数計算を行う場合、下図のようにオーバーラップさせながら指定されたウィンドウ長毎に計算します。

このとき、引数AverageTypeのパラメータを指定することにより、さまざまな結果を取得することができます。

以下のサンプルシーケンスを利用して、参考結果として示します。

  ; サンプルデータの作成
  _t = ramp(0,0.1, 30000)
  
a1 = sqrt(2)*2*sin ( _t *(0.3*PI2)*(_t/400+1) )*(_t/1000+1)
  xdelta a1 0.001
  

  ; パラメータ設定
  AveragingType = 3
  Reduction = 5
  

  ; 関数
AmpSpec_Lin1 = AmpSpectrumRMS(a1,512,0,0,Reduction,AveragingType)

また、Reduction=5と指定した場合、5,10,15...番目のブロックが出力されます。

(Y軸の値はブロック数を示しています。5ブロック毎に出力されるため、57/5=11ブロックあります。)

パラメータ:1

線形数値平均します。(平均化されるブロック数はパラメータ'Reduction'に依存します)

例えば、Reduction=5と指定した場合を示します。結果は、ブロック1~5までの平均値を1つの結果として、6~10、11~15...と続きます。

パラメータ:2

Reductionで指定した値により、指定ブロック毎に結果を出力します。

但し、Reductionの設定に拘わらず、計算結果は全てのブロックに対するピーク値を出力します。

下図はReduction=5を指定した例です。

Reduction=1を指定すると、以下のようになります。

パラメータ:3

Reductionで設定された回数内でのスペクトラムのピーク値を求めます。

例えば、Reduction=5を指定すると、1番目の結果は1~5ブロックのピーク値を出力し、2番目の結果には6~10ブロックのピーク値を出力します。

製品詳細はこちら

回答を閉じる

QLOADコマンドで読み込むとエラーになる

A

エラーになる場合に、パスにスペースや括弧などが含まれていませんか?

C:\My Doduments\data.dat
C:\Program Files\Common Files\Imc\Com\Experiments\Demo554\2001-12-04 13-50-21 (1)\Acc1 (01).RAW

関数"Load"はこれらのパスを受け付けません。

対策1

パス名をダブルコーテーションで囲ってください。

(NGの例題) : Load C:\test\data1.dat
(OKの例題) : Load "C:\test\data1.dat"

対策2

このようなパスを選択する可能性がある場合、関数グループ13の"ファイル関数"を使用してください。
以下にサンプルを示します。

;_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
;_/
;_/ ファイルパスにスペースや括弧が
;_/ 含まれたデータを読み込むことができません。
;_/
;_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

;ダイアログからデータファイルを選択します。

_FName = DlgFileName( "","","",0)

;------------------------------------------
;パスにスペースなどが存在する場合、
;Loadコマンドでは読み込めません。
;以下のコマンドはエラーになります。
;
;Load <FName>
;------------------------------------------


;------------------------------------------
;このような場合、以下のようにグループ13の
;ファイル関数を使用してください。

;------------------------------------------
_ID     = FileOpenDSF( _FName, 0)
_Num = FileObjNum?( _ID)
_i=1
While _i<=_Num
    _Name    = FileObjName?( _ID, _i)
    <_Name> = FileObjRead( _ID, _i)
    _i=_i+1
End
_err = FileClose( _ID)

Delete _*

製品詳細はこちら

回答を閉じる

Qビット演算

A

ビットデータを取得するためには以下の関数を使用してください

    ;DATAの3ビット目を取得します。
    Bit3 = Mod( Floor( Data / 2^3 ), 2)

Example

65535までの値を各ビット毎に取得します。

;サンプルデータの生成
Data_DEC = Ramp( 0, 1, 2^16)


i=0
While i<16
    Result = "BIT" + TForm( i, "F00")
    <Result> = Mod( Floor( Data_DEC / 2^i ), 2)

    SetDataFormat(<Result>, 8, 0, 0)

    i=i+1
End

ちなみにMicrosoft Excelでは"DEC2BIN"という関数を使用しますが、符号ビット+9bitまでしか計算できません。

製品詳細はこちら

回答を閉じる

Q方向(+X)を設定する必要はありますか?

A

モード解析を実施するためにはDOFの設定が必要です。

DOFの設定はNVGateで行っていただいてもME'Scopeで行っていただいてもどちらでも結構です。
ご都合の良い方で設定をしてください。

- NVGateでDOFの設定をする方法 -

NVGateではASBの以下に示す設定でDOFの設定をする事が出来ます。

  • ノードの設定:"アナライザ設定ブラウザ/フロントエンド/入力/入力x/ノード"
  • 方向の設定:"アナライザ設定ブラウザ/フロントエンド/入力/入力x/方向"  

またシーケンス機能を使用する事でDOFの設定を自動的に行う事が出来ます。

製品詳細はこちら

回答を閉じる

FAQ一覧へ戻る