列挙型シグナルを使用する
列挙型シグナルの物理値は文字列であるため、列挙型シグナルをそのまま式の入力に使用して通常の算術演算を行うことはできません。そのため、変換後の文字列値から生値(10進数)を取得するためのRaw()関数が用意されています。2つの異なる列挙シグナルの文字列値を比較するには、ToString()関数を使用することができます。
-
列挙型シグナルの10進値を取得する:
Raw(Enumeration)
-
列挙型シグナルの値が所定の値以上であるかを調べる:列挙型シグナルの変換式により得られた10進値を使用して比較を行います。
Raw(Enumeration) >= [numeric decimal value]
-
2つの列挙型シグナルの文字列が同じであるかを調べる:
ToString(Enumeration_1) = ToString(Enumeration_2)
-
論理型の列挙型シグナルの値が変化した回数を調べる:最初に正と負のエッジを検出し、次にその数をカウントします。
Edges = Gradient(Raw(Enumeration)) != 0
Accumulate_Prefix_Sum(Edges)
-
論理型の列挙型シグナルがTRUE状態であった時間(秒単位):
Accumulate_Prefix_Integral(Raw(Boolean_Enumeration))
ここでは、列挙型が 0 = False、1 = True と定義されていることが前提となります。
-
列挙型シグナルが指定の状態であった時間(秒単位):状態を表す10進値が検出され、その時間が合計されます。
Accumulate_Prefix_Integral(Raw(Enumeration)= [Value of state])
参照