FAQ

FAMOS

シーケンス / 関数top

ファイル関係

ID.

Q. 波形の切り出しを絶対時間で行いたい。

A.


直接求める関数は用意されていないため、下記の様なシーケンスで求めて下さい。 TxSplit()関数はimc FAMOS Ver 7.2以降が必要です。

例)
Data = Car_Speed ; 切り出し元データ
T1 = "2018/09/14 09:03:00" ; 切り出し開始絶対時間。書式「年/月/日 時:分:秒」
T2 = "2018/09/14 15:33:30" ; 切り出し終了絶対時間。書式「年/月/日 時:分:秒」

; 切り出し時間のテキストを数値に変換
_T1spl = TxSplit(T1, "/; ;:") ; 要素毎に分解
_T1num = TimeJoin(TtoSv(_T1spl[3],"f"), TtoSv(_T1spl[2],"f"), TtoSv(_T1spl[1],"f"), TtoSv(_T1spl[4],"f"), TtoSv(_T1spl[5],"f"),
TtoSv(_T1spl[6],"f"))
_T2spl = TxSplit(T2, "/; ;:")
_T2num = TimeJoin(TtoSv(_T2spl[3],"f"), TtoSv(_T2spl[2],"f"), TtoSv(_T2spl[1],"f"), TtoSv(_T2spl[4],"f"), TtoSvpl[5],"f"),
TtoSv(_T2spl[6],"f"))

; 切り出し元データの絶対時間
_dataT1 = TimeAdd(Time?(Data), XOff?(Data))
_dataT2 = TimeAdd(_dataT1, XDel?(Data) * (Leng?(Data) - 1))
if _T1num < _dataT1 or _dataT2 < _T2num
  BoxMessage("エラー", "切り出し時間が波形に含まれていません", "!1")
  ExitSequence 1
end

; 絶対時間で指定した範囲を切り出し
CutData = Cut(Data, TimeDiff(_T1num, Time?(Data)), TimeDiff(_T2num, Time?(Data)))

; カーブウィンドウで表示
CwNewWindow("Cv1", "show")
CwSelectWindow("Cv1")
CwAction("reset")
CwPosition(0,0,640,480)
CwDisplaySet("title", "")
CwNewChannel("append last axis", CutData)
CwNewChannel("append last axis", Data)
CwSelectByIndex("x-axis", 1)
CwAxisSet("scale", 4)
del _*


製品詳細はこちら

<< ファイル関係に関するFAQ一覧へ戻る