今回の記事ではBeckhoffのEL6631-0010を使用しProfinetデバイスを立ち上げ、シーメンスのS71200-G2のProfinet IOコントローラーとProfinet通信します。
さ、FAを楽しもう。

Reference Link
http://soup01.com/ja/?s=S71200
http://soup01.com/ja/category/beckhoff/
前書き
いつも私の技術ブログと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
技術はひとりじゃもったいない。
EL6631-0010?
EL6631-0010 は、EtherCATシステム上にPROFINET RTスレーブ(デバイス)として接続できる通信インターフェース端子です。この端子を使うことで、EtherCAT ↔ PROFINET RT間のリアルタイムデータ通信がシームレスに行えます。
主な特徴
- EtherCATスレーブとして動作
- PROFINET RT(リアルタイム)通信をサポート
- Conformance Class B準拠
- 3ポート内蔵スイッチ(RJ45×2)によりライン型トポロジーに対応
- 最大15台までのPROFINETマスターと通信可能
- ネットワーク診断機能:LLDP・SNMP対応
- 機器間距離 最大100m(RJ45)
- 最大65,535台のEtherCATデバイスネットワークに統合可能
このように、EL6631-0010はEtherCATとPROFINET RTの橋渡し役として、異なる産業用ネットワークを一つのシステムにまとめることができます。リアルタイム性と拡張性を両立しながら、診断性にも優れており、工場のネットワーク統合における強力な選択肢となります。
LED
Implementation
TwinCAT Side
最初にTwinCAT側を構築します。
新しいデバイスの追加
TwinCATプロジェクトの「I/O」ツリー上で右クリックし、コンテキストメニューから「Add New Item…」を選択することで、新しいI/Oデバイス(EtherCAT Masterなど)を手動で追加することができます。
「Add New Item…」を選択すると、「Insert Device」ウィンドウが開きます。
ここでは追加するデバイスのタイプを選択できます。今回はBeckhoffのEL6631-0010を使用するため、EtherCAT → EtherCAT Masterを選択します。この設定により、TwinCATプロジェクト内にEtherCATマスターデバイスが追加され、そこにEL6631-0010(PROFINET Device)をスレーブとして接続できるようになります。
EtherCAT Masterを追加すると、自動的にPC上のEtherCATデバイスを検索し、「Device Found At」ダイアログが表示されます。
ここでは、見つかったEtherCAT通信カードや仮想デバイスを一覧から選択し、使用するスロットを指定します。
たとえば:
- X001 (X001) や X000 (X000) はオンボードアダプタなどのデバイス
- PCI Bus/Slot 3/0、 Slot 7 (0x91620000) は、PCIeスロットに接続された通信カードなどを指します。
今回はPCI Bus/Slot 3/0, Slot 7 (0x91620000):PCIスロットに装着されたリアルなEtherCAT通信カードを指定します。
EtherCATマスターの追加と割り当てが完了すると、TwinCATプロジェクトの「I/O → Devices」配下に「Device 1 (EtherCAT)」としてマスター構成が表示されます。
オートスキャン
EtherCATマスター(Device 1)を右クリックすると、表示されるメニューの中に「Scan」があります。この「Scan」をクリックすることで、TwinCATが実際に接続されたEtherCATスレーブ機器(例:EL6631-0010)を自動検出し、構成に追加してくれます。この機能は、複数のI/O端子や通信モジュールがEtherCATラインに接続されているときに非常に便利で、機器のE-Bus順に正確に取り込むことが可能です。
スキャンが完了すると、EtherCATマスター配下に接続された各スレーブが「Term X(デバイス名)」として自動追加されます。この例では:
- Term 1:EK1200(Bus Coupler)
- Term 2:EL6910(Safety Controller)
- Term 3:EL6631-0010(←今回の主役)
- Term 4:その他のI/Oモジュール
EL6631-0010は、EtherCATネットワーク上のPROFINET Device(スレーブ)として使用される通信ターミナルです。このモジュールを通じて、PROFINETマスター(例:Siemens PLC)とのデータ通信を実現します。
Profinetデバイスの追加
EL6631-0010(PROFINET Device)をスキャンまたは手動で追加した後、その下に PROFINETの通信構成(GSDMLベース)を作成する必要があります。
「Add New Item…」を選ぶと表示される「Insert Device」ウィンドウで、以下のデバイスを選択します: Profinet I/O Device EL6631-0010, EtherCAT
このデバイスを選ぶことで、TwinCATプロジェクト内にEL6631-0010のPROFINETスレーブ定義が論理的に追加され、PROFINETマスタ(例:Siemens、Omronなど)との通信設定が可能になります。
この構成ノードでは以下の設定が行えます:
- PROFINETの Station Name(マスタ側から見たデバイス名)
- 通信周期やI/Oスロット数
- 入出力マッピングとデータ長
- ステータス確認や診断設定
TwinCAT構成ツリー上で、
- Term 3(EL6631-0010):EtherCATネットワーク上の実機としての通信モジュール
- Device 2(EL6631-0010):PROFINETスレーブとしての論理通信構成(I/OやStation名など)
この2つが正しく追加されていれば、TwinCATはEtherCAT経由でEL6631-0010にPROFINETの構成情報をダウンロードし、PROFINETネットワーク上のノードとして動作させることができます。
アダプターの設定
TwinCAT構成内の Device 2 (EL6631-0010) を選択し、プロパティウィンドウの「Adapter」タブを開くと、PROFINET通信に使用するネットワークアダプターの選択が行えます。
TwinCAT構成内の Device 2(EL6631-0010) に対して、「Device Found At」ウィンドウが表示されます。この画面では、EtherCAT上の実際のデバイス(Term 3(EL6631-0010))と、PROFINET構成ノードとしての論理デバイスを関連付けします。
また、このリンクがないと、PROFINETマスタとの通信は動作してもI/Oマッピングや機能が正しく反映されません。
タスクの設定
TwinCATの「Sync Task」タブでは、PROFINETデバイス(EL6631-0010)を、どの周期タスク(Task)と同期させるかを指定できます。
- Standard (via Mapping):TwinCATが自動的に適切なI/Oタスクと同期
- Special Sync Task:ユーザーが明示的に同期タスクを選択または作成
今回は「Special Sync Task」を選択し、下記のどちらかの操作を行います:
- 既存のI/Oタスク(例えば MainTask, EtherCATTask など)をドロップダウンから選択
- 「Create new I/O Task」をクリックして、周期(Cycle ticks)や優先度(Priority)を指定して新たにタスクを定義
「Sync Task」タブで「Create new I/O Task」を選ぶと、タスク名を入力するポップアップウィンドウが表示されます。ここでは、今回のPROFINET通信に使用する専用タスク名として、例として PNIO(Profinet I/O)などを入力し、「OK」をクリックします。
周期(Cycle ticks)や優先度(Priority)を指定して新たにタスクを定義しましょう。
ファームウェアの確認
TwinCATプロジェクト内でEL6631-0010を選択し、上部タブから「Online → Online Data」を開くことで、デバイスのリアルタイム情報を確認できます。
この「Software version」欄が、EL6631-0010の現在のファームウェアバージョンを示しています。この例では 08 (V00.35) が適用されています。
API追加
Device 2(EL6631-0010) を右クリックし、「Add New Item…」を選択することで、PROFINET構成におけるI/Oスロット・サブスロットを追加できます。これにより、EL6631-0010がPROFINETマスタに対してどのようなI/O構成(デジタルIN/OUT、アナログ値、カスタムデータなど)を持っているかを定義できます。
追加できる例:
- Digital Input (8 byte)
- Digital Output (8 byte)
- Analog Input (Word, 2 byte)
- Custom Module(GSDMLに応じて)
「Add New Item…」を実行すると、「Insert Box」ウィンドウが表示されます。
ここでは、EL6631-0010に対応するPROFINET I/O構成用のボックス(Box)を選択し、追加することができます。
Box追加の直後、「Insert Device」ウィンドウが表示され、ここでEL6631-0010の使用バージョンに適した Module DAP(デバイスのI/Oアクセスポイント)を選択します。この画面に表示されるのは、EL6631-0010のソフトウェア/ファームウェアバージョンに応じた選択肢です。今回の記事で使用したEL6631-0010のファームウェアが「08 (V00.35)」なので、 EL6631-0010 V2.32, at least FW 08 を選択します。
また、より新しいエントリ(例:FW 14、FW 17)を選ぶと、マッチしない場合にエラーになる可能性があります。
選択したModule DAP(Device Access Point)を追加すると、TwinCAT構成内の Device 2(EL6631-0010) に I/Oスロット構成(el6631-0010) が自動的に追加されます。
スロットの設定
TwinCATで構成された Device 2(EL6631-0010) を選択し、上部タブの「Device」を開くと、使用されている GSDMLファイルの情報が表示されます。「Device Configure」ボタンを押すことで、**GSDMLファイルに基づいたモジュール構成(スロット・サブスロット)をグラフィカルに編集できます。
「Device Configure」ボタンを押すと、このDevice Configurationウィンドウが開き、GSDMLに定義されたモジュール・サブモジュール構成を編集することができます。
Device Configuration画面で、以下の構成がセットされました。
- Slot 1:DAPモジュール(初期構成)
- Slot 2:8 Byte In-and Output
TwinCATプロジェクト内で Device 2(EL6631-0010) に追加されました。
GDSMLエクスポート
TwinCAT上で Device 2(EL6631-0010) の構成が完了したあと、「GSDML Generator」タブで、「Create GSDML from original…」をクリックしGSDML FILEを生成します。
PLC追加
I/OやPROFINETの構成がすべて完了したあとは、PLC制御プログラムの追加に進みます。PLCを右クリックし>Add New Itemします。
「Add New Item」画面では、TwinCATで使用するPLCプロジェクトテンプレートを選択します。Standard PLC Projectを選び>Addで進みます。
GVL追加
PLCプロジェクト内の「GVLs」を右クリックし、
Add → Global Variable List… を選択することで、グローバル変数を定義する新しいGVLファイルを作成できます。
「Add Global Variable List」のダイアログが表示され、ここで新しいGVLファイルの名前を入力します。
GVL内でPROFINET通信用の変数を定義します。
ビルド
Build > Build Solution をクリックして、プロジェクト全体をビルドします。
マッピング入力
いま選択されているのは Subterm 5 の 8バイト分の Output(1 Byte Output[0] ~ [7])で、右クリックして「Change Multi Link…」し、変数の一括Mappingを行います。
マッピング出力
出力データも同じ操作をしてください。
テストプログラム
最後は簡単にLoopbackプログラムを作成します。
Active Cofiguration
Active ConfigurationをクリックしプロジェクトのHard構成をTwinCAR RuntimeにDownloadします。
ログイン
プログラムをTwinCAR RuntimeにDowloadします。
Yesですすみます。
スタート
TwinCAR Runtimeをスタートします。
TIA Side
次は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を選択。バージョンに応じたデバイスをネットワークビューに配置します。
Profinet ネットワークの割り当て
EL6631-0010をネットワークに接続した後、IOコントローラ(ここではG2_PLC_1のPROFINETインターフェース)を選択して割り当てます。「Not assigned」と表示されている部分をクリックして設定します。
IOコントローラの割り当てが完了すると、緑色の線でPLCとEL6631-0010がつながり、「IO system: G2_PLC_1.PROFINET IO-System」として認識されます。通信が有効になった状態を示しています。
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します。
結果
下図のように、S71200 G2とBeckhoffのEL6631-0010でPROFINET通信できました。
IOデータにも反映されています。