Beckhoff#Fatek SC3 サーボを制御しよう

こちらは新しいシリーズでFATEKのSC シリーズSERVOを使用し様々な記事を展開していきます。第2話はBeckhoff TwinCAT3とEtherCAT経由で接続し制御を行います。

さ、FAを楽しもう。

前書き

いつも私の技術ブログとYouTubeチャンネルをご覧いただき、心より感謝申し上げます。また、いまFullさん(full@桜 八重 (@fulhause) / X)と共に毎週水曜日の夜にお届けしている「高橋クリス」ラジオ番組を運営しています。

技術は独り占めせず、届けるもの

私たちは工場の生産技術や制御に関する技術情報を、ブログや動画などで無料公開しています。「知識は誰でもアクセスできるべき」という信念のもと、現場で役立つ具体的なノウハウやトラブル事例などを発信してきました。すべて無料で続けているのは、「知らなかったせいで困る人」を少しでも減らしたいからです。

また、もしあなたの現場で…

  • 「このPLCとデバイスの組み合わせ、ちゃんと動くのかな?」
  • 「EtherCAT通信でうまくいかない部分を検証してほしい」
  • 「新しいリモートI/Oを試したいけど社内に検証環境がない」

など、困っている構成や試してみたいアイデアがあれば、ぜひお知らせください。機器の貸出や構成の共有が可能であれば、検証し、記事や動画で発信します(ご希望に応じて匿名対応も可能です)。

支援のかたち

現在、私達の活動はほぼ無償で続けており、記事や動画の制作には、時間と検証環境の整備が必要です。この活動を継続的にコンテンツを提供するためには、皆様の温かいご支援が大変重要です。

メンバーシップ(ラジオの応援)

Fullさんとのラジオをより充実させるための支援プランです。

https://note.com/fulhause/membership/join

Amazonギフトリスト

コンテンツ制作に必要な機材・書籍をリストにしています。

https://www.amazon.co.jp/hz/wishlist/ls/H7W3RRD7C5QG?ref_=wl_share

Patreon(ブログ・動画活動への応援)

月額での小さなご支援が、記事の執筆・検証環境の充実につながります。

https://www.patreon.com/user?u=84249391

Paypal

小さな支援が大きな力になります。

https://paypal.me/soup01threes?country.x=JP&locale.x=ja_JP

知ってたら助かること、届けたいだけです

あなたの応援が、知識の共有をもっと自由で持続可能なものにしてくれます。これからもどうぞよろしくお願いします。

soup01threes*gmail.com

https://x.com/3threes2

技術はひとりじゃもったいない。

Reference Link

http://soup01.com/ja/category/fatek/sc-series/

Implementation

こちらは今回の構成です。

ESIファイルをダウンロード

下記のLinkから今回記事で使用するFATEK SC3 シリーズのServoのESI FileをDownloadします。

https://www.fatek.com/en/download.php?act=list&cid=175

OTEK側

最初にFatek側から設定します。ProTuneを起動し、Servoと接続します。

Pn20E/Pn210

こちらの2つのパラメータでギア比を設定していきます。

Pn20E/Pn210の隣にあるValue欄をクリックし、パラメータの編集画面が表示されます。

今回はPn20E=131072でPn210を設定します。記事で使用したServoモーターの分解能は17Bitであり、一回転は6000(単位、mm)に設定します。

こちらはSC3シリーズの説明です(どっかの日本メーカーの取説と非常似てると思いますが、ここは一旦忘れていきましょう)。こちらはFatekのSC3 Servoモーターの分解能設定の説明で、今回の記事ではBall Screwタイプ、6mm/0.001mで、Reference Unitは0.001に設定します。

Pn50B

こちらのパラメータはServoモータを逆回転の許可条件を設定します。Defaultでは本体にある入力に割り付けされています。

今回の記事ではIO端子を使用しませんので、すべての設定を8にしてください。

TwinCAT 側

次はTwinCAT側を設定します。

EDSファイルをインストールする

最初に先ほどFatek HPでDownloadしたESI Fileをインストールしていきましょう。

EtherCAT デバイス追加

次はI/O→Add New Itemで新しい通信インタフェースを追加します。

EtherCAT→EtherCAT Masterを選び、Okで進みます。

次はEtherCATマスターとして使用するインタフェースを設定し、OKで進みます。

スキャン

先ほど追加したEtherCATマスターを右クリック→Scanで進めます。

NC-Configurationを選び→Okで進みます。

Done!FatekのServoが追加されました。

Assign Axis

Encパラメータ

次はAxis→Axis1→Encをクリックし、Encoderの設定を行います。

こちらはFatekのSC3 Servoモーターの分解能設定の説明で、今回の記事ではBall Screwタイプ、6mm/0.001mで、Reference Unitは0.001に設定します。

TwinCAT側もそれに合わせて設定しましょう。

プログラム

次はFatekのSC3 Servoを動かすためのプログラムを作成します。こちらはPLC OPEN モーションのFBをします。それはBeckhoff TwinCAT3に標準実装されています。

PROGRAM MAIN
VAR
fbMC_Power :MC_Power;
fbMC_Home :MC_Home;
fbMC_Jog :MC_Jog;
fbMC_MoveAbsolute :MC_MoveAbsolute;
fbMC_MoveRelative :MC_MoveRelative;
fbMC_ReadActualPosition :MC_ReadActualPosition;
fbMC_ReadActualVelocity :MC_ReadActualVelocity;
fbMC_ReadStatus :MC_ReadStatus;
fbMC_Reset :MC_Reset;
END_VAR
VAR
fbMC_MoveAbsolutePosition
,fbMC_MoveAbsoluteVelocity :LREAL;
fbMC_MoveRelativePosition
,fbMC_MoveRelativeVelocity :LREAL;
xInited :BOOL;
xExeAbs,xExeRel,xReset,xPWON :BOOL;
END_VAR

次は各FBのInstanceを呼び出し、Servo ON・位置決めなどの動作を行います。

IF NOT xInited THEN
fbMC_MoveAbsolutePosition:=0.0;
fbMC_MoveAbsoluteVelocity:=6.0;
fbMC_MoveRelativePosition:=6.0;
fbMC_MoveRelativeVelocity:=30.0;
xInited:=TRUE;
END_IF

fbMC_Power(
Axis:=GVL.axis[0]
,Enable:=xPWON
,Enable_Negative:=TRUE
,Enable_Positive:=TRUE
);
fbMC_Reset(
Axis:=GVL.axis[0]
,Execute:=xReset
);
fbMC_Home(Axis:=GVL.axis[0]);
fbMC_Jog(Axis:=GVL.axis[0]);
fbMC_MoveAbsolute(
Axis:=GVL.axis[0]
,Execute:=xExeAbs
,Position:=fbMC_MoveAbsolutePosition
,Velocity:=fbMC_MoveAbsoluteVelocity
);
IF fbMC_MoveAbsolute.Busy THEN
xExeAbs:=FALSE;
END_IF

fbMC_MoveRelative(
Axis:=GVL.axis[0]
,Execute:=xExeRel
,Distance:=fbMC_MoveRelativePosition
,Velocity:=fbMC_MoveRelativeVelocity
);
IF fbMC_MoveRelative.Busy THEN
xExeRel:=FALSE;
END_IF

fbMC_ReadActualPosition(
Axis:=GVL.axis[0]
,Enable:=TRUE
);

fbMC_ReadActualVelocity(
Axis:=GVL.axis[0]
,Enable:=TRUE
);

fbMC_ReadStatus(
Axis:=GVL.axis[0]
,Enable:=TRUE
);

結果

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

シェアする

  • このエントリーをはてなブックマークに追加

フォローする