汎用IO通信テストハンドシェイク(制御側)

テンプレート説明

TC-3000から信号またはコマンドを送信し、テスト対象機器からの応答を照合します。出力及び入力は各々IOまたはUARTを独立に選択できます。

 

  • 1 信号/コマンド送信と応答待ちの同時開始
    送信方法の選択に従い、GPOパルス出力またはUARTコマンド送信と、応答待ちを同時に開始します。即時応答の取りこぼしを防ぎます。
  • 2 応答照合
    ①と同時に開始した応答待ちで、IOモードはタイムアウト時間内に応答エッジが検知できなければFAIL、UARTモードはタイムアウト時間内に受信したレスポンスを期待値と照合します。
  • 3 N回繰り返し
    ①②を試行回数分繰り返し、最後に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からREQ(送信信号)をテスト対象機器に送り、テスト対象機器からのACK(応答信号)をGPIで受け取ります。

※ 接続図はIO(GPO/GPI)使用時の例です。送信方法・応答受信方法を "UART_CMD"/"UART_RESP" に変更することで通信(UART等)でも同様の動作が可能です。

TC-3000 DIOユニット(TC-IFDIO) GPO1 REQ(送信信号出力) GPI1 ACK(応答信号入力) テスト対象機器 テスト対象機器 IO REQ 入力 送信信号受信 ACK 出力 応答信号送信 ① REQ 送信 ② ACK 応答・照合

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

タイミングイメージ

GPOからREQを立ち上げると同時にGPIのACK応答エッジ待ちを開始し、応答検知後に次サイクルへ進む流れを示します。

 

IOモード(GPOパルス→GPIエッジ待ち)の例。応答待ちタイムアウトを超過するとFAIL。

GPO REQ(出力) GPI ACK(入力) ① REQ送信+待機開始 ② ACK応答・照合 ③ 次サイクル開始 応答待ちタイムアウト

設定変数

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

変数名

内容

初期値

IO_SLOT

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

DIO1

UART_SLOT

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

DIO1

GPO_CH

REQを送信するGPOチャンネル(送信方法がGPOパルスの場合に使用)

GPO1

GPI_CH

ACK応答を受信するGPIチャンネル(応答受信方法がGPIエッジの場合に使用)

GPI1

UART_CH

UART送受信に使用する通信チャンネル(送信または受信のいずれかがUARTの場合に使用)

UART1

OUTPUT_MODE

送信方法の選択。

"GPO_PULSE" GPOパルスを出力(パルス幅は PULSE_ON_MS で指定)
"UART_CMD" UARTコマンドを送信(送信内容は UART_CMD で指定)

"GPO_PULSE"

INPUT_MODE

応答受信方法の選択。

"GPI_EDGE" GPI応答エッジを待ち、タイムアウト超過でFAIL(待ち方向は GPI_WAIT_LEVEL で指定)
"UART_RESP" UARTレスポンスを受信し UART_EXPECTED と照合

"GPI_EDGE"

NUM_TRIGGERS

ハンドシェイクを繰り返す試行回数

10

WAIT_TIMEOUT_MS

GPI応答待ちのタイムアウト時間 (ms)=仕様上の最大応答時間。超過するとFAIL

2000

PULSE_ON_MS

送信方法がGPOパルスの場合のパルス幅 (ms)

30

GPI_WAIT_LEVEL

GPI応答待ちのエッジ方向。1=High待ち、0=Low待ち

1

UART_CMD

送信方法がUARTコマンドの場合に送信するバイト列

サンプル有
使用例はLuaスクリプト参照

UART_EXPECTED

応答受信方法がUARTレスポンスの場合の期待バイト列

サンプル有
使用例はLuaスクリプト参照

RESP_SIZE

応答受信方法がUARTレスポンスの場合の受信バイト数

4

RECV_TIMEOUT

UARTレスポンス受信のタイムアウト時間 (ms)=仕様上の最大応答時間

2000

判定条件

各サイクル実行後に取得した応答が以下の条件を満たした場合にPASSと判定します。

判定項目

合格条件

GPI応答エッジ(IOモード)

応答待ちタイムアウト時間内に、指定方向のエッジが検知できること

UARTレスポンス値(UARTモード)

受信タイムアウト時間内にレスポンスが受信でき、その内容がUART期待値(バイト列)と一致すること