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