今回の記事ではBeckhoff TwinCAT3でTF6281を使用し、Ethernet/IP Scannerを立ち上げ、JTEKTのToyopuc NANOとEthernet/IP通信します。少々細かい設定がありましたが、確認場所さえ押せ込めば難しくありません。
さ、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
技術はひとりじゃもったいない。
Reference Link
http://soup01.com/ja/category/jtekt/toyopuc-nano/
関数
MOV命令 (FUN100) – 16進2桁定数転送
16進定数(00h〜FFh)をレジスタの下位8ビットへ格納する命令で、作動条件が成立すると、指定した16進定数をレジスタのLアドレス(下位8bit)に書き込みます。

下記の例では、実行後、D0000Lのみ3Fに更新され、他のレジスタは不変になります。
レジスタ | 値(実行前) | 値(実行後) | |
|---|---|---|---|
→ | D0000L | FF | 3F ✅ |
D0001L | 32 | 32 | |
D0002L | 43 | 43 | |
D0003L | 62 | 62 | |
D0004L | 65 | 65 |
WMOV命令 (FUN101) – 16進4桁定数転送
16進定数(0000h〜FFFFh)をレジスタの**Wアドレス(16bit)へ格納する命令で、作動条件が成立すると、指定した16進4桁定数をレジスタのWアドレス(16bit幅)に書き込みます。
下記の例では、16進のAAAAをY010〜Y01Fへ出力します。

レジスタ | 値(実行前) | 値(実行後) | |
|---|---|---|---|
Y00W | FC32 | FC32 | |
→ | Y01W | 5432 | AAAA ✅ |
Y02W | 6543 | 6543 | |
Y03W | 5262 | 5262 | |
Y04W | 8765 | 8765 |
Implementation
これでは実際プロジェクトを構築します。
Toyopoc 側
最初はToyopuc側を設定します。

I/O Module
今回の記事では使用しませんが、ハードウェア上では2ETモジュールもインストールされていますので、そのモジュールの追加方法を説明します。Parameter→I/O Moduleをクリックします。

自分の2ETはRack0のSlot1にインストールされています。

Link Parameter
次はToyopuc NANO本体のポートの設定を行うため、Parameters→Link Parameterをクリックします。

こちらは通信のLink画面になります。

Link setupをクリックします。

こちらはLinkの詳細設定画面です。

今回の記事ではToyopuc NANO本体のPORTを使用しますので、Rack No.をBuilt-inに設定します。

SlotはL1を選択します。これはPort L1だと示しています。

次はLink Module nameをEthernet/IPに設定します。

Done!最後はOkボタンをクリックし設定を保存します。

これでToyopuc NANOの本体のPORT1にEthernet/IP稼働するように設定しました。

今回はEthernet/IPの接続詳細を設定したいので、P1-1を選択した状態でDetailボタンをクリックします。

Orignator Setting
こちらはPCWin2のEthernet/IP設定画面になります。

Own IP
最初に下図の赤枠でToyopuc NANOのIPアドレスを設定します。

今回の記事では192.168.0.224にします。

Target設定
次はConnectionをクリックし、下記のセットアップ画面が表示されます。

Connection settingを”DO”に設定します。

Functionを”Target”にします。

次はSetupボタンをクリックします。

こちらはConnectionのターゲット設定画面です。

ルール
ターゲットのIDや割り付けられるデバイスには以下のルールがあります。


T->O
最初にT->O、つまりTOYOPUC→TwinCAT3に出力するデータを設定しましょう。
Connection Point
Connection Point/Tagを100にします。

Output Setting
次はOutput Settingボタンをクリックします。

こちらはToyopuc→TwinCAT3に出力するデータのデバイスを設定します。今回の記事ではR000Lから32Bytesデータに設定しました。

O->T
次はT->O、つまりTwinCAT3→TOYOPUCに出力するデータを設定しましょう。
Connection Point
Connection Point/Tagを199にします。

Input Setting
次はInput Settingボタンをクリックします。

こちらはTwinCAT3→Toyopucに出力するデータのデバイスを設定します。今回の記事ではR010Lから32Bytesデータに設定しました。

プログラム
最後は簡単に検証プログラムを作成します。

全ネットワークとも M000がON したときに実行されます。
- NET 000002 — M000がONでM000をセット(S)
- NET 000003 — MOV ABh → R0000L(下位8bit)
- NET 000004 — MOV CCh → R0000FL(下位8bit)
- NET 000005 — MMOVE R0010 → R0030(レジスタ間転送)
- NET 000006 — MMOVE R001F → R003F(レジスタ間転送)

ダウンロード
プロジェクトをTOYOPUC PLCにDownloadしましょう。
Beckhoff Side
次はBeckhoff 側を構築します。

Ethernet/IP Adapter追加
最初にI/O→Devices→右クリックでAdd New Itemします。

Ethernet/IP→Ethernet/IP Scannerを選び→OKで進みます。

ここでEthernet/IP Scannerとして稼働するEthernet Interfaceを設定し、またはCanelで後ほどで設定します。

Ethernet ドライバー設定
先ほど追加したEthernet/IP Adapter(Slave)をクリックし→Adapter→Searchをクリックします。

ここでもEthernet/IP Adapterとして稼働するEthernet Interfaceを設定できます。

Done!

Ethernet/IP 設定
次はBeckhoff TwinCAT3のEthernet/IP Scannerの内部設定を行います。

Settings TabにあるIPアドレスをTOYOPUC PLCの設定に合わせて行きましょう。

今回の記事では192.168.0.224にします。

IO 接続追加
次はTwinCAT3のEthernet/IP ScannerにTOYOPUC のEthernet/IP Adapterを追加したいので、右クリック→Append IO Connection→Default(With eds)します。

Done!新しいConnectionが追加されました。

次はToyopucのターゲットに合わせる必要があり、こちらは今回の設定になります。

Connection Point
Connection Pointsの設定は下図のように合わせて行きましょう。

Size
Sizeの設定は下図のように合わせて行いましょう。

GVL
次はTOYOPUC のEthernet/IPデータとMAPPINGするための変数を定義します。
{attribute ‘qualified_only’}
|
|---|
ビルド
Build→Build Solutionでプロジェクトをコンパイルします。

入力のマッピング
TwinCAT3の入力変数をMappingします。Connection→Input→右クリック→Change Linkします。

先程定義した変数に割り付けしましょう。

出力のマッピング
TwinCAT3の出力変数をMappingします。Connection→Output→右クリック→Change Linkします。

先程定義した変数に割り付けしましょう。

ダウンロード
最後はプロジェクトをTwinCAT RuntimeにDownloadしてください。
結果
Done!WiresharkからTwinCAT3とTOYOPUC間にはCIP I/Oメッセージが交換されています。

TwinCAT3側から変数をモニタリングしてみましょう。変数を右クリック→Add to Watchlistします。

Done!TwinCAT3とTOYOPUC間はデータ交換しています。

