FAQ
FAQ検索結果
検索キーワード:
Qカーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネル その4
カーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネルを用意しました。
FAMOSでサンプルパネルを読み込んで実行してください。
本サンプルパネルでは下記の関数の使用例を紹介します。argNは引数を表しています。
CwNewElement("marker") ; マーカーの追加
CwMarkerSet("x", arg1) ; マーカーのX座標の指定
CwMarkerSet("text", arg1) ; マーカーに表示するテキスト
CwMarkerSet("color.text", arg1) ; マーカーのテキスト色
CwMarkerSet("color.background", arg1) ; マーカーの背景色
CwMarkerSet("angle", arg1) ; マーカーの線の角度
CwDeleteElement("marker") ; マーカーの削除
Qカーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネル その3
カーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネルを用意しました。
FAMOSでサンプルパネルを読み込んで実行してください。
変数リストの[測定]タブで波形を1つ選択してください。
本サンプルパネルでは下記の関数の使用例を紹介します。argNは引数を表しています。
CwSelectByIndex("cosys", 1) ; 座標1を選択
CwNewChannel("append to cosys", arg1) ; 座標に波形を追加
CwAction("measure.show") ; 測定ウィンドウを表示
CwAction("measure.invisible") ; カーソルのみ表示
RX = CwDisplayGet("measure.x.right") ; 右カーソルのX値
RY = CwDisplayGet("measure.y.right") ; 右カーソルのY値
LX = CwDisplayGet("measure.x.left") ; 左カーソルのX値
LY = CwDisplayGet("measure.y.left") ; 左カーソルのY値
Qカーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネル その2
カーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネルを用意しました。
FAMOSでサンプルパネルを読み込んで実行してください。
変数リストの[測定]タブで波形を3つ選択してください。
本サンプルパネルでは下記の関数の使用例を紹介します。argNは引数を表しています。
CwDisplaySet("displaymode", arg1) ; 表示形式(重ね書き、スタック、ウォーターフォール等)を指定します。
CwDisplaySet("colors.printer.indiv", 1) ; パネル上のカーブウィンドウの色を操作することを宣言します。パネル上のカーブウィンドウはprinter、通常のカーブウィンドウはscreenになります。
CwColorSet("cos.back", arg1, arg2, arg3) ; 座標の内側(波形の背景)の色を指定します。
CwColorSet("back", arg1, arg2, arg3) ; 座標の外側の背景色を指定します。
CwColorSet("text", arg1, arg2, arg3) ; 軸のテキストの色を指定します。
CwColorSet(1, arg1, arg2, arg3) ; 1番目の波形の色を指定します。
CwColorSet(2, arg1, arg2, arg3) ; 1番目の波形の色を指定します。
CwColorSet(3, arg1, arg2, arg3) ; 1番目の波形の色を指定します。
RGB() ; 赤緑青の数値を指定して色を表す値を生成します。
Qカーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネル その1
カーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネルを用意しました。
FAMOSでサンプルパネルを読み込んで実行してください。
変数リストの[測定]タブで波形を2つ選択してください。
本サンプルパネルでは下記の関数の使用例を紹介します。arg1は引数を表しています。
CwSelectWindow(arg1) : カーブウィンドウ関数が操作する対象のカーブウィンドウを指定します。
CwDisplaySet("legend.display", arg1) ; 凡例の表示・非表示を指定します。
CwDisplaySet("grid", arg1) ; グリッドの表示・非表示を指定します。
CwSelectByIndex("x-axis", 1) ; 操作する軸としてX軸を指定します。
CwAxisSet("scale", arg1) ; 表示形式(線形、対数、絶対時間など) を指定します。
CwAxisSet("range", arg1) ; 軸の表示範囲を指定します。
CwAxisSet("max", arg1) ; 表示範囲の上限を指定します。
CwAxisSet("min", arg1) ; 表示範囲の下限を指定します。
Qアステロイド(星芒形)波形を作りたい。
QシーケンスでCSVファイルへ保存したい。
ASCII Export Template機能によりCSV等のテキストファイルへ保存できます。 テキストファイルの書式は[エクストラ]>[オプション]>[ファイル 保存/エクスポート]>[ASCII]で定義できます。
「FAMOS_CSVエクスポート方法(ASCII Export Template).pdf」を参照して下さい。 シーケンスでの使用例は下記の通りです。
例)
_id = FileOpenASCII2("C:¥imc¥DatTemptemp1.csv", "CsvSample", 1) ; ファイルを開く
_err = FileObjWrite(_id, sintest1) ; 変数を書き込む
_err = FileObjWrite(_id, sintest2)
FileClose(_id) ; ファイルを閉じる
Q変数をスピーカーで音として再生したい。(Version 5以前では)
Q積分した波形を記録したい
入力設定タブ>フィルタ設定をクリックして、積分1を入力1に接続してください。


フィルタ接続プロパティが表示されますので、タイプに"HP + 1階積分"もしくは"HP + 2階積分"を選択して、"OK"ボタンをクリックしてください。加速度を1階積分した場合は速度、2階積分した場合は変位になります。

Q等級線を使ったレベル判定
データロガーやFFTアナライザーを使って測定したデータに対して、等級線を使用して良否判定する方法を紹介します。

上図において、波形Speedは測定データです。波形は等級線です。
等級線は以下のようなデータを設定しています。
| Limit.X | Limit.Y |
|---|---|
| 0.5 | 5 |
| 2 | 3 |
| 3 | 3 |
| 3.5 | 4 |
例えば、測定波形が等級線を越えた場合、不良品であると仮定します。
設定したレベルを超えたかどうか判断するために関数Subを利用してください。
Judge = Sub( Speed, Limit, 0
結果は以下のようになります。

注意:
ここで、結果JudgeのX軸範囲に注目してください。
等級線で設定された範囲のみで計算します。
結果Judgeが0より大きい値を持つとき、不良であることを示します。
0より大きい値を持つかどうかは以下のように簡単に判定することができます。
IF ?Max( Judge) > 0
Err = BoxMessage( "良否判定","この製品は規格を満たしていません", "!1")
End
サンプル
測定波形は既に用意されているとします。
;***************************************
;等級線を作成します
;***************************************
tempX = Leng( 0, 4)
tempX[1] = 0.5
tempX[2] = 2
tempX[3] = 3
tempX[4] = 3.5
tempY = Leng( 0, 4)
tempY[1] = 5
tempY[2] = 3
tempY[3] = 3
tempY[4] = 4
Limit=XYof( tempX, tempY)
;***************************************
;判定
;***************************************
Judge = Sub( Speed, Limit,0)
IFMax( Judge) > 0
Err = BoxMessage( "良否判定","この製品は規格を満たしていません", "!1")
End
サンプル
さらに数段階の等級を設定し、等級判定することもできます。
測定波形は既に用意されているとします。

;***************************************
;等級線を作成します
;***************************************
i=1
While i<=7
tempX = Leng( 0, 4)
tempX[1] = 0.5
tempX[2] = 2
tempX[3] = 3
tempX[4] = 3.5
tempY = Leng( 0, 4)
tempY[1] = 2+i
tempY[2] = 0+i
tempY[3] = 0+i
tempY[4] = 1+i
FName = TAdd( "Level", TForm( i, "F00"))
= XYof( tempX, tempY)
GrChanAppend( Limit, )
Del
i=i+1
End
;***************************************
;判定
;***************************************
i=1
While i<=7
FName = TAdd( "Level", TForm( i, "F00"))
Judge = Sub( Speed, Limit:,0)
IF Max( Judge) < 0
Mes = TAdd( "この製品のレベルは", TForm( i, "F00"))
Mes = TAdd( Mes, "です。")
Err = BoxMessage( "レベル判定",Mes, "!1")
i=7
End
i=i+1
End
Q文字列の長さ
Qボタンの名前を動的に変更したい
QOROSの最大値検出方法について
定義
最大値の検出については以下のように定義されています。
最大値とは予め設定したスレッショルドを超えた極大値のことを意味します。


シーケンス
;***********************************************
;OROS最大値検出
;***********************************************
;Parametas -------------------------------------
_k_MaxThresh = 20
;初期値の設定-----------------------------------------------
_k_tempMax = -1E20
_k_tempMin = -1E20
_k_Prev = 0
_k_SampTime = XDel?(Data)
If Data[2]>Data[1]
_k_Prev = 1
End
_k_i=3
MaxiX = Leng(0,0)
MaxiY = Leng(0,0)
While _k_i<=Leng?(Data)
If Data[_k_i]>Data[_k_i-1]
If _k_Prev<>1 _k_Prev=1 ;パターンDU
If Data[_k_i-1]<_k_TempMin
_k_TempMin = Data[_k_i-1]
End
End
Else
If _k_Prev=1
_k_Prev=0 ;パターンUD
If Data[_k_i-1]>_k_TempMax
_k_TempMax = Data[_k_i-1] ;一時的な極大値の更新
_k_TempX = (_k_i-2)*_k_SampTime
End
End
If _k_TempMax-_k_MaxThresh>Data[_k_i]
If _k_TempMax-_k_MaxThresh>_k_TempMin
MaxiX = Join(MaxiX, _k_TempX)
MaxiY = Join(MaxiY, _k_TempMax)
_k_TempMax = -1E20
_k_TempMin = 1E20
End
End
End
_k_i=_k_i+1
End
;------------------------------
;データ処理部
;------------------------------
_k_TempX = Sort( MaxiY, 4) ;データを大きい順に並べ、そのときのインデックスを取得
_k_TempX = _k_TempX+1 ;ソートした結果はX単位ですのでインデックスに変換します。
MaxiX = ValueIndex(MaxiX, _k_TempX) ;Xデータを並べ替えます
MaxiY = Sort( MaxiY, 2) ;Yデータを昇順に並べ替えます
;sweap variable-----------------------------------------
Delete _k_*
Q等価騒音レベルを求めたい。
QFFT結果に後からA特性を適用する
Qビデオと波形データの同期方法
ビデオキットを使用するとビデオ画像と波形データを同期させて観測することができるそうですが、具体的にはどのように同期を取るのか教えてください。
回答1(ハードウェアで同期させて計測)
測定する際にトリガー信号を使ってビデオとデータロガーを同時にスタートさせることが最も簡単です。この場合、後で何も処理する必要はありません。
通常のデータロガーであればトリガー計測を行うことができます。また、ビデオも”リモートコントロールキット”などのオプションが各メーカーから発売されています。これをデータロガーのトリガー信号と同期させればビデオと波形データの同期を実現することができます。
回答2(測定時に同期できなかったので後処理で同期)
まず、ビデオと波形データの双方に同期を取ることのできる信号や現象を予め入力しておいてください。ビデオの場合フラッシュなどを炊くとわかりやすいです。

次にビデオのフラッシュがたかれた時間とデータロガーのトリガーがかかった時間を確認してください。
データロガーのトリガー時間は1.20秒でした。
ビデオのフラッシュがたかれた時間は以下のようにスライドバーを移動させて時間を確認してください。今回の場合、0.76秒でした。

まだ、ビデオと測定データのトリガー時間が異なっているので、トリガー時間を同期させます。
ビデオファイルを修正する場合
ビデオのトリガー時刻を修正するので以下のツールバーをクリックしてプロパティウィンドウを開いてください。

以下のダイアログが表示されます。
ビデオと波形データの時刻差は1.20-0.76=0.44秒なので”記録の相対的なX0”に0.44と設定します。

以上で設定は終了です。2つのファイルの同期が取れました。

測定データを修正する場合
今度は反対に測定データのトリガー時間を修正します。
波形のプロパティを開いて、X0に0.76-1.20=-0.44秒を設定してください。

以上で設定は終了です。2つのファイルの同期が取れました。
Qリストに動的にアイテムを追加したい
Qサンプルデモでダイアログ機能を体験
サンプルデモのダウンロード
FAMOS 5.0をインストールすると、ダイアログのサンプルもインストールされます。
但し、このサンプルは英語で記述されています。
このサンプルを日本語化したものを用意しました。
こちらより日本語のサンプルをダウンロードできます。
ダウンロードしたファイルを解凍して、任意のディレクトリに配置してください。
サンプルデモの実行
サンプルデモはFAMOS 5.0で新しく追加された機能であるプロジェクト形式で作成されています。
メニュー”プロジェクト/プロジェクトエクスプローラ”を選択してください。

次のダイアログが表示されます。ダウンロードしたプロジェクトを選択して、右側にある”プロジェクト実行”をボタンをクリックしてください。

以下のダイアログが表示されます。このダイアログがメインダイアログになります。ダイアログのリストに7種類のサンプルが用意されています。

サンプルを実行するためには、リストから実行したいサンプルを選択して、”ダイアログ実行!”ボタンをクリックしてください。
注意
これらのサンプルは全てFAMOSダイアログ機能で作成されています。
サンプル: はい/いいえ/キャンセル

これらのボタンを押すと以下のようにクリックしたボタンをメッセージで表示します。

サンプル: 数値入力

”OK”を押すと、入力した値をメッセージで表示します。

ここで、入力範囲外の値を入力した場合には以下のように警告が表示されます。このメッセージはプログラムを書かなくても自動で処理されます。

また、数値以外の値を入力した場合には以下のように警告が表示されます。このメッセージはプログラムを書かなくても自動で処理されます。

サンプル: 結果を表で表示

サンプル: ファイルとフォルダの選択
リストで表示したい項目を選択するとグラフが表示されます。
参照ボタンをクリックするとフォルダを変更することができます。

サンプル: 変数の選択

サンプル: フィルタの設定と実行
ダイアログを起動すると、ファイルを選択するためにダイアログが表示されます。データを選択して、”開く”ボタンを選択してください。

以下のダイアログが表示されます。パラメータを選択して、”フィルタ”ボタンをクリックしてください。

サンプル: メニューとツールバーを持つ複雑なダイアログ








