電動アクチュエータの軸が2~3軸のみ必要な機械の自動化においては、パルス出力が最も簡単な方法となる可能性がある。
PLCのパルス出力を使用することは、シンプルな動作を実現する上で費用対効果の高い方法です。ほとんどすべてのPLCメーカーは、パルス列信号を使用してサーボモーターやステッピングモーターを制御する方法を提供しています。そのため、電動アクチュエータの2軸または3軸のみを自動化する必要がある場合、アナログ信号を使用するよりもパルス出力の方が、セットアップ、配線、プログラミングがはるかに容易になります。また、イーサネット/IPなどのネットワークモーションを使用するよりもコストを抑えられる場合もあります。
それでは、コントローラとモーターの間にドライバまたはアンプを挟んでステッピングモーターやサーボを制御する方法について、コントローラまたはインデクサから使用されるパルス信号に重点を置いて見ていきましょう。
パルストレインの基礎知識
ステッピングモーターとパルス制御サーボモーターは、両方向に回転できます。つまり、コントローラーはドライブに少なくとも2つの制御信号を供給する必要があります。これらの信号を供給する方法は2つあり、メーカーによって呼び方が異なります。使用する2つの制御信号方式を表す一般的な方法は2つあります。「1Pモード」(別名「ステップ/方向モード」)と「2Pモード」(別名「CW/CCWモード」または時計回り/反時計回りモード)です。どちらのモードでも、コントローラーからドライブへの2つの制御信号が必要です。
1Pモードでは、制御信号の一つはパルス列、つまり「ステップ」信号です。もう一つの信号は方向入力です。方向入力がオンで、ステップ入力にパルス信号が存在する場合、モータは時計回りに回転します。逆に、方向信号がオフで、ステップ入力にパルス信号が存在する場合、モータは反対方向、つまり反時計回りに回転します。パルス列は、回転方向に関係なく、常に同じ入力に供給されます。
2Pモードでは、両方の信号がパルス列となります。一度に周波数を持つ入力は1つだけなので、CWパルス列が存在する場合はモーターはCW方向に回転し、CCWパルス列が存在する場合はモーターはCCW方向に回転します。どちらの入力にパルス列が送られるかは、希望する回転方向によって異なります。
コントローラから出力されるパルスによってモータが回転します。モータは、ドライブのパルス入力のパルスごとに1単位ずつ回転します。例えば、2相ステッピングモータが1回転あたり200パルス(ppr)の場合、1パルスでモータは1/200回転(1.8度)回転し、200パルスで1回転します。
もちろん、モーターの種類によって分解能は異なります。ステッピングモーターはマイクロステップ制御が可能で、1回転あたり数千パルスの信号を送ることができます。また、サーボモーターの最小分解能は一般的に1回転あたり数千パルスです。モーターの分解能に関わらず、コントローラーまたはインデクサーからのパルスによって、モーターは1単位ずつしか回転しません。
モーターの回転速度は、パルスの周波数、つまり速度によって決まります。パルスが速いほど、モーターの回転速度も速くなります。上記の例では、200 ppr のモーターの場合、200 パルス/秒 (pps) の周波数でモーターは 1 回転/秒 (rps)、つまり 60 回転/分 (rpm) で回転します。モーターを 1 回転 (ppr) させるのに必要なパルス数が多いほど、同じ速度を得るためにはパルスを速く送信する必要があります。たとえば、1,000 ppr のモーターは、200 ppr のモーターと同じ回転数にするには、パルス周波数を 1000 倍にする必要があります。計算は非常に簡単です。
rps = pps/ppr (1秒あたりの回転数 = 1秒あたりのパルス数 / 1回転あたりのパルス数)
rpm = rps(60)
パルスの制御
ほとんどのコントローラには、モータを正転させるべきか反転させるべきかを判断する機能があり、それに応じて信号を制御します。つまり、プログラマがどの出力をオンにするかを自分で判断する必要は通常ありません。例えば、多くのPLCにはパルス信号を使用して動作を制御する機能があり、その機能はコントローラが1Pモードか2Pモードかに関わらず、正しい回転方向が得られるように出力を自動的に制御します。
簡単な例として、2つの動作を考えてみましょう。どちらの動作も1,000パルスです。一方は正方向、もう一方は負方向です。コントローラは、1Pまたは2Pのどちらが使用されているかにかかわらず、適切な出力をオンにして、指令されたパルス数が1,000の場合にモータを正方向(通常は時計回り)に回転させます。一方、プログラムが-1,000パルスを指令した場合、コントローラは適切な出力をオンにして負方向(通常は反時計回り)に回転させます。したがって、プログラマがプログラム内のコードを使用してどの出力を使用するかを選択することでモータの回転方向を制御する必要はありません。コントローラが自動的に行います。
コントローラとドライバには通常、ディップスイッチまたはソフトウェア設定によってパルスタイプを選択できる機能が備わっています。コントローラとドライバの設定が一致していることを確認することが重要です。一致していない場合、動作が不安定になったり、全く動作しなくなる可能性があります。
絶対的な動きと漸進的な動き
モーションコントロールプログラミングで最も一般的な動作コマンドは、増分移動コマンドと絶対移動コマンドの2種類です。絶対移動と増分移動の概念は、使用するモーター制御方式に関わらず、多くのユーザーを混乱させます。しかし、この情報は、モーターがパルス、アナログ信号、またはEthernet/IPやEthercatなどのネットワークで制御されているかどうかにかかわらず適用されます。
まず、モーターにエンコーダーが搭載されている場合でも、モーターの動作の種類はエンコーダーの種類とは無関係です。次に、絶対エンコーダーの有無に関わらず、絶対動作と増分動作の両方を行うことができます。
ボールねじアクチュエータなどの直線軸をモーターで動かす場合、アクチュエータの一端から他端までの距離は(当然ながら)有限です。つまり、キャリッジがアクチュエータの一端にある場合、モーターはキャリッジが反対側の端に到達するまでしか回転できません。これがストローク長です。例えば、ストローク長が200mmのアクチュエータの場合、アクチュエータの一端は通常「ゼロ」位置、つまりホームポジションになります。
絶対移動とは、キャリッジの現在位置に関係なく、指定された位置までキャリッジを移動させる動作です。例えば、現在位置がゼロで、移動先が100mmの場合、コントローラはアクチュエータを100mmの位置まで前進させて停止させるのに十分なパルス数を送信します。
しかし、アクチュエータの現在の位置が150mmの場合、100mmの絶対移動を行うと、コントローラは負の方向にパルスを送信してアクチュエータを50mm後退させ、100mmの位置で停止させます。
実用的な用途
パルス制御を使用する際に最もよくある問題は、配線にあります。信号が誤って逆接続されてしまうことがよくあります。2Pモードでは、これはCCW出力がCW入力に接続され、CW入力がCCW出力に接続されることを意味します。1Pモードでは、パルス信号出力が方向入力に接続され、方向信号出力がパルス入力に接続されることを意味します。
2Pモードでは、この配線ミスにより、CCWに回転するように指示されたときにモーターがCWに回転し、CWに回転するように指示されたときにモーターがCCWに回転します。1Pモードでは、問題の診断はより困難です。信号が入れ替わっている場合、コントローラは方向入力にパルス列を送信しますが、これは何も起こりません。また、ステップ入力に方向変更(方向に応じて信号をオンまたはオフにする)を送信し、これによりモーターがパルス回転する可能性があります。1パルスの動きは通常、非常に見づらいものです。
2Pモードを使用するとトラブルシューティングが容易になり、この種のモーションコントロールにあまり経験のない人にとっても理解しやすくなります。
パルス軸と方向軸のトラブルシューティングに費やす時間を最小限に抑えるための方法をご紹介します。この方法を使えば、エンジニアは一度に一つのことに集中できます。配線ミスが原因で動作が妨げられているのかを突き止めようと何日も費やした挙句、実はPLCのパルス出力機能が誤って設定されていて、パルスが出力されていなかった、といった事態を防ぐことができます。
1. 使用するパルスモードを決定し、すべての軸で同じモードを使用します。
2. コントローラーを適切なモードに設定してください。
3. ドライブを適切なモードに設定します。
4. コントローラーに最もシンプルなプログラム(通常はジョグ機能)を作成し、モーターを低速で一方向または反対方向に回転するように指示できるようにします。
5. CW動作を指示し、コントローラーにパルスが出力されていることを示すステータスが表示されるか確認します。
これは、コントローラの出力にあるLEDや、PLCのビジーフラグのようなステータスフラグなどが考えられます。コントローラのパルス出力カウンタを監視して、値の変化を確認することもできます。
モーターは出力パルスに接続する必要はありません。
6. 反時計回りの方向にテストを繰り返します。
7.両方向へのパルス出力が成功した場合は、次に進みます。そうでない場合は、まずプログラミングの問題を解決する必要があります。
8. コントローラーをドライバーに配線します。
9. モーターを一方向に動かします。動作すれば手順10に進みます。動作しない場合は、配線を確認してください。
10. モーターを反対方向に軽く回してみてください。うまく回れば成功です。うまく回らない場合は、配線を確認してください。
最初の段階では、パルス周波数が低すぎてモーターが1/100 rpsのように非常にゆっくり回転するため、多くの時間が無駄になっています。モーターが動作しているかどうかを確認する唯一の方法がモーターシャフトを観察することである場合、低速で動いているように見えないため、パルスが出力されていないと誤解する可能性があります。テストの速度を設定する前に、モーターの分解能とアプリケーションパラメータに基づいて安全な速度を計算するのが最善です。推測だけで使用可能な速度を設定できると考える人もいます。しかし、モーターが1回転するのに10,000パルスが必要で、パルス周波数が1,000 ppsに設定されている場合、モーターは1回転するのに10秒かかります。逆に、モーターが1回転するのに1,000パルスが必要で、パルス周波数が1,000に設定されている場合、モーターは1秒間に1回転、つまり60 rpmで回転します。モーターが可動範囲が制限されたボールねじアクチュエータなどの負荷に接続されている場合、これはテストには速すぎる可能性があります。パルスが出力されていることを示すインジケーター(LED、またはパルスカウンター)を監視することが非常に重要です。
実用的応用のための計算
ユーザーは、機械の距離や速度をミリメートルなどの工学単位ではなく、パルス単位で表示するHMI(ヒューマンマシンインターフェース)を目にすることがよくあります。プログラマーは機械を動作させることに急いでいるため、機械単位を特定して工学単位に変換する時間を十分に取らないことが多いのです。ここでは、この問題を解決するためのヒントをいくつかご紹介します。
モーターのステップ分解能(1回転あたりのパルス数)と1回転あたりの移動量(mm)が分かっている場合、指令パルス定数は分解能/1回転あたりの移動量、または1回転あたりのパルス数/1回転あたりの移動量として計算されます。
この定数は、特定の距離を移動するために必要なパルス数を求めるのに役立ちます。
現在位置(または距離)=パルス数/指令パルス数(定数)。
工学単位をパルスに変換するには、まず、特定の動作に必要なパルス数を決定する定数を求めます。上記の例では、モーターが1回転するのに500パルスが必要で、1回転が10mmであるとします。定数は、500(ppr)を10(mm p/r)で割ることで計算できます。したがって、定数は500パルス/10mm、つまり50パルス/mmとなります。
この定数を用いることで、所定の距離を移動させるのに必要なパルス数を計算できます。例えば、15 mm移動させるには、15 mm × 50 ppm = 750パルスとなります。
パルスカウンタの読み取り値を工学単位に変換するには、パルスカウンタの値をコマンドパルス定数で割るだけです。したがって、パルスカウンタの読み取り値が6,000の場合、上記の例で計算したコマンドパルス定数で割ると、アクチュエータの位置は6,000パルス/50 ppm = 120 mmとなります。
速度をmm単位で指令し、コントローラに適切な周波数をHz(1秒あたりのパルス数)で計算させるには、まず速度定数を決定する必要があります。これは、指令パルス定数(上記参照)を求めることで行いますが、単位が変わります。つまり、モータが500 pprを出力し、アクチュエータが1回転あたり10 mm移動する場合、500パルス/秒を指令すると、アクチュエータは1秒あたり10 mm移動します。500パルス/秒を10 mm/秒で割ると、1 mmあたり50パルス/秒になります。したがって、目標速度に50を掛けると、適切なパルス周波数が得られます。
計算式は同じだが、単位が変わる。
速度定数(pps)=1回転あたりのパルス数/1回転あたりの距離
パルス速度(pps)=(速度定数)×速度(mm)
パルス列信号を用いて動作を制御するシステムは、最初は難しく感じるかもしれませんが、信号の種類やコントローラおよびドライブの設定を最初に注意深く確認することで、動作させるまでの時間を短縮できます。さらに、基本的な計算をすぐに行っておけば、速度や距離のプログラミングが容易になり、機械オペレーターはHMIに表示される情報をより直感的に理解できるようになります。
投稿日時:2021年2月8日





