こちらは新しいシリーズで、Schmersal社のPSC1-C-100-FB1 Safety Controllerを利用し様々な記事を展開していきます。第8話はSiemens S71500FとProfinet・Profisafe経由でデータ交換します。また、記事の中でTIA V20を使用します。
さ、FAを楽しもう。
Reference Video
Schmersal.PSC1-C-100-FB1 開封しました!
Reference Link
http://soup01.com/ja/category/schmersal_jp/psc1/
前書き
いつも私の技術ブログとYouTubeチャンネルをご覧いただき、心より感謝申し上げます。また、いまFullさん(full@桜 八重 (@fulhause) / X)と共に毎週水曜日の夜にお届けしている「高橋クリス」ラジオ番組を運営しています。
現在、私達の活動はほぼ無償で続けており、より多くのコンテンツを提供するためには、皆様の温かいご支援が大変重要です。もし可能であれば、以下のリンクから応援していただけると大変嬉しく思います。
高橋クリスのメンバーシップ
こちらはFullさん(full@桜 八重 (@fulhause) / X)と共にやっているラジオにメンバーシップを登録いただけます。
https://note.com/fulhause/membership/join
AMAZON ギフトリスト
こちらは自分のブログのコンテンツ制作や設備の充実に大いに役立てさせていただきます。
https://www.amazon.co.jp/hz/wishlist/ls/H7W3RRD7C5QG?ref_=wl_share
Patreon
こちらは自分のブログのコンテンツ制作や設備の充実に対する小さな応援の気持ちのPatreonです。
https://www.patreon.com/user?u=84249391
皆様のサポートが、私たちの活動をより充実させる力となります。
どうぞよろしくお願いします。
メールアドレス(*=@)
X
Implementation
こちらが今回の記事の構成になります。

Schmersal Side
最初にSchmersal側から構築します。
Confiugre Fieldbus
PSC1-C-100-FB1 Safety ControllerでProfisafe Interfaceを有効にするために、コントローラーをクリックします。
Properties画面にあるLocal Network>FieldbusのCheckboxを入れます。
プロジェクトのLocal Network TabにFieldbusの表示が増えます。
次はLocal Network>Fieldbusをクリックします。
Properties>Network>TypeでProfinetを設定します。
今回の記事ではProfisafeとProfinet両方も使用しますので、Network Prototypeを”Both”に設定してください。
F-Address
PSC-C-100-FB1のF-Addressを設定し、あとでTIAから合わせて起きましょう。
Safety Program
次は安全プログラムを作成します。今回の記事ではPart7の続きになり、なおかつ安全通信を追加します。Fieldbus Network>F-Bus OutputをFunction Sheetに追加します。
今回はF-Bus OutputをLight Curtainの出力と接続します。
そしてSiemens Profisafe信号からSafety リセットも可能です。
Connect to the Controller
PSC1-C-100-FB1のCOM Portと専用ケーブルをPCに接続します。
SafePLC2>Home>Device Interfaceをクリックします。
Connection Settingsをクリックします。
今回はRS-232ケーブルを使用するので、COM PortをDevice Managerに合わせて設定しましましょう。
最後はConnectボタンをクリックし、CPUとSafePLC2を接続しましょう。
OKで進みます。それでSafePLC2とPSC1-C-100-FB1を接続しました。
Send Configuration
Send Configurationをクリックし、プロジェクトをPSC1-C-100-FB1に転送しましょう。
しばらくお待ち下さい…
Siemens Side
次はSiemens側を作成します。
Download GSDML File
Profinet/Profisafeネットワークを構築するには、Schmersal社のHPからGSDMLをDownloadしてください。
https://products.schmersal.com/en_IO/psc1-c-100-fb1-103008452.html
Install GSDML File
Options>Manage general Station description files(GSD)をクリックします。
GSDMLの管理画面が表示され、…ボタンをクリックします。
先程DownloadされたGSDML Folderを選びましょう。
Done!GSDML Fileが見つかりました。InstallでGSDML Fileをインストールします。
少々お待ち下さい。
Done!
Configure Profinet Network
次はProfinet Networkを構築します。
Add PSC
Schmersal社のPSC-C-100-FB1コントローラーをProfinetネットワークに追加します。
Done!
Assign Profinet Network
Schmersal PSC-C-100-FB1の”Not assigned”のところをクリックし、適切なProfinetインタフェースを設定しましょう。
Done!
Configure IP Address
次は各ProfinetデバイスのIPアドレスを設定するため、Show address lablesをクリックします。
各Profinet デバイスのIPアドレスが表示されましたので、アプリケーションに合わせて設定してください。
Configure PSC1
Schmersal社のPSC-C-100-FB1安全コントローラーを設定するため、PSC-C-100-FB1をダブルクリックしてください。
Insert Profisafe Slot
今回の記事ではProfisafe通信を使いますので、Module>F Module IO(12 Bytes)をSlot5に追加してください。
Done!
Adjust the IO Address
PSC-C-100-FB1がProfinet経由で交換するデータのIO番号を調整してください。
Configure Profisafe
次はPSC-C-100-FB1のProfisafe接続を変更するために、先程Slot5に追加したF-Moduleをクリックしてください。
先ほどF-Addressを10に設定しました。
PROFIsafe>F_Dest_Addを10に設定してください。
DUT
PSC-C-100-FB1とS71500Fのデータ交換を合わせて構造体を定義します。
udt_4Bytes
こちらは4 Bytesの構造体です。
udt_128Bytes
こちらは128 Bytesの構造体です。
udt_PSC_IN
こちらはSchmersalmのPSC-C-100-FB1の入力データに合わせて作成した構造体です。
udt_PSC_OUT
こちらはSchmersalmのPSC-C-100-FB1の出力データに合わせて作成した構造体です。
udt_PSC
最後は先程定義したものを組み合わせた構造体を定義しましょう、
Tags
プログラムを作るためにPLC Tagsを作成します。
DB
先ほど作成した構造体の元にDBを宣言します。
Function Block
次はFunction Blockを作成します。
FB_PSC
こちらのFBはProfinet経由でPSC-C-100-FB1から受信したまたは送信したデータを構造体に展開する機能を実装します。
VAR
こちらはFBのインターフェースです。Inoutだけが定義され、パラメータが3つあります。
- 長さ指定なしのByte配列
- 先ほど定義したPSC-C-100-FB1構造体
Netwok2
Network2はPSC-C-100-FB1から受信したデータを構造体にあるBool配列に分解します。
Network3
Network3は構造体にあるBool配列をPSC-C-100-FB1に出力するプログラムです。
FB_Station
こちらはFB_PSCで分解したデータを意味がある変数に展開するFBです。
VAR
こちらはFB_Stationのインターフェースです。
- iReset:PSC-C-100-FB1に送信するリセット許可のBitです。
- oESTOPなど:PSC-C-100-FB1から受信したデータに展開する変数たちです。
- ioData:FB_PSCに分解した構造体変数になります。
Netwok1
Profinet経由で受信したLogicData Bit0はLight Curtainの状態になります。
Netwok2
Profinet経由で受信したLogicData Bit1は非常停止の状態になります。
Netwok3
Profinet経由で受信したLogicData Bit107/Bit407/Bit16/Bit402/Bit250はドアロックの状態になります。
Netwok4
Profinet経由で受信したLogicData Bit30はすべての安全機器が正常である信号になります。
Netwok5
Profinet経由で送信したLogicData Bit19はリセット許可の信号になります。
OB1
次はOB1で作成したFBを呼び出し、適切なTagを割り付けましょう。
Safety Program
今度は安全プログラムを作成します。
VAR
こちらは安全FB1で定義したInstance変数です。
Netwok1
Network1はProfisafeネットワークをリセットするFBを呼び出します。
Netwok2
Network2はS71500FがProfisafe経由でSafetyNetworkリセットのコマンドをPSC-C-100-FB1に送信します。
Netwok3
Network3はProfisafe経由で受信したLight Curtain状態を確認するプログラムになります。
Assign Devices Name
PSC-C-100-FB1にデバイス名を割り付けるために、右クリック>Assign device nameします。
Assign PROFINET Device nameの操作画面が表示されます。
Update Listをクリックします。
PSC-C-100-FB1が見つかりましたで、Assign nameでProfinetデバイス名を割り付けましょう。
Done!
Download
Hardware ConfigurationとプログラムをCPUにDownloadしてください。
Result
最初にProfinetネットワークにF-IO Passivedというアラームが発生します。
System Blocks>STEP7 Safety>F-I/O data blocks>F00200_FxxxというSafetyDBをクリックしてください。
QBADとACK_REQがTUREになってることを確認できます。
- QBAD=該当するProfisafeデバイスがPassive状態
- ACK_REQ=ACK動作が必要
なので、安全FBに呼び出したACK_GL のACK_GLOBをTrueにします。
Done!QBADとACK_REQもFALSEになりました。
Profisafeのデータも送受信できるようになりました。
TIA上にも通信エラーがないことを確認できました。
PSC-C-100-FB1に接続されている安全機器の状態も確認できました。
SiemensからProfinet経由でリセット許可の信号を送信します。
PSC-C-100-FB1側のリセットボタンを押したらEnable信号も受信できました!
SafetyPLC2ツールからも信号の状態を確認できます。
こちらの動画で動作の確認ができます。
Download
こちらのLinkから今回記事で作成したTIA V20プログラムをDownloadできます。
https://github.com/soup01Threes/Siemens/blob/main/TestwithPSC.zap20