汎用IO通信テスト入力競合
テンプレート説明
複数の信号を同時送信して入力競合状態を意図的に再現し、テスト対象機器の応答(UART/GPI)を期待値と照合します。
-
1
複数信号の同時送信
競合モードに応じて、GPOパルスとUARTコマンド/2系統のGPOパルス/2系統のUARTコマンドのいずれかを同タイミングでテスト対象機器へ送信します。 -
2
応答の照合
①の同時送信後、競合モードに応じたレスポンスをチェックし、パターン定義の期待値と照合します。 -
3
全パターン繰り返し
①②をパターンテーブルの全エントリ分繰り返し、最後にPASS/FAIL件数を集計してログ出力します。
・スロット1:DIOユニット(TC-IFDIO) ※1
・GPI/GPO:RIOユニット(TC-IFRIO)も利用できます。※2 ※3
・UART通信:DIFユニット(TC-IFDIF)またはCOMユニット(TC-IFCOM)でも利用できます。※2
※1 ユニットを別スロットへ変更する場合、ユニット設定のスロット割り付け変更を行うことで、設定値などを引き継ぎ可能です。
※2 スロットにユニットを取り付け・配線し、スクリプトのスロット設定を変更してください。
※3 RIOユニットは周期を100µs以上で設定ください。
接続図
TC-3000のGPOとUARTからテスト対象機器へ信号を同時送信し、UART RXとGPIでテスト対象機器の応答を受け取ります。
※ 図はIO_UARTモードの構成例です。
※必ずGNDは接続してください。
タイミングイメージ
IO_UARTモードでGPOパルスとUARTコマンドを同時送信し、UARTレスポンスとGPI値を期待値と照合する流れを示します。
設定変数
全設定変数を記載しています。実機の仕様に合わせて変更してください。
|
変数名 |
内容 |
初期値 |
||||||||||
|
|
GPO/GPIで使用するユニットのスロット番号。使用するユニットに応じて変更。 |
|
||||||||||
|
|
UART送受信で使用するユニットのスロット番号。使用するユニットに応じて変更。 |
|
||||||||||
|
|
パルス出力チャンネル。 |
|
||||||||||
|
|
テスト対象機器の出力を監視するGPIチャンネル。 |
|
||||||||||
|
|
UART送受信チャンネル。 |
|
||||||||||
|
|
競合モードの選択。下記いずれかを指定します。
選択したモードに対応するパターンテーブルが使用されます。 |
|
||||||||||
|
|
UARTレスポンス受信待ちタイムアウト (ms) ※IO_UART / UART_UARTモード時に使用 |
|
||||||||||
|
|
IO_UARTモード用の競合パターン定義テーブル。
|
サンプル有 |
||||||||||
|
|
IO_IO / UART_UARTモード用の競合パターン定義テーブル。 |
サンプル有 |
||||||||||
|
|
1回のUARTレスポンスで受信するバイト数 ※IO_UART / UART_UARTモード時に使用 |
|
||||||||||
|
|
次のパターンを実行する前の待機時間 (ms)。 |
|
判定条件
各パターン実行後に取得したUARTレスポンスとGPI値が以下を満たした場合にPASSと判定します。
|
判定項目 |
合格条件 |
|
UARTレスポンス |
受信タイムアウト時間内に応答が返り、受信バイト列がパターン定義のUART期待値と一致すること(IO_UART/UART_UARTモード) |
|
GPI値 |
同時送信後に読み取ったGPI値がパターン定義のGPI期待値と一致すること(IO_UART/IO_IOモード) |
テーブル設定例
テンプレート初期値の競合パターン定義テーブルの記述例を示します。実機の信号仕様に合わせてエントリを編集してください。
例1:IO_UART モード(patterns_io_uart)
GPOパルスとUARTコマンドを同時入力するモードの競合パターン定義例です。
local patterns_io_uart = {
-- desc, pulse_ms, uart_cmd, uart_expected, gpi_expected
{ desc = "操作パルス + 設定コマンド", pulse_ms = 30, uart_cmd = "\x10\x01\x00\x00", uart_expected = "\x10\x81\x00\x00", gpi_expected = 1 },
{ desc = "操作パルス + 状態取得コマンド", pulse_ms = 30, uart_cmd = "\x04\x00\x00\x00", uart_expected = "\x04\x80\x01\x00", gpi_expected = 1 },
{ desc = "長パルス + 停止コマンド", pulse_ms = 150, uart_cmd = "\x05\x00\x00\x00", uart_expected = "\x05\x80\x00\x00", gpi_expected = 0 },
}
例2:IO_IO モード(patterns_io_io)
2チャネルGPOパルスを同時入力するモードの競合パターン定義例です。
local patterns_io_io = {
-- desc, pulse_ms, pulse2_ms, gpi_expected, gpi2_expected
{ desc = "GPO1+GPO2 同時短パルス", pulse_ms = 30, pulse2_ms = 30, gpi_expected = 1, gpi2_expected = 1 },
{ desc = "GPO1短+GPO2長 同時", pulse_ms = 30, pulse2_ms = 150, gpi_expected = 1, gpi2_expected = 0 },
}