カメラ接続のためのボード設定方法(エンコーダ編)

− AIPToolを使ってエンコーダ同期撮像を行おう!−


はじめに

ラインセンサを使用して2 次元の画像を得るためには、
被写体の移動速度とスキャンレート※を適切に調整する必要があります。
※スキャンレート…1ライン当たりの撮像にかかる時間





被写体の移動速度、カメラのスキャンレートをそれぞれ個別で設定した場合、
被写体の移動速度が変化した際のスキャンレートの調整ができず、撮像画像が実物より伸びたり、縮んだりしてしまいます。
そこで使うのがエンコーダ同期撮像です。
エンコーダ同期撮像とは、ロータリーエンコーダ(以下、エンコーダ)を使って
被写体の移動速度とスキャンレートを同期させる撮像方法です。

このページでは、エンコーダ同期撮像の概要、エンコーダに関するトラブルについて、
AIPToolを用いて解説します。

なお、解説は以下4点を使用します。

「CameraLinkカメラ」
「弊社グラバーボード」
「SDK-AcapLib2」
「AIPTool」

エンコーダの概要

エンコーダとは、軸の回転(移動)方向、移動量、角度を検知するセンサーです。
移動量に応じてA相、B相と呼ばれるパルスが発生するため、パルスをカウントすることで、
ステージ等の搬送速度(被写体の移動速度)を検出することができます。
これによって、被写体の移動速度と、スキャンレートを同期させて撮像することができます。
エンコーダは、大きく分けて インクリメンタルエンコーダアブソリュートエンコーダ の2種類です。
弊社のボードはインクリメンタルエンコーダのみ使用可能です。
インクリメンタルエンコーダは軸が回転すると、「A相」「B相」「Z相」の3種類の信号を出力します。
※インクリメンタルエンコーダには、「A相出力」、「A、B相出力」、「A、B、Z相出力」の3種類があります。




弊社のボードはラインドライバ出力(RS422出力)のエンコーダのみ接続可能です。
→下記リンク先をご参照ください。
・4-20 使用可能なエンコーダの種類は何ですか?

エンコーダを使用する装置

具体的にエンコーダを使用する装置の仕組みを解説します。
以下は、エンコーダと、CC信号を使用して、撮像する装置の構成例です。




1) ベルトコンベアで被写体が搬送され、エンコーダの軸が回転する。
2) エンコーダの回転により、A,B,Z相が出力される。
3) A,B,Z相がケーブルから、拡張ケーブル、ボードへ伝送。
4) ボードでA,B,Z相を受け、それに応じてCC信号が出力。
5) カメラがCC信号を受け取り(1ライン)撮像。

ベルトコンベアの搬送速度に合わせてA、B、Z相が出力されるためスキャンレートを調節することが可能です。
そのため、搬送速度が一定でない場合でも撮像画像が実際の被写体より伸びたり縮んだりすることを防止できます。

エンコーダ信号とボードの動作

ボードの設定方法について説明する前に、 エンコーダ信号が入力された際のボードの動作について簡単に説明します。
ボードはエンコーダ信号が入力されると、エンコーダ信号のパルス数を 任意の値※に達するまでカウントします。
※この任意の値を「Starting Point」 または「Sampling Interval」といいます。
→「Starting Point」、「Sampling Interval」の詳細はこの後に記載している「Starting Pointと、Sampling Intervalの設定」をご参照ください。

カウント値が任意の値に達した時、「一致パルス※」が発生し、 撮像(CC信号を出力または、1ライン取り込み)します。
※一致パルス…弊社ボードの内部信号
→一致パルスの詳細はこの後に記載している「Starting Pointと、Sampling Intervalの設定」をご参照ください。




様々な状況での取り込みを実現するために、ボードの動作を設定する必要があります。
次の項ではボードの設定方法について解説します。




ボードの設定

AIPToolを使用して、ボードの設定を行います。

※AIPToolの詳細は AIPToolの紹介ページ をご覧ください。AIPToolのダウンロードは会員ページ より可能です。

まず、AIPToolのSetup画面を開いてください。
以下の8項目を変更することで、エンコーダの設定を行います。





エンコーダ同期の有効/無効

エンコーダ同期の有効/無効の設定と、使用するエンコーダカウントモードを「Relative」「Absolute」の2種類から選択可能です。





◆相対カウントモード
下記設定の場合の相対カウントモードの動作について説明します。
Starting Point=100
Sampling Interval=4




上記の図を説明すると以下の様になります。
1) カウント開始トリガが入力される
2) カウンタがカウントアップを開始する
3) カウンタが100に達したら一致パルスが発生
4) カウンタがリセットされる
5) カウンタがカウントアップを開始する
6) カウンタが4に達したら一致パルスが発生
7) カウンタがリセットされる
8) 以後5~7を繰り返し


◆絶対カウントモード
下記設定の場合の絶対カウントモードの動作について説明します。
Starting Point=100
Sampling Interval=4





上記の図を説明すると以下の様になります。
1) カウント開始トリガが入力される
2) 絶対カウンタがカウントアップを開始する
3) 絶対カウンタが100に達したら一致パルスが発生
4) 絶対カウンタはカウントアップを続行
5) 間隔カウンタがカウントアップを開始する
6) 間隔カウンタが4に達したら一致パルスが発生
7) 間隔カウンタがリセットされる
8) 以後5~7を繰り返し
※エンコーダ信号のカウント停止→開始でカウンタがリセットされます。

エンコーダ信号の入力パルス

使用するエンコーダ信号の入力パルスを「AB相」「A相」の2種類から選択します。

◆エンコーダのカウント方法
基本的に立上りエッジ、立下りエッジ両方の入力のタイミングでカウントしていきます。
・A相のみの場合




・AB相の場合




エンコーダ信号の回転方向の選択

エンコーダの軸の回転方向を「CW(時計回り)」「CCW(反時計回り)」の2種類から選択します。
以下の図をご参照ください。




A相より、B相が90度遅れて出力される場合CW(時計回り)
B相より、A相が90度遅れて出力される場合CCW(反時計回り)と判別します。


Starting Pointと、Sampling Intervalの設定

Starting Point:エンコーダのカウントが開始してから、 最初の一致パルス発生までのエンコーダカウント数
Sampling Interval:最初の一致パルス発生以降の一致パルス発生間隔(エンコーダカウント数)
エンコーダカウントが、Starting PointかSampling Intervalの値に達すると、 一致パルスが発生します。




一致パルスが発生すると、ボードは主に以下の動作をします。
1.CC信号を出力する
2.画像データを1ライン取込む

取り込みの方法によって1、2どちらかの動作を行います。
→詳細は、この後に記載している「動作モードの選択」をご参照ください。
※設定によって、一致パルス発生のタイミングでカウンタがリセットされることがあります。


Z相の有効/無効

Z相の有効/無効を選択します。
Z相はA相やB相と違い、エンコーダの一回転に一回だけ出力されます。
有効にすると、Z相をエンコーダのカウント開始トリガに設定することができます。
→カウント開始トリガについてはこの次の項をご参照ください。





カウント開始トリガの選択

エンコーダがカウントを開始するためのきっかけとなるパラメータ等を設定します。
以下から選択可能です。




Z相をエンコーダカウント開始トリガとして設定することも可能です。
→詳細は「Z相の有効/無効」をご参照ください。


「CC1Shot」は少し特殊な設定です。




エンコーダではなく、外部トリガを使って一致パルスを発生させる設定です。
外部トリガ1パルスで、一致パルスが1回発生します。
つまり、外部トリガ=一致パルスとして使用します。


動作モードの選択

エンコーダの入力モードを「エンコーダスキャンモード」と「エンコーダライン選択モード」の2種類から選択可能です。


◆エンコーダスキャンモード
一致パルスが発生する度にCC 信号を出力するモードです。
カメラの撮像タイミングをエンコーダで制御したい場合に有効です。
カメラは必ずランダムシャッタ(CC信号による制御)モードに設定してください。
一致パルスの発生から、データ出力(撮像)までのタイミングチャートは以下の様になります。




タイミングチャートを図にすると以下になります。




上の図の様に、このエンコーダスキャンモードでは、 カメラはCC信号が送られてくるまで動作せず、
ボードは一致パルスが発生するまでCC信号を出力しません。

また、エンコーダスキャンモードでは、カメラから出力された画像データをすべて取り込みます。
→詳細は、「トラブル事例」の「エンコーダ信号に同期していない」をご参照ください。

◆エンコーダライン選択モード
一致パルス検出後、最初のカメラデータ(LVAL)を入力(撮像)するモードです。
エンコーダ信号とは無関係に露光制御し、 画像データを受け取るタイミングだけエンコーダで制御したい場合に有効です。
一致パルスの発生から、データ入力(撮像)までのタイミングチャートは以下の様になります。




タイミングチャートを図にすると以下になります。
<カメラ設定がフリーランの場合>




カメラは常にフリーランで撮像していますが、 ボード側は一致パルスが発生するまで受け取りません。


<カメラ設定が露光制御(CC信号同期)の場合>




カメラは常にCC信号同期で撮像していますが、 ボード側は一致パルスが発生するまで受け取りません。

トラブル事例

こんなトラブルに遭遇したことはありませんか?

・エンコーダ信号に同期していない

・ラインレートが想定される値より低い

・撮像画像が想定される画像よりも伸びる又は縮む

・画像がぼやける、ピントが合わない

・被写体の移動速度を変更すると、撮像画像の明るさが変わる

・相対カウントモード設定時にエンコーダカウントが変化しない

エンコーダ制御ではこのようなトラブルがよく起こります。
ここでは、エンコーダ制御に関するトラブル事例を紹介します。


・エンコーダ信号に同期していない

◆カメラがフリーランになっていませんか?
ボード:エンコーダスキャン設定
カメラ:フリーラン設定
この場合、カメラ側は、ボードからのCC信号を待たずに出力し続け、 ボード側は、カメラからの出力をすべて受け取ります。
そのため、エンコーダ信号に同期した入力ができないことになります。
ボードがエンコーダスキャン設定の場合は必ず、カメラをCC信号同期設定にしてください。
→「動作モード選択」の「エンコーダスキャンモード」をご参照ください。


・ラインレートが想定される値より低い

◆一致パルス発生の周期より、CC信号の周期が遅くありませんか?
エンコーダスキャンモードを使用する場合、 ボード側でCC信号の「周期」と「パルス幅」を設定しますが、
エンコーダ信号の入力周波数と、ボードの設定の組み合わせによっては、 以下のような現象が発生している可能性があります。




上の図の様に「一致パルス発生周期>CC信号の周期」となると、 一部の一致パルスは無視されます。
つまり、エンコーダスキャンモードを使用する場合はCC信号の周期より ラインレートを上げることはできません。

※AIPToolには、一致パルスの発生周期とCC信号の周期の整合性を確認する機能があります。 以下にその方法を示します。
Setup画面のStep5を表示すると、以下のような画面が表示され、
エンコーダの周波数を入力することができます。




問題がある場合は以下の様に項目が赤色で表示されます。
マウスカーソルを項目に合わせると、警告が表示されます。






警告を消すためには、以下の方法があります。
1.エンコーダ周波数を下げる
2.Sampling Intervalの値を上げる
3.CC信号の周期を上げる

※現在、ボードに入力されているエンコーダの周波数を確認するには、 AIPToolの「I/O状態表示」を使います。




「I/O状態表示」の更新はAIPToolの画面左上にある「更新ボタン」をクリックしてください。




※CC信号の周期をボード側で設定する理由は以下になります。 エンコーダ信号の入力周期を早くした場合、CC信号の出力周期も合わせて早くなりますが、 万が一、カメラの限界を超えてCC信号が入力されてしまうと、カメラが誤動作を起こす可能性があります。 そこで、ボード側でCC信号の周期の上限を決めておくことにより、このような誤動作を防ぐことが可能です。


・撮像画像が想定される画像よりも伸びる又は縮む

◆被写体の移動速度と、カメラの撮像(又はボードの取り込み)タイミングは合っていますか?
エンコーダの周期が被写体の搬送速度と合っていない場合、発生します。

伸びる場合:取り込み(撮像)周期に比べ、搬送速度が遅い
→Sampling Intervalの値を大きくしてください。

縮む場合:取り込み(撮像)周期に比べ、搬送速度が速い
→Sampling Intervalの値を小さくしてください。
→Sampling Intervalについては「レジスタ1と、Sampling Intervalの設定」をご参照ください。







・画像がぼやける、ピントが合わない

◆TDIカメラを使用していませんか?
TDIカメラとは、被写体を少しずつズラしながら、 被写体の移動に合わせて撮像を行い、輝度値を積算するカメラです。




しかし、スキャンレートと被写体の移動が一致していない場合、異なるポイントを積算してしまうため 撮像画像がぼやけてしまいます。
また、カメラの積算方向や、センサーと搬送方向が垂直ではない場合場合も同様の現象が発生します。


・被写体の移動速度を変更すると、撮像画像の明るさが変わる

◆カメラの設定が「露光時間=CC信号周期」になっていませんか?
カメラによっては、CC信号の1回の周期分、露光するモードがあります。
その場合、被写体の搬送速度によって、露光時間が以下のように変わります。
・被写体の搬送速度が遅い→CC信号周期が下がる→露光時間が長くなる



・被写体の搬送速度が速い→CC信号周期が上がる→露光時間が短くなる



搬送速度によって露光時間が変わると、
撮像画像に輝度値のムラが発生しますので、以下2つのどちらかで改善を行ってください。
1.カメラの設定を「露光時間=CC信号周期」以外に設定する。
2.ボードの設定を「エンコーダライン選択モード」に設定する。
→「エンコーダライン選択モード」については、<カメラ設定が露光制御(CC信号同期)の場合>をご参照ください。





・相対カウントモード設定時にエンコーダカウントが変化しない

◆取り込みが停止していませんか?
相対カウントモードは、取り込み開始(Snap又は、Grab)を実行しなければカウントしません。
カウンタの変化を確認する際には、取り込み開始(Snap又は、Grab)を実行してください。
エンコーダカウントを確認する方法を以下に示します。

<相対カウントモードの場合>




<絶対カウントモードの場合>