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

テンプレート説明

テスト対象機器からの入力を検知してから設定遅延後に応答を返送します。入力及び応答は各々IOまたはUARTを独立に選択できます。

 

  • 1 入力待機
    入力モードに従い、GPIの指定エッジまたはUARTコマンドの受信を待機します。
  • 2 応答出力
    ①で入力を検知後、設定した遅延時間後に、応答モードに従いGPOパルスまたはUARTレスポンスを送信します。
  • 3 N回繰り返し
    ①②を応答回数分繰り返します。タイムアウト発生時はその時点で終了します。
初期ユニット配置
 ・スロット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以上で設定ください。

接続図

テスト対象機器からのIO信号またはUARTコマンドをTC-3000で受け、設定遅延後にIO応答またはUARTレスポンスをテスト対象機器へ返送します。

※ 接続図はIO(GPI/GPO)使用時の例です。入力/応答モードをUARTに変更することで通信でも同様の動作が可能です。

TC-3000 DIOユニット(TC-IFDIO)※初期設定 GPI1(入力検知) Sleep(遅延) GPO1(応答出力) テスト対象機器 (テスト対象機器) テスト対象機器 IO IO 出力 IO 入力 ① IO 信号入力 ② IO 応答出力 Luaスクリプト処理

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

タイミングイメージ

GPIで入力エッジを検知後、設定した遅延時間後に応答モードに従いGPOからパルスで応答を返す波形のタイミングを示します。

 

GPI立ち上がり待機、GPOパルス幅=任意の例。

GPI (入力検知) GPO (応答出力) ① 入力検知 ② 応答出力 GPOパルス幅

※ 入力検知から応答出力までの時間は、装着するユニット構成、設定によって変動します。本テンプレートの初期設定の場合、最短で約3~5msです。

設定変数

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

変数名

内容

初期値

IO_SLOT

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

DIO1

UART_SLOT

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

DIO1

INPUT_MODE

入力待機方法の選択。

"GPI_EDGE" GPIエッジを待機(チャネル・エッジ方向は別変数で指定)
"UART_CMD" UARTコマンドを受信するまで待機(UARTチャネル・受信バイト数で指定)

"GPI_EDGE"

OUTPUT_MODE

応答出力方法の選択。

"GPO_PULSE" GPOパルスを出力(GPOチャネル・パルス幅で指定)
"UART_RESP" UARTレスポンスを送信(UARTチャネル・レスポンスバイト列で指定)

"GPO_PULSE"

GPI_WAIT_LEVEL

GPIエッジ待機時の対象レベル(1=High待ち、0=Low待ち)

1

DELAY_MS

入力検知から応答出力までの遅延時間 (ms)

0

NUM_TRIGGERS

入力待機と応答出力を繰り返す回数

10

WAIT_TIMEOUT

GPIエッジ待機のタイムアウト時間 (ms)

5000

PULSE_ON_MS

GPOパルス出力時のHi期間 (ms)

30

CMD_SIZE

UARTコマンド受信時の受信バイト数

4

RECEIVE_TIMEOUT

UARTコマンド受信のタイムアウト時間 (ms)

100000

UART_RESP

UARTレスポンス送信時に返送するバイト列

"\x10\x01\x00\x00"