Beckhoff#TwinCAT3 TF6271でシーメンスのPNPN Couplerと接続しよう

今回の記事ではSiemensのPNPN Couplerを使用し、SIEMENS S71500とBeckhoff TwinCAT3 TF6271をProfinet IO Controllerでデータ交換します。

さ、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

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

PNPN Coupler データ・ステータス・バイト

最後のバイトのデータ・ステータス・バイト(DS)に基づいて、ユーザーは以下のシナリオを認識することができます。

  • 0x40: 他のサブネットにモジュール入力データの有効なカップリングパートナーがない。
  • 0x60: 他のサブネットの IO コントローラが STOP 状態である。
  • 0x80 カップリングパートナーから有効なユーザデータを受信した

GSDMLのダウンロード

下記のLinkからPNPN CouplerのGSDML FILEをDownloadしてください。

https://support.industry.siemens.com/cs/document/23742537/profinet-gsd-files-gateway?dti=0&lc=en-WW

Implementation

Siemens Side

初めにシーメンス側を構築します。

GSDMLのインストール

PNPN CouplerのGSDMLをインストールします。

Installで進みます。

Done!

Profinet ネットワークの設定

次はCatalogからPNPN Coupler V4.2 X1をProfinetネットワークに追加します。

Done!PNPN Coupler が追加されました。

スロットの設定

次はPNPN Couplerを開き、Slot設定を行います。

Module→OUT→OUT 253 ByteをSlot1に追加します。

Done!そしてIO Module→IN 253 Bytes+DSでSlot2を追加します。

Done!これでPNPN Couplerの設定が完了しました。

Profinet ネットワークの割り当て

次はPNPN CouplerにあるNot assignedから接続するProfinet Interfaceを選択します。

Done!

IPアドレス

次はPNPN CouplerのIPアドレスをアプリケーションに合わせて設定しましょう。

Done!

名前を割り当てる

次はPNPN CouplerのProfinet デバイス名を割り付けるために、デバイスを右クリック→Assign Device Nameします。

Profinet デバイス名の割り付け画面が表示され、Update Listでネットワーク上にあるProfinet デバイスを検索します。

Done!今回記事で使用するPNPN Couplerが見つかりました。

そのPNPN Couplerを選び→Assign NameでProfinet デバイス名を割り付けます。

プログラム

次はプログラムを作成します。こちらはData Status値によりPNPN Couplerの状態を判断します。

こちらはデータをBeckhoff TwinCAT3に送信する前に、一回SWAPします。

ダウンロード

最後はプロジェクトをS71500にDownloadしていきましょう。

TwinCAT3 Side

次はTwinCAT3側を構築します。

GSDMLファイルのインストール

Siemens のHPからDownloadしたGSDML Fileを下記のDirectoryに格納してください。

C:\TwinCAT\3.1\Config\Io\Profinet

Profinet IO コントローラの追加

Profinet IO Controllerを追加するために、Devices→右クリック→Add New Itemします。

Profinet→Profinet I/O Controller(RT)を選び、OKで進みます。

Done!

イーサネットアダプターの設定

Adapter Tab→Searchボタンをクリックし、TwinCAT Runtimeに使用できるEthernet Adapterを設定します。

今回の記事ではX001を使用します。

Done!

Profinetタスクの構成

次はSync Task→Special Sync Taskをクリックし→Create new I/O Taskします。

Task名を入力します。

Done!

設定

Settings Tabを開き、Profinet Io ControllerのIP アドレスとデバイス名を設定しましょう。

Profinetノードのスキャン

実はTwinCAT3ではScan機能を使用し、Profinet ネットワーク内にあるProfient デバイスを検索することができます。

Profinet IO Controller右クリック→Scanします。

Done!今回記事で使用するPNPN Couplerを検索できました。

PNPN Couplerを選び→Add Devicesをクリックします。

Yesで進みます。

Done!PNPN Coupler X2はProfinetネットワークのConfigurationに追加されました。

スロットを追加

次はPNPN CouplerにSlotを追加します。注意するのはこのSlotの設定はX1側(今回Siemens S71500)と一致する必要があります。

こちらはSlotの構築画面になります。

Siemens S71500側でSlot1は出力253 Bytesだと設定されましたので、X2側ではこれに合わせてIN 253+DS を設定いたします。

Siemens S71500側でSlot2は入力253 +DSはBytesだと設定されましたので、X2側ではこれに合わせて出力253 Bytesを設定いたします。

Done!

これでOKです。

デバイス名

PNPN Couplerのデバイス名General→Nameで設定できます。

IPアドレス

PNPN CouplerのIPアドレスはDevice Tabから設定できます。

PLCの追加

次はPLCを追加するため、PLC>Add New Itemをクリックします。

Standard PLC Projectを選び>AddでPLCを追加します。

GVL

こちらのGVLでPNPN CouplerとMappingするProcess入出力になります。

{attribute ‘qualified_only’}
VAR_GLOBAL
arrbDataIN AT %I*     :ARRAY[0..253]OF BYTE;
arrbDataOut AT %Q* :ARRAY[0..252]OF BYTE;
END_VAR

プログラム

こちらはPNPN Couplerを経由しシーメンス S71500と通信テストするプログラムです。

PROGRAM MAIN
VAR
wOutWord1,wOutWord2 :WORD;
wInWord1,wInWord2 :WORD;
xNoValidData
,xOtherSideStop
,xValidData :BOOL;
END_VAR


xNoValidData:=GVL_PNPNCoupler.arrbDataIN[253] = 16#40;
xOtherSideStop:=GVL_PNPNCoupler.arrbDataIN[253] = 16#60;
xValidData:=GVL_PNPNCoupler.arrbDataIN[253] = 16#80;

MEMMOVE(
ADR(GVL_PNPNCoupler.arrbDataOut[0])
,ADR(wOutWord1)
,n:=SIZEOF(wOutWord1)
);

MEMMOVE(
ADR(GVL_PNPNCoupler.arrbDataOut[250])
,ADR(wOutWord2)
,n:=SIZEOF(wOutWord2)
);

MEMMOVE(
ADR(wInWord1)
,ADR(GVL_PNPNCoupler.arrbDataIN[0])
,n:=SIZEOF(wInWord1)
);

MEMMOVE(
ADR(wInWord2)
,ADR(GVL_PNPNCoupler.arrbDataIN[250])
,n:=SIZEOF(wInWord2)
);

マッピング入力

Process入力データをPNPN CouplerとMappingするために、Inputsをクリックします。

すべての変数を選び→右クリック→Change Multi Linkします。

先ほどGVLで宣言した入力データとMappingします。

マッピング出力

Process出力データをPNPN CouplerとMappingするために、Outputsをクリックします。

すべての変数を選び→右クリック→Change Multi Linkします。

先ほどGVLで宣言した出力データとMappingします。

設定の有効化

最後はActivate ConfigurationでプロジェクトをCPUにDownloadします。

Okで進みます。

OKでTwinCAT RuntimeをRun Modeに切り替えましょう。

Login

次はLoginし、TwinCAT IDEとRuntimeを接続します。

Yesで進みます。

スタート

最後はStartボタンをクリックしアプリケーションを起動します。

結果

PNPN Couplerにはエラーランプなしです。

S7-1500とPNPN Couplerにも通信OKです。

Siemens S71500側に書き込んだデータはTwinCAT3側が受け取りました。

TwinCAT側に書き込んだデータはSiemens S71500側が受け取りました。

シェアする

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

フォローする