今回の記事ではCMZ Codesys Controller FCT-641コントローラーでEtherCATを立ち上げ、EK1101とEL6631-0010を使用しProfinetデバイスを立ち上げ、シーメンスのS71500のProfinet IOコントローラーとProfinet通信します。
さ、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/?s=S71200
http://soup01.com/ja/category/beckhoff/
http://soup01.com/ja/category/cmz/
Implementation
Codesys側
最初にCMZ Codesys側を設定します。

EtherCATマスター追加
EtherCATマスタを追加するため、まずは既存のデバイスを右クリックして、メニューから「Add Device…」を選択します。この操作で、CODESYSに登録されているマスタデバイスを追加するためのウィンドウが開きます。

EtherCAT マスターを追加します。

Done!Device配下に EtherCAT_Masterが追加されたことが確認できます。このあと、スレーブデバイスをスキャンして自動構成する、または手動でデバイスを追加することができます。

EtherCAT通信のNIC設定
EtherCAT Masterを選択し、プロパティタブ内の「General」設定に進みます。
ここでは「Source address(MACアドレス)」に使用するネットワークアダプターを指定します。MACアドレスを直接入力するのではなく、右側の「Select…」ボタンを押すことで、使用可能なネットワークアダプタを一覧から選択できます

表示された「Select Network Adapter」ウィンドウから、使用したい物理ポート(例:ETH_1)を選択します。MACアドレスとインターフェース名(ETH_0 / ETH_1など)を確認して間違いのないようにします。

選択後、EtherCAT Masterの「Source address(MAC)」欄に、選んだインターフェースのアドレスが自動で反映されます。この状態でEtherCAT通信の初期化が行えるようになります。

スキャンデバイス
次は先ほど追加したEtherCATマスターを右クリック→Scan for Devicesをクリックします。

Done!すべてのEtherCAT Slaveが正常に接続してるなら、今回記事で使用するEK1101、EL6631-001が検索できるはずです。

こちらが検索結果です。

Profinetスロットを追加
次はProfinet スロットを追加するために、EL6631-0010を右クリック→Add Deviceします。

Profinet モジュールの追加画面が表示されます。

今回の記事では8 Bytes In and Outputを選択します。

プログラム
こちらは今回の記事の検証プログラムです。
| PROGRAM PLC_PRG VAR arrInbyte,arrOutByte :ARRAY[0..7]OF BYTE; arrInbyte1,arrOutByte1 :ARRAY[0..7]OF BYTE; END_VAR arrInbyte1:=arrInbyte; arrOutByte:=arrOutByte1; |
マッピング
次はPNIO Module I/O Mappingを開き、プログラム内の変数とMappingしましょう。

ダウンロード
最後はプロジェクトをCPUにDownloadしましょう。

Siemens側
次はSiemens側をやります。

GDSMLのインストール
Options>Manage general station description Fileをクリックします。

次はTIAからEL6731-0010のGSD FILEをインストールしてください。

先程EXPORTされたGDSML FILEが表示されました。

Done!

デバイスの追加
Hardware Catalogから「Beckhoff Automation > EL Device」にあるEL6631-0010を選択。バージョンに応じたデバイスをネットワークビューに配置します。

EL6631-0010が追加されました。

No Assignedのところをクリックし、適切なProfinetネットワークを設定します。

Done!

Profinet ネットワークの割り当て
次はDevice Viewに切り替え、右のハードウェアカタログから「8 Byte In- and Output」を選択し、EL6631-0010のスロットにドラッグ&ドロップ。これで双方向のデータ通信が設定されます。


EL6631-0010に設定した「8 Byte In- and Output」が、Iアドレス・Qアドレスともに 64〜71番 に割り当てられていることを確認できました、実際のアプリケーションやプログラムに合わせて設定してください。

タグテーブルの作成
PLC tags メニューから、Add new tag table を選ぶと新しいタグテーブルが作成できる。
ここでは「Tag table_1」がまだ空の状態([0])として表示されているよ。

I/Oアドレス(%I64〜%I71、%Q64〜%Q71)に対応して、Byte型のタグを16個追加します。

アセスメント名
EL6631-0010のデバイスを割り付けるために、右クリック>Assign device nameします。

Updae listをクリックし、ネットワークにあるPROFINETデバイスを検索します。

EL6631-0010を検索できました。

EL6631-0010を選び>Assign device nameをクリックします。

それでProfinetデバイス名の割り付けが完了しました。

ダウンロード
最後はHardware ConfigurationとプログラムをSiemensのPLCにDownloadします。
結果
Done!S71500とEL6631-0010間のProfinet通信ができました。

Codesys側では黄色3角ついてますが、実は通信しています。

Siemens S71500側から出力データを受信されています。

同じくBeckhoff EL6631-0010側の出力データ、Siemens側にも受け取れています。
