FAQ
FAQ検索結果
検索キーワード:
Q位相が+/-720度で表示されています。+/-180度で表示するにはどうしたらいいですか?
QVersion 11.00 リリースノート
Q等間隔データをパルス信号で外部サンプリングしたい
以下のシーケンスで対応可能です。
関数SearchLebelでパルス信号のエッジを検出して、その時刻暦で関数Valueを使ってデータをリサンプリングします。
結果はResult1がYデータのみ、ResはXY波形としましたので、リサンプル前のデータと比較して効果を確認してください。
;----------------------------------------
;信号の定義
;----------------------------------------
_pulseorg = PULSEDATA
_data1 = SIGNAL
;----------------------------------------
;データ処理
;----------------------------------------
;パルス信号を検出
_pulseTemp = SearchLevel(_pulseorg, 2, 0, 0, 2, 0, 0, 1)
_pulse = _pulseTemp.X
;データ処理結果
Result1 = Value( _data1, _newPulse)
Res = XYof(_newPulse,Result1)
;----------------------------------------
;終了処理
;----------------------------------------
Del _*
Q"m"で表示されている単位を"μm"で表示したい
表示単位を設定することで対応可能です。
- メニュー"ユーザ/ユーザ設定"を選択してください。
(V7以降)
ホームタブ内の「物理量」をクリックします

(V6以前)
メニュー"ユーザ/ユーザ設定"を選択してください。

ダイアログが表示されるので、"物理量"タブをクリックしてください。 - 物理量タブの左側にあるリストから"変位"を選択してください。
- ダイアログの右側にあるリストで"メートル"が選択されていることを確認してください。
- 次に"新規"ボタンをクリックしてください。
新しい表示単位を作成します。 - 表示されたダイアログの"名前"に新しい表示単位を識別する名前を指定してください。
また、"プリフィックス"で"強制"をチェックして、リストからマイクロを意味する"μ"(バージョンによっては"オ")を選択してください。
- 以上で設定は終了です。"OK"ボタンを押してダイアログを閉じてください。
- 新しく設定した単位が選択されていることを確認してください。
- "適用"ボタンをクリックしてください。表示単位が変更されます。

QVersion 10.10 リリースノート
Q.xlsm(マクロ付きExcelファイル)から波形データを読み込みたい。
Q[変数]リストの[測定]タブへファイルサーバー上のファイルを読み込みたい。
Q等間隔データをパルス信号で外部サンプリングしたい(その2)
以下のシーケンスで対応可能です。
関数SearchLebelでパルス信号のエッジを検出します。
次に、この60[deg]間隔のパルスを関数LIPで1[deg]間隔に変換します。
そして、その時刻暦で関数Valueを使ってデータをリサンプリングします。
結果はResult1がYデータのみ、ResはXY波形としましたので、リサンプル前のデータと比較して効果を確認してください。
;----------------------------------------
;定数の定義
;----------------------------------------
_pdeg = 60 ;パルス間隔を60[deg]で処理
;----------------------------------------
;信号の定義
;----------------------------------------
_pulse60deg = PULSE60
_data1 = SIGANL
;----------------------------------------
;データ処理
;----------------------------------------
;パルス信号を検出
_pulseTemp = SearchLevel(_pulse60deg, 2, 0, 0, 2, 0, 0, 1)
_pulse = _pulseTemp.X
;60degパルスを1degに変換
_newPulse = Lip(_pulse, _pdeg)
;データ処理結果
Result1 = Value( _data1, _newPulse)
Res = XYof(_newPulse,Result1)
;----------------------------------------
;終了処理
;----------------------------------------
del _*
Q伝達関数 加速度/力 をdB表示させた場合、1[m/sec^2/N]を60dBとしたい
NVGateのdB表示方法について説明させていただきます。
dB表示は以下のように定義されます。
dB値 = 20*Log(物理量/0dBリファレンス)
例えば、
加速度の場合、デフォルト値で 0dBリファレンス=1E-6です。
1[m/sec2]の加速度は120[dB]と表示されます。
力の場合には、デフォルト値で 0dBリファレンス=1E-6です。
1[N]の加速度は120[dB]と表示されます。
ここで、伝達関数 加速度/力を求めた場合、以下のようになります。
dB値 = 20*Log([加速度の(物理量/0dBリファレンス)]/[力の(物理量/0dBリファレンス)])
さて、1[m/Sec^2]/[N]=60dBとしたい場合の対応ですが、NVGateのメニュー"ユーザ/ユーザ設定"を選択して、物理量タブを開き、加速度と力の0dBリファレンスを確認してください。以下のようにすることで60dBと表示可能です。
加速度の0dBリファレンス=1E-6
力 の0dBリファレンス=1E-3
加速度と力の関係に10^3の差があれば構いません。
QVersion 10.00 リリースノート
Q0を中心に±に振れる信号があります。正側を5倍、負側を3倍にしたい
以下のサンプルファイルを例にします。

この信号に対して0より大きい値を5倍、0より小さい値を3倍にします。
最初に必要なのでは、0より大きい信号を見つけることです。ある条件を設定し、値を抽出するためには関数SearchLevelを利用すると便利です。
resp = SearchLevel( Data, 2, 0, 0, 0, 0, 0, 0)
この関数を実行すると、0より大きい値を抽出します。

この信号を5倍して、元のデータに戻すことで目的を達成します。信号を5倍にするためには単純に5を掛ければよいです。元のデータに値を戻すには関数”Set”を利用します。
SearchLevelの結果はXY波形です。Set関数の第2引数にXデータ、第3引数にYデータを指定します。
Data = Set( Data, resp.X, resp.Y*5)
以上で結果は正側のみ5倍になります。

この後、負側も同様に行います。

以上です。
シーケンスは以下の通りです。
;***********************************************
;
; 正側を5倍、負側を3倍にします
;
;***********************************************
; 後でデータを比較するためにコピーします。
Data = sintest1
; 正側のデータを抽出します
resp = SearchLevel(Data, 2, 0, 0, 0, 0, 0, 0)
; 負側のデータを抽出します
resm = SearchLevel(Data, 1, 0, 0, 0, 0, 0, 0)
; 元のデータに演算結果を戻します
Data = Set(Data,resp.X, resp.Y*5)
Data = Set(Data,resm.X, resm.Y*3)
QNI社DIADEM .tdmsファイルを読み込みたい。
Ver 6.3から標準で読み込みに対応しています。ただし、NI社が公開するAPIが必要です。
NI社が公開するAPI(TDM C DLL)ファイルを解凍後、下記へコピーして下さい。 なお、NI社が公開するAPIについてのサポートはできませんのでご了承下さい。
・32bit OSの場合
tdm_c_dll\Dominonilibddc\dev\bin\32-bit フォルダー内の全ファイルを
C:\Program Files\imc\shared\Extensions フォルダーへコピーして下さい。
・64bit OS + 32bit FAMOSの場合
tdm_c_dll\Dominonilibddc\dev\bin\32-bit フォルダー内の全ファイルを
C:Program Files (x86)\imc\shared\Extensions フォルダーへコピーして下さい。
・64bit OS + 64bit FAMOSの場合
tdm_c_dll\Dominonilibddc\dev\bin\64-bit フォルダー内の全ファイルを
C:\Program Files\imc\shared\Extensions フォルダーへコピーして下さい。
Q4 マイクロホンの手入れや取扱はどのようにすれば良いですか。
Q表示しているウィンドウのY軸を一度にdB (or リニア)に変更したい
QシーケンスでUFFファイルへ波形を保存したい。
UFFファイルなど、[ファイル]>[保存]から選択できるファイルフォーマットへ、FileOpenFAS()関数により開いたファイルへ保存できます。第2引数に指定するエクスポートDLL名とパラメーターは[エクストラ]>[オプション]から[インポートフィルター]の[ID]で確認できます。
「Q.BBM社PAK softwareで読み込み可能なUFFファイルをFAMOSから出力するには?」もご参照下さい。

例)
_id = FileOpenFAS("C:¥imc¥Datsintest1.uff", "#UffImportExport.dll|Universal File Format", 1)
SetComm(sintest1, "// Time Response")
FileObjWrite(_id, sintest1)
FileClose(_id)
Qパルス信号を回転数に変換したい
可能です。
以下のデータを対象とします。"pulse"はパルス信号、"signal"は加速度信号です。

以下の図はパルス信号の拡大図です。

最初にこのパルス信号の各パルスの立ち上がりポイントを取得します。
この位置を取得するためには関数"SearchLevel"を利用します。
res = SearchLevel( pulse, 2, 1, 0, 2, 0, 0, 1)
関数のパラメータを簡単に設定するためにはSearchLevelと記述した後で、関数の上にカーソルを置いてSHIFT+F1を押してください。以下のダイアログが表示され、パラメータを簡単に設定できます。

上の設定は1V以上の立ち上がりの変化ポイントを検出します。
この結果は変数リストに以下のように表示されます。
注意:
下図のように表示されない場合、変数リストの上で右クリックして、”コンポーネント表示”を選択してください。

結果は以下のように条件が成立した点だけ取得しますので、等間隔データではなく、XY波形となります。

この"res.X"変数はパルスの立ち上がりポイントのX座標を示します。

この結果を利用して回転数を求めます。
各ポイントのX座標の間隔は前後のデータのX座標の差分です。データ数を合わせるために1つずらしたデータを作成します。
res1 = CutIndex( res.X, 1, leng?(res.X)-1) res2 = CutIndex( res.X, 2, leng?(res.X))
これらの差分が各パルスの時間間隔です。
DiffTime = Res2-Res1
回転数(RPM)に変換するためには以下のようにします。
RPM = 1/DiffTime*60
以上よりRPM信号を取得できます。
例えば、この結果を利用して、加速度波形のRMSを求めてXYグラフを作成すると以下のようになります。
Acc = MvRMS(Signal,0.04,0.04) Result = XYof(RPM,ACC)

シーケンスは以下の通りです。
;*********************************************** ; ; パルス信号をRPMに変換 ; ; pulseという変数にパルス信号を入力してください ;*********************************************** ;パルスの立ち上がりを検出します。 res = SearchLevel(pulse, 2, 1, 0, 2, 0, 0, 1) ;パルスの立ち上がり時間間隔からRPMを算出します res1 = CutIndex( res.X, 1, leng?(res.X)-1) res2 = CutIndex( res.X, 2, leng?(res.X)) DiffTime = Res2-Res1 RPM = 1/DiffTime*60 ;この部分はおまけです。XY波形を作成します Acc = MvRMS(Signal,0.04,0.04) Result = XYof(RPM,ACC)
Q情報トレースに表示されるdB表示が小数点一桁までしか表示されない
QVersion 9.00 リリースノート
QVersion 8.30 リリースノート
Q間欠的な振動波形を波形毎に切り出してFFTしたい
以下のシーケンスでは各振動波形を切り出して、最後にFFT処理を行っています。
;ドリフト成分を除去します
_temp1 = FiltHP(data, 0, 0, 8, 1)
_temp2 = ExpoRMS(_temp1, 0.02, 0.02)
_temp3 = SearchLevel(_temp2, 2, 1, 0, 0, 0, 0, 1)
;ここではSearchLevelでどのような処理をするのでしょうか?
;----------------------------------------------------
;各振動波形を分離するための座標を取得しています。
;結果を確認したければ、_temp2を表示させ、その上に_temp3を重ね書きしてください
;その後で_temp3のスタイルを丸などに変更すると結果を確認できます。

_temp4 = Leng(0,1024)
show _temp4
; Leng(0,1024)では波形が”0”になっています。どういう事でしょうか?
;なぜShowにて表示するのでしょうか?
;----------------------------------------------------
;計算途中を表示するために長さ1024の空の波形を作っています。
_temp6 = Leng(0,0)
; Leng(0,0)では波形が”0”になっています。どういう事でしょうか?
;----------------------------------------------------
;後のループで値を代入するために_temp6というダミー波形を作成しました。
_i=1
while _i<Leng?(_temp3)
_temp5 = Cut(_temp1, _temp3[_i].X-0.1, _temp3[_i+1].X-0.1)
_temp4 = Leng(_temp5, 1024)
_temp6 = Join(_temp6, _temp4)
_i=_i+1
end
;これらの行でどのような処理をされているのでしょうか?
;----------------------------------------------------
;SearchLevelで検出した各振動波形毎にデータを切り出し、
;そのデータ長さを1024点に拡張して、再構成しています。
Result = AmpSpectrumRMS_1(_temp6, 1024, 0, 0, 1)


![[変数]リストの[測定]タブへファイルサーバー上のファイルを読み込みたい](https://assets.toyo.co.jp/files/user/mecha/images/imc/FAQ/FAMOS_FAQ8_01.png?v=1592978355)




