その他テスト状態遷移
テンプレート説明
ユーザー定義のシーケンスを順に実行し、各遷移で期待通りの状態に遷移していることをテスト対象機器の状態応答をもって確認します。
-
1
シーケンス実行
定義したシーケンスを先頭から順に実行します。1ステップが1遷移に対応します。 -
2
遷移確認
遷移コマンド送信後、状態取得コマンドで応答を受信し、期待値と照合します。 -
3
判定
期待値と一致した場合はPASS、一致しない場合はFAILとしてログに出力します。全ステップ完了後にPASS/FAIL件数を表示します。
・スロット1:DIOユニット(TC-IFDIO) ※1
・UART通信:DIFユニット(TC-IFDIF)またはCOMユニット(TC-IFCOM)でも利用できます。※2
※1 ユニットを別スロットへ変更する場合、ユニット設定のスロット割り付け変更を行うことで、設定値などを引き継ぎ可能です。
※2 スロットにユニットを取り付け・配線し、スクリプトのスロット設定を変更してください。
接続図
TC-3000からUARTコマンドまたはGPOパルスで遷移トリガーを送信し、テスト対象機器のUART状態通知を受信して期待値と照合します。
※必ずGNDは接続してください。
動作イメージ
シーケンステーブルの各ステップが状態遷移マトリックス上のどのセルに対応するかを示します。
設定変数
全設定変数を記載しています。実機の仕様に合わせて変更してください。
|
変数名 |
内容 |
初期値 |
||||||||||||
|
|
使用するユニットのスロット番号。使用するユニットに応じて変更。 |
|
||||||||||||
|
|
状態遷移の起こし方を選択します。
|
|
||||||||||||
|
|
コマンド送受信のUARTチャネル |
|
||||||||||||
|
|
状態確認コマンド。遷移トリガーとは別に送信し、現在の状態を問い合わせます。 |
|
||||||||||||
|
|
状態確認コマンドへの応答バイト数 |
|
||||||||||||
|
|
UART受信タイムアウト (ms) |
|
||||||||||||
|
|
GPOパルス送出後の待機時間 (ms)。Writeは出力完了を待たないため、パルス送出完了を待つために使用します。 |
|
||||||||||||
|
|
シーケンス定義テーブル。
|
サンプル有 |
判定条件
各ステップの状態通知受信後、以下の条件を満たした場合にPASSと判定します。
|
判定項目 |
合格条件 |
|
状態通知レスポンス |
シーケンス定義の期待値と一致すること |
|
受信タイムアウト |
受信タイムアウト時間以内に状態通知が返却されること |
テーブル設定例
実機のプロトコルに合わせてシーケンステーブルを書き換えた例を記載します。
例1:UARTコマンドで遷移(ACKあり)
遷移コマンドに対してACK(0x06)が返却される場合。ACK受信後に状態取得コマンドで状態を確認します。
local UART_SEQUENCES = {
-- label trigger ack_size ack_exp status
{ "初期 → 状態A", "\x10", 1, "\x06", "\x01" },
{ "状態A → 状態B", "\x11", 1, "\x06", "\x02" },
{ "状態B → 状態C", "\x12", 1, "\x06", "\x03" },
{ "状態C → 状態A", "\x00", 1, "\x06", "\x00" },
}
例2:GPOパルスで遷移
TRIGGER_MODE = "GPO_PULSE" に変更し、GPO_SEQUENCES のパルス幅を実機に合わせて設定します。
local TRIGGER_MODE = "GPO_PULSE"
local GPO_SEQUENCES = {
-- label pulse(ms) status_expected
{ "初期 → 状態A", 30, nil, nil, "\x00\x01" },
{ "状態A → 状態B", 150, nil, nil, "\x00\x02" },
{ "状態B → 状態A", 5, nil, nil, "\x00\x01" },
}