こちらは新しいシリーズでFATEKのM-PLCを使用し様々な記事を展開していきます。第3話M-PLCと同じFatek社のSC3 サーボモータと接続し、ラダープログラムでJog運転を操作します。
さ、FAを楽しもう。

Reference Link
モーションを用いたプログラミング
モーション制御を実行するために、M-PLCコントローラは、ポイントテーブルを使用したモーションフローによってユーザーのモーションシーケンス制御を実現します。各軸ポイント、JOG、またはHOMEで移動する際、MPLCはユーザーにラダーモーション関連のブロックコマンドも提供します。M-PLCモーション制御は、以下の3つの方法で実現できます:
- ラダー制御(今回の記事)
- モーションフロー制御(これから)
- テストラン(前回の記事)
Fun187 システム初期化 (MFSysInit)
EtherCAT通信を介してサーボを制御する場合は、モーション制御を実行する前に、必ずこのコマンドを実行する必要があります。
- Fun 235を使用して物理軸を仮想軸に変換する場合は、このコマンドの前に実行する必要があります。
- EN = 1: モーション初期化が有効(トリガー条件は立ち上がりおよび立ち下がり微分入力をサポート)
- ACT = 1: モーション初期化が実行中
- ERR = 1: モーション初期化エラー
- DN = 1: モーション初期化が完了

実行制御「EN」= 1の場合、モーション制御機能初期化動作が実行されます。
- 実行中に応答がない場合は、モーションリンク設定が実際のリンクと一致しているかを確認してください。
- 初期化後、後続の操作を続行するには、サーボをオンにする必要があります。例えば、全軸サーボオンレジスタ(M10520)を使用します。

Fun185 モーションエラーアラームリセット (MFSysRstAlm)
すべてのモーションフローおよびドライバエラーアラームをクリアします。ただし、ドライバの通信アラームはこのコマンドではクリアできず、再度電源を投入する必要があります。
- EN = 1: 立ち上がりトリガでモーションエラーアラームをクリア
- ACT = 1: モーションエラーアラームのクリアが実行中
- ERR = 1: モーションエラーアラームのクリアエラー
- DN = 1: モーションエラーアラームのクリアが完了

実行制御「EN」= 1の場合、モーションフローおよびドライバで発生したエラーがクリアされます。

Fun180 JOG制御 (MFJog)
JOGパラメータと設定モードに従って、指定されたモーション軸でJOG機能を実行します。
- EN = 1: JOG制御をトリガー
- D/R = 1 正転 / = 0 逆転
- ACT = 1: JOGが実行中
- ERR = 1: JOGエラー
- DN = 1: JOGが完了
- AX: 実行する軸
- MD: モード0~モード3
- モード0: JOG初期速度で連続移動。
- モード1: JOG初期速度で前進し、JOG距離を移動して停止。
- モード2: JOG初期速度で開始し、JOG加速度でJOG速度まで加速して前進を継続。
- モード3: JOG初期速度で開始し、JOG加速度でJOG速度まで加速し、JOG距離を移動した後に停止。
- 特殊レジスタ
- 軸1: JOGが実行中 – M10625
- 軸1: JOGが完了 – M10626

こちらはプログラム例です。
- 実行制御「EN」= 1の場合、AXで指定された軸がMDで指定されたモードを実行します。
- 実行制御「EN」= 0の場合、モーションは即座に停止します。

Implementation
こちらは今回記事の構成で、FATEKのM-PLCとSC3シリーズ ServoとEtherCATで接続します。それでは実際にM-PLCでプログラムを作成、SERVOを起動・JOG動作しましょう。

M-PLC Side
FATEKのM-PLC側を構築します。

Text Display Adjustment
下図のようにデバイスの表示コメントは全部表示仕切れない場合があります。

View→Longer TextのCheckboxを入れます。

その設定の変更により、デバイスのコメントを全体的に表示できるようになります。

既存デバイスの接点タイプ変更
最初に追加したデバイスの接点を変更したい場合は、その接点をダブルクリックし、Element Edit画面が表示されまうs。

A接点などのICONあるところをクリックし、変更したい接点タイプを選択します。

Done!今回はA接点の立ち上げ検知に変更しました。

OR回路追加
次はUperLogic上でラダープログラムにOR回路を追加する手順を紹介します。

最初にOR接点を追加したいネットワークを選択し→右クリック→Insert Network→After The Networkをクリックします。

それにより新しいネットワークが追加されます。

次は追加したい場合に右クリック→Vertical Shortをクリックします。

今度はOR回路に連結したいところををクリックします。

Done!それで2つのネットワークの回路がOR論理で接続できました。

Network Comment
次はネットワークコメントの追加方法を紹介します。コメント挿入したいネットワークを選択し→Network Commentをクリックします。

わかりうやすいコメントを設定しましょう。

Done!

Section Comment
次はSectionコメントで、それはプログラム本体がどんなことやってるかを設定する場所です。右クリック→Section Commentをクリックします。

プログラムに適切なコメントを追加しましょう。

Done!プログラムの一番上にSectionコメントが追加されました。

Comment View
では、プログラムに追加されたコメントを一覧したいときは、Comment→Network Commentをクリックします。

こちらは各プログラムのネットワークコメントの一覧表になります。

Add Function
今度は回路内に先ほど紹介したFun187などを追加したい場合は、ネットワークに右クリック→Functionします。

Function の追加画面が表示され、プログラム内で使用したいFun名を入力しましょう。

例えば下記の例のようにFun179を使用するなら、該当するFunのパラメータを適切に割り付け、Okで進みます。

Done!Funが追加されました。

Programming
こちらは今回の記事のプログラムで、これからネットワークことに説明します。

N000
N000はDummy回路です。

N001
N001は、モーション制御システムを起動する際の初期化シーケンスを制御しています。M10信号をトリガーとして、1秒の遅延後にシステム初期化が完了し、次の処理段階(サーボオンなど)へ移行できる状態になることを示しています。

N002
N002は、モーション制御システムで発生したアラームやエラーをクリアするための処理を実装しています。M20をトリガーとしてアラームリセットを開始し、専用のファンクションブロックを使用してモーションフローおよびドライバーのエラーアラームをクリアします。処理の実行状態、エラー、完了状態はそれぞれM113、M114、M115で監視できるようになっています。

N003
N003は、モーション制御機能の初期化を実行します。前段のタイマー処理(N001)でM11がセットされた後、このラングが実行され、モーション制御システム全体を初期化します。この初期化処理は、EtherCAT通信を介したサーボ制御や、後続のモーション制御コマンドを実行する前に必ず完了させる必要がある重要な処理です。
処理の実行状態、エラー、完了状態はそれぞれM110、M111、M112で監視できるようになっており、システムが正常に初期化されたことを確認してから次の処理に進むことができます。

N004
N004は、モーション制御の初期化(前段のN004)が完了した後、実際にサーボモーターを動作可能な状態にするための処理です。サーボォーンが完了すると、JOGやホーミングなどの後続のモーション制御コマンドを実行できるようになります。

N005
N005は、軸1のサーボモーターをJOGモードで動作させます。M1002をトリガーとしてJOG動作を開始し、M1003の状態に応じて正転または逆転方向に移動します。モード0が指定されているため、JOG初期速度で連続的に移動し続けます。M1002がOFFになると、動作は即座に停止します。
処理の実行状態、エラー、完了状態はそれぞれM116、M117、M118で監視できるようになっており、JOG動作の状態を確認しながら制御を行うことができます。

結果
こちらの動画から動作確認できます。