汎用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モードの構成例です。

TC-3000 DIOユニット(TC-IFDIO)※初期設定 GPO1(パルス出力) UART1 TX(コマンド送信) UART1 RX(レスポンス) 照合 GPI1(IO状態受信) 照合 テスト対象機器 (テスト対象機器) パルス入力 UART RX(コマンド受取) UART TX(レスポンス送信) IO 出力 ① 同時送信 ② レスポンス応答 ② IO 出力応答

 ※必ずGNDは接続してください。

タイミングイメージ

IO_UARTモードでGPOパルスとUARTコマンドを同時送信し、UARTレスポンスとGPI値を期待値と照合する流れを示します。

 

TC-3000 → テスト対象機器 (送信) テスト対象機器 → TC-3000 (受信) 時間 GPO UART TX 同時送信 UART RX 期待値と照合 GPI 期待値と照合

設定変数

全設定変数を記載しています。実機の仕様に合わせて変更してください。

変数名

内容

初期値

IO_SLOT

GPO/GPIで使用するユニットのスロット番号。使用するユニットに応じて変更。

DIO1

UART_SLOT

UART送受信で使用するユニットのスロット番号。使用するユニットに応じて変更。

DIO1

GPO_CH / GPO_CH2

パルス出力チャンネル。GPO_CH2はIO_IOモード時のみ使用します。

GPO1 / GPO2

GPI_CH / GPI_CH2

テスト対象機器の出力を監視するGPIチャンネル。GPI_CH2はIO_IOモード時のみ使用します。

GPI1 / GPI2

UART_CH / UART_CH2

UART送受信チャンネル。UART_CH2はUART_UARTモード時のみ使用します。

UART1 / UART2

CONFLICT_MODE

競合モードの選択。下記いずれかを指定します。

"IO_UART" GPOパルスとUARTコマンドの同時入力
"IO_IO" GPO1パルスとGPO2パルスの同時入力
"UART_UART" UART1コマンドとUART2コマンドの同時入力

選択したモードに対応するパターンテーブルが使用されます。

"IO_UART"

RECV_TIMEOUT

UARTレスポンス受信待ちタイムアウト (ms) ※IO_UART / UART_UARTモード時に使用

2000

patterns_io_uart

IO_UARTモード用の競合パターン定義テーブル。

フィールド 内容
pulse_ms GPOのパルス幅 (ms)
uart_cmd TC-3000からテスト対象機器へのUART送信コマンド(バイト列)
uart_expected テスト対象機器からのUARTレスポンス期待値(バイト列)
gpi_expected GPIの期待値(0 または 1

サンプル有
使用例はテーブル設定例参照

patterns_io_io
patterns_uart_uart

IO_IO / UART_UARTモード用の競合パターン定義テーブル。

サンプル有
使用例はテーブル設定例参照

RESP_SIZE

1回のUARTレスポンスで受信するバイト数 ※IO_UART / UART_UARTモード時に使用

4

INTERVAL_WAIT_MS

次のパターンを実行する前の待機時間 (ms)。0を指定すると待機しません。

100

判定条件

各パターン実行後に取得した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 },
      }