Siemens#S71200-G2とS71500でPROFISAFE通信しよう(I-DevicesとPNPN Coupler編)

今回の記事ではS71200-G2とS71516F-3間でPROFISAFE通信を構築します。その構成を成立するにはI-Devices機能を使用する必要があり、S71516F-3はIOコントローラーで、S71200-G2がI-デバイスになります。また、PNPN Couplerを利用し、2つのシーメンスCPUを同時にコントローラーとして立ち上げ、PROFISAFE通信をPNPN Coupler経由でデータ通信します。

さ、FAを楽しもう!

Implementation

今回はS71516F-3・S71200-G2両方にも構築する必要があります。

新しいデバイスx3作成する

最初にTIAプロジェクトを作成し、その中に2つのCPUを追加します。今回の例ではS71516F-3・PNPNカプラー・S7 1214FCになります。

IPアドレス設定

次はNetwork Viewを切り替え、各CPUのIPアドレスを設定します。

下図のボタンをクリックします。

デバイスのIPアドレスをアプリケーションに合わせててください。

PNPNカプラー設定

最初はPNPN Couplerを設定します。

Transfer Mapping設定

General→Module Parameters→Transfer Mappingをクリックします。

<Add New>をクリックし、新規接続を追加します。TypeのDrop-listからPROFISAFEを設定します。

注意するのはPROFISAFE IN/OUTだと記述してますが、実際は:

  • IN12/Out6=INPUT
  • IN6/Out12=OUTPUT

になります。なので、以下の構成ではX1->X2(S7-1500からS71200)にVirtual Slot1/2は入力でVirtual Slot3/4は出力になります。

Data status無効

また、PNPN Coupler経由でPROFISAFE通信する場合はData Stausを無効にする必要があります。

S71200 Side

S71200-G2側を設定します。

今回の記事ではS71516F-3とS71200-G2と接続しますので、S71200-G2のPROFINET インタフェースを設定しましょう。

Done!

Transfer area

次はOperation Mode>I-device communicationをクリックし、S71516F-3とS71200-G2間の通信領域を設定します。

安全プログラム

Safetyプログラムを作成します。

ネットワーク2

こちらはS71500→S71200(I Devices)に送信するPROFISAFEデータを受信するために呼び出すRCVDP関数、ID=1です。

ネットワーク3

こちらはS71500→S71200(I Devices)に送信するPROFISAFEデータを受信するために呼び出すRCVDP関数、ID=2です。

ネットワーク5

こちらはS71500→PNPNカプラー→S71200に送信するPROFISAFEデータを受信するために呼び出すRCVDP関数、ID=12です。

ネットワーク6

こちらはS71500→PNPNカプラー→S71200に送信するPROFISAFEデータを受信するために呼び出すRCVDP関数、ID=13です。

ネットワーク7

こちらはACK_GLを使用しFail-Safe状態を全体リセットするプログラムです。

ネットワーク8

こちらは1秒ON/OFF繰り返しのタイマープログラムです。

ネットワーク9

こちらはSENDDPとREVDPの関数に実行エラーがあるかをチェックするプログラムです。

ネットワーク10

こちらのタイマーはコントローラーが立ち上げた最初の30sでPROFISAFEの出力データを更新しないで作成したプログラムです。30s過ぎたらxInitedをTRUEにします。

ネットワーク11

PROFISAFE経由で送信する整数データをIEC_COUNTERを使用し、1s経つたびにプラスとマイナスします。

ネットワーク12

こちらは10ms ON/OFF繰り返しのタイマープログラムです。

ネットワーク13

PROFISAFE経由で送信する整数データをIEC_COUNTERを使用し、10ms経つたびにプラスとマイナスします。

ネットワーク15

こちらはS71200→S71500にPROFISAFE経由でデータを送信するために呼び出すSENDDP関数、ID=3です。

ネットワーク16

こちらはS71200→S71500にPROFISAFE経由でデータを送信するために呼び出すSENDDP関数、ID=4です。

ネットワーク18

こちらはS71200→PNPN Coupler→S71500にPROFISAFE経由でデータを送信するために呼び出すSENDDP関数、ID=10です。

ネットワーク19

こちらはS71200→PNPN Coupler→S71500にPROFISAFE経由でデータを送信するために呼び出すSENDDP関数、ID=11です。

ダウンロード

最後はプロジェクトをPLCにDownloadしてください。

S71500側

次はS71500側を構築します。

Profinet接続設定

安全プログラム

Safetyプログラムを作成します。

ネットワーク2

こちらはS71200→S71500(I Devices)に送信するPROFISAFEデータを受信するために呼び出すRCVDP関数、ID=3です。

ネットワーク3

こちらはS71200→S71500(I Devices)に送信するPROFISAFEデータを受信するために呼び出すRCVDP関数、ID=4です。

ネットワーク5

こちらはS71200→PNPNカプラー→S71500に送信するPROFISAFEデータを受信するために呼び出すRCVDP関数、ID=10です。

ネットワーク6

こちらはS71200→PNPNカプラー→S71500に送信するPROFISAFEデータを受信するために呼び出すRCVDP関数、ID=11です。

ネットワーク7

こちらはACK_GLを使用しFail-Safe状態を全体リセットするプログラムです。

ネットワーク8

こちらはSENDDPとREVDPの関数に実行エラーがあるかをチェックするプログラムです。

ネットワーク10

こちらはS71500→S71200にPROFISAFE経由でデータを送信するために呼び出すSENDDP関数、ID=1です。

ネットワーク11

こちらはS71500→S71200にPROFISAFE経由でデータを送信するために呼び出すSENDDP関数、ID=2です。

ネットワーク13

こちらはS71500→PNPN Coupler→S71200にPROFISAFE経由でデータを送信するために呼び出すSENDDP関数、ID=12です。

ネットワーク14

こちらはS71500→PNPN Coupler→S71200にPROFISAFE経由でデータを送信するために呼び出すSENDDP関数、ID=13です。

ダウンロード

最後はプロジェクトをPLCにDownloadしてください。

結果

Done!S71500とS71200だけではなく、PNPNカプラー経由でもProfisafe通信をWireshark経由で確認できました。

シェアする

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

フォローする