FAQ

FAQ検索結果

検索キーワード:

Qカーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネル その4

A

カーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネルを用意しました。

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

A

カーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネルを用意しました。

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

A

カーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネルを用意しました。

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

A

カーブウィンドウの各プロパティを操作する関数の使用例を紹介するサンプルパネルを用意しました。

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アステロイド(星芒形)波形を作りたい。

A

媒介変数表示されたX、Y波形からXYof()関数によりXY波形を作成してください。

例)
_a = 2
_theta = ramp(0, 0.01, 100+1)*PI2
_x = _a * cos(_theta)^3
_y = _a * sin(_theta)^3
アステロイド= XYof(_x, _y)

製品詳細はこちら

回答を閉じる

QシーケンスでCSVファイルへ保存したい。

A

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以前では)

A

注意:
この回答内容はVersion 5以前まででご利用下さい。
Version 6以降ではカーブウィンドウに表示した波形を直接再生できます。

以下の手順で変数をスピーカーから再生できます。

(1)再生したい変数を選択してください。
(2)メニュー“変数/変数の再生”を選択します。

注意:
音は±1の範囲の値を再生します。
もし、この範囲に無い場合、レベルを校正してください。

以下のようにレベルが±1でない場合、

以下のコマンドを使用してレベルを校正します。

Signal2 = Signal / Max( Abs( Signal ) )

 

製品詳細はこちら

回答を閉じる

Q積分した波形を記録したい

A

入力設定タブ>フィルタ設定をクリックして、積分1を入力1に接続してください。

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

Q等級線を使ったレベル判定

A

データロガーや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文字列の長さ

A

TLeng関数を使用します。

Result = TLeng( "This is a pen")

結果は 13 となります。

製品詳細はこちら

回答を閉じる

Qボタンの名前を動的に変更したい

A

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

DlgSetText("Button1","ボタン1")

製品詳細はこちら

回答を閉じる

QOROSの最大値検出方法について

A

定義

最大値の検出については以下のように定義されています。

最大値とは予め設定したスレッショルドを超えた極大値のことを意味します。

 

シーケンス

;***********************************************
;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等価騒音レベルを求めたい。

A

直接求める関数は用意されてないため、下記の様なシーケンスで求めて下さい。 なお、下記のシーケンスでは重み付け特性なし(Z特性)で計測された音圧(Pa)データを入力データ(変数_data)としています。

例)
_A = ABCRating(_data, 1, -1, 1, 0) ; A特性、FAST時定数。A特性適用済みデータの場合は不要。
_AdB = dB(_A / 2e-5) ; dBに変換。2e-5 = 20u
LAeq = Mean(_AdB)

製品詳細はこちら

回答を閉じる

QFFT結果に後からA特性を適用する

A

測定したFFT結果とA特性をカーブウィンドウに示します。

FFT結果とA特性のデータがデシベル値である場合、単純なFFT結果とA特性の和算になります。
以下のコマンドを実行させてください。

ResultA = Add( data, A_Weighting, 0)

このときFFT結果とA特性のX軸データが一致しませんが気にすることはありません。
関数”Add”はX軸の値が一致しなくてもデータを補間して計算してくれます。

計算結果は以下のようになります。

製品詳細はこちら

回答を閉じる

Qビデオと波形データの同期方法

A

ビデオキットを使用するとビデオ画像と波形データを同期させて観測することができるそうですが、具体的にはどのように同期を取るのか教えてください。

回答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リストに動的にアイテムを追加したい

A

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

DlgInsertItem("List1",0,"test1",0)
DlgInsertItem("List1",0,"test2",0)
DlgInsertItem("List1",0,"test3",0)

製品詳細はこちら

回答を閉じる

Qサンプルデモでダイアログ機能を体験

A

サンプルデモのダウンロード

FAMOS 5.0をインストールすると、ダイアログのサンプルもインストールされます。
但し、このサンプルは英語で記述されています。
このサンプルを日本語化したものを用意しました。
こちらより日本語のサンプルをダウンロードできます。
ダウンロードしたファイルを解凍して、任意のディレクトリに配置してください。

サンプルデモの実行

サンプルデモはFAMOS 5.0で新しく追加された機能であるプロジェクト形式で作成されています。
メニュー”プロジェクト/プロジェクトエクスプローラ”を選択してください。

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

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

サンプルを実行するためには、リストから実行したいサンプルを選択して、”ダイアログ実行!”ボタンをクリックしてください。

注意

これらのサンプルは全てFAMOSダイアログ機能で作成されています。

サンプル: はい/いいえ/キャンセル

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

サンプル: 数値入力

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

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

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

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

サンプル: ファイルとフォルダの選択

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

サンプル: 変数の選択

サンプル: フィルタの設定と実行

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

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

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

製品詳細はこちら

回答を閉じる

Qレポートジェネレータに波形を表示させると目盛間隔が変わってしまう

A

カーブウィンドウで波形を表示させているときに軸目盛を"自動"にしていませんか?

レポートジェネレータで表示させた場合、カーブウィンドウと同一にするためには軸目盛を指定する必要があります。

製品詳細はこちら

回答を閉じる

Q関数リストにCv関数が表示されない。

A

FAMOS 7.4 Rev5から互換性のために残されている古い関数はデフォルトでは表示しないようになりました。[オプション](下図の歯車型のアイコン)から[使われなくなった関数を隠す]のチェックを外すことで表示できます。

製品詳細はこちら

回答を閉じる

Qウォータフォール表示で軸の角度を変えるには?

A

カーブウィンドウのメニュー”オプション/3D”をクリックしてください。
以下のダイアログで設定を変更します。

製品詳細はこちら

回答を閉じる

FAQ一覧へ戻る