制御テスト2相エンコーダー出力

テンプレート説明

2相直交信号(A相/B相)を生成して回転または直線移動をエミュレートします。テーブルで指定した各エントリの期待カウント値をログ出力します。

 

  • 1 回転シーケンスから波形配列構築
    回転シーケンスの各エントリ(方向・回転時間・1カウント周期)に対し、1カウント周期を4分割した時間ごとにA相/B相の状態を切り替えて波形配列を事前構築します。
  • 2 A相/B相 同時出力
    ①で構築したA相とB相の波形を同期して同時に出力します。位相関係を保ったまま出力することで、CW(A相がB相より90°先行)またはCCW(B相がA相より90°先行)の直交信号を生成します。
  • 3 全エントリ順次実行
    ①②を回転シーケンスの全エントリ分繰り返します。各エントリの期待カウント値はログに出力されるので、テスト対象機器のカウンタ値と目視で照合します。
初期ユニット配置
 ・スロット1:DIOユニット(TC-IFDIO) ※1
ユニットの選択肢

 ・GPI/GPO:RIOユニット(TC-IFRIO)も利用できます。※2 ※3

※1 ユニットを別スロットへ変更する場合、ユニット設定のスロット割り付け変更を行うことで、設定値などを引き継ぎ可能です。
※2 スロットにユニットを取り付け・配線し、スクリプトのスロット設定を変更してください。
※3 RIOユニットは周期を100µs以上で設定ください。

接続図

TC-3000のGPO2本をA相・B相としてテスト対象機器に接続し、回転シーケンスに従った2相直交信号を出力します。

TC-3000 Luaスクリプト 方向 時間(ms) 周期(ms) 時計回り(CW) 1000 40 反時計回り(CCW) 500 40 時計回り(CW) 2000 20 反時計回り(CCW) 1500 80 DIOユニット(TC-IFDIO) GPO1(A相出力) GPO2(B相出力) エンコーダー出力イメージ CW CCW テスト対象機器 エンコーダー入力回路 A相入力 B相入力 Counter +125 A相↑ かつ B=0 → CW(+1) A相↑ かつ B=1 → CCW(−1) ① A相出力 ② B相出力

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

タイミングイメージ

CWはA相がB相より90°先行、CCWはB相がA相より90°先行します。テスト対象機器はA相の立ち上がりエッジ時のB相レベルで回転方向を判定します(B=0 → CW、B=1 → CCW)。

 

CW(時計回り) A B ↑ B=0 A立ち上がり時 → CW判定 CCW(反時計回り) A B ↓ B=1 A立ち上がり時 → CCW判定

設定変数

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

変数名

内容

初期値

SLOT

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

DIO1

PHASE_A_CH

A相を出力するGPOチャンネル

GPO1

PHASE_B_CH

B相を出力するGPOチャンネル

GPO2

rotation_table

回転シーケンス定義テーブル。各エントリに下記フィールドを持ちます。

フィールド 内容
direction "CW" = 時計回り(A相がB相より90°先行)/"CCW" = 反時計回り(B相がA相より90°先行)
duration_ms その方向で回転し続ける時間 (ms)
count_ms 1カウント出力にかかる周期 (ms)。例: 40ms → 25カウント/秒。最小値は出力更新周期 × 4

サンプル有
使用例は動作イメージ参照