こちらはBerghof MC-PIの新しいシリーズで、安全PLC SC-1000を使用し様々なデバイスと検証し記事を展開します。最初にSC-1000を使用するに当たってCodesysの環境セットアップ・立ち上げから始めます。
さ、FAを楽しもう。
前書きBLOG固定
いつも私の技術ブログと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
Palpay
小さな支援が大きな力になります。
https://paypal.me/soup01threes?country.x=JP&locale.x=ja_JP
知ってたら助かること、届けたいだけです
あなたの応援が、知識の共有をもっと自由で持続可能なものにしてくれます。これからもどうぞよろしくお願いします。
soup01threes*gmail.com
技術はひとりじゃもったいない。
Reference Link
http://soup01.com/ja/category/berghof/
ヒントボックス
リアルのアプリケーション上でSC-1000を使用するには、Berghof社に正しいSafety Package Versionを確認した上で使用してください。
B-Nimis SC-1000?
B-Nimis SC-1000はBREGHOFの安全PLCで、安全 PLC の目的は、制御システムに機能安全機能を統合することです。安全回路用のケーブルを別途用意する必要はない。安全 PLC は、安全アプリケーションプログラムを実行し、割り当てられた安全スレーブモジュールと安全関連の制御情報を交換します。
安全PLCを使用するための事前要件は、CODESYSベースの監視PLCとデータ交換用のフィールドバスとしてEtherCATを使用することです。
セーフティPLCは、制御システムに安全機能を統合することができます。安全PLCのコアは2つのマイクロプロセッサで構成され、安全機能を実装し、互いに通信してプロセスデータを交換し、相互に監視します。
第3のマイクロプロセッサーが外部通信を管理します。モジュールはB-Nimis I/Oシステムに組み込むために一列に設置することができます。
下図は、安全PLCを使用した制御システムの例です。システムが稼動しているとき、プロセスデータは標準PLCと標準アクチュエータおよびセンサの間で交換される。同時に、安全PLCはEtherCATフィールドバスとFSoEプロトコルを使用して安全I/Oモジュールやドライブと安全関連信号を交換します。
B-Nimis I/O System
今回記事で使用するB-Nimis SC-1000は、セーフティPLCはB-Nimis I/Oシステム内のモジュールです。また、B-Nimis I/Oシステムは、プロセス信号伝送用のEtherCATネットワークに組み込むためにスタック可能なI/Oモジュールの集合体です。
B-NimisのI/Oバスカプラは、ツイストペアからの伝送をLVDS(Eバス)に変換し、LVDSモジュールが必要とするシステム電圧を生成するヘッドモジュールとして機能する。それは標準の100ベースTxラインが片側に接続されています。反対側にはプロセス信号用のB-Nimis I/Oモジュールが連続して配置されています。
このようにEtherCATプロトコルは最後のI/Oモジュールまで保持されます。また、バスカプラの代わりにB-Nimis PLCをヘッドモジュールとして使用することもできます。この場合、標準PLCからバスマスタの機能を引き継ぎます。
B-Nimis-I/O Safety System
B-Nimis-I/Oセーフティシステムは、セーフティPLCとセーフティ入出力付きモジュールによりB-Nimis I/Oシステムを拡張します。別途配線された安全回路を用意する必要はありません。EtherCATプロトコルは安全信号と標準信号の両方を安全PLCに転送するために使用されます。
Safety PLC
セーフティPLCは、B-Nimis-I/Oセーフティシステムの入出力とシステム内の他のFSoE機器のセーフティ関連信号をリンクします。そしてCODESYSベースの標準PLCと常に連動して動作する。安全 PLC は 2 チャネルアーキテクチャで、標準PLCと論理交換変数を介してプログラミングシステムと通信し、非安全変数、入力、出力を使用して標準PLCと通信します。
CODESYS Safety
安全PLCは、CODESYS開発システムに完全に統合された認定プラグインに基づいています。安全PLCは標準PLCの下でEtherCATスレーブノードとしてプログラムされ、アプリケーション、タスク、グローバル変数のリスト、POU、論理I/Oを提供します。
- B-Nimis SC-1000は統合は安全PLCとの通信媒体としてEtherCATとの組み合わせでのみ動作します。
- 統合ファンクションダイアグラム(FD)セーフティエディタは基本または拡張レベルのプログラミングに使用されます。
- 基本レベルでは、認証済みファンクションブロック(PLCopen-Safety)がグラフィカルに接続され、システムの安全プログラムが確立されます。
- ソフトウェアは、変更追跡、安全な信号の流れ、安全なバージョン管理(ピン留め)、安全な操作の分離、デバッグモードなど、安全機能を保護するためのさらなる機能を提供します。
レイアウト
こちらはB-Nimis SC-1000のLayout図です。

B-Nimis SC-I/O S-DI4 S-DO2
B-Nimis SC-IO S-DI4 S-DO2セーフティモジュールは、一般的なセーフティ機器の接続を可能にし、B-Nimis I/Oブロックのどの位置にも設置可能です。その信号はEtherCATバスでB-Nimis SC-1000セーフティPLCに送信され、そこで安全な方法で処理されます。モジュールの出力は、コンタクター、シグナルランプ、サーボコンバーターなどのアクチュエーター付き回路に安全に組み込むことができます。
レイアウト
こちらはB-Nimis SC-I/O S-DI4 S-DO2のLayoutになります。

FSoEアドレス設定
B-Nimis SC-I/O S-DI4 S-DO2セーフティモジュールは、安全通信ネットワーク内で明確に識別できるセキュリティモジュールアドレス(FSoEスレーブアドレス)で動作します。アドレスはモジュール左側のバイナリスイッチにより手動で設定します。
FSoE アドレスを設定するには、2x 8 DIP スイッチを使用します。アドレスの範囲は 1〜 65535 です。FSoEアドレスの設定後、B-Nimis SC-I/O S-DI4 S-DO2セーフティモジュールの電源を一度切り、アドレスが承認され、モジュールテストが自動的に開始されることを確認します。
複数のモジュールを並べると、DIPスイッチにアクセスできなくなります。DIPスイッチでFSoEスレーブアドレスを設定するには、まずモジュールをモジュール列から外します。
Implementation
Firmwareアップデート
最初は手元にあるMC-PIを最新Firmwareまでアップデートしてください。
Codesys バージョン
今回記事で使用してるCodesys VersionはV3.5.20 SP4です。
CODESYS Safety Extensionをインストール
B-Nimis SC-1000を使用するには、Safety Extensionをインストールする必要があります。Codesysを起動し、Tools>CODESYS Installerをクリックします。
Browse TabからCODESYS Safety Extensionを検索してください。
次はInstallボタンをクリックします。
OKで進みます。
ライセンスを同意し、Continueで進みます。
PackagesをインストールするにはCODESYSを閉じること必要です。
少々まってください…
Done!
ESIファイルのインストール
次はB-Nimis SC-1000とB-Nimis SC-I/O S-DI4 S-DO2のESI FILEをインストールするため、Tools>Device Respositoryをクリックします。
Installボタンをクリックします。
Berghof社からいただいたESI FILEを選択しましょう。
新規プロジェクトの作成
File>New Projectで新規プロジェクトを作成します。
Standard projectを選び>Okで進みます。
ターゲットを選択
次はCodesysプロジェクトに使用するデバイスTargetを設定しましょう。
先ほどの手順からBERGHOFのTargetをインストールしたので、DeviceをBERGHOF MC-PI SoftMotion Controlを選び>Okで進みましょう。
Done!新しいCodesysプロジェクトを作成しました。
スキャンネットワーク
次はDevice>Scan NetworkでBERGHOF社のControllerを検索しましょう。
ライブラリのインストール
次はBerghofのライブラリをインストールするために、Library Managerをクリックします。
Library Repositoryをクリックします。
Berghofからいただいたライブラリをインストールします。
EtherCATネットワークの設定
これからMC-PIのEtherCATネットワークを構築します。
EtherCATマスタの追加
EtherCATマスターを追加するため、Device>右クリック>Add Deviceします。
Fieldbus>EthereCAT>Master>EtherCAT Masterを選び、Add Deviceで追加します。
Done!
ソースアドレスの設定
EtherCATマスターとして稼働するEthernet インタフェースを設定するために、先程で追加したマスターをクリックし、General>Selectをクリックします。
現在実機にあるEthenretインタフェースを一覧できます。
今回記事で使用するのはEth1です。
スキャンネットワーク
EtherCATネットワークにあるスレーブを検索するために、Scan for Deviceをクリックします。
もしESI FILEがインストールされていない場合、下図のようなNot Foundのメッセージが表示されます。
Done!B-Nimis SC-1000とB-Nimis SC-I/O S-DI4 S-DO2を検索できました。EtherCATネットワークSCANだとSC_1000がSafety PLCとして追加されない場合があるので、ここで手動で設定を変更する必要があります。その場合はSC_1000をクリックします。
Device Descriptionの選択画面が表示されます。
PLCs>Safety PLCs>B-Nims SC 1000を選択しましょう。
Done!
最後はonboard_buskopplerを選択し、”Copy to project”ですべてのSlaveをHardware Configurationに複製しましょう。
Done!
FSoEアドレスの設定
B-Nimis SC-I/O S-DI4 S-DO2のFSoEアドレスを実機に合わせるために、Safey App>Logical I/Os>接続してるB-Nimis SC-I/O S-DI4 S-DO2をクリックします。
Safe configurationの画面が表示されます。
FSoE Addressを実機のDIPスイッチに合わせ、またConntion IDを他のFSoEデバイスと被らないようにしましょう。
今回の記事でFSoEアドレスとConntion ID両方とも3に設定しました。
Input Parameters
B-Nimis SC-I/O S-DI4 S-DO2のInput parameters項目で安全入力の使用または不使用を設定できます。今回の記事では接続できるまでを説明するのが目的なので、一旦すべての安全入力を不使用にします。その場合は”Not Input used”を選択しましょう。
Output Parameters
B-Nimis SC-I/O S-DI4 S-DO2のInput parameters項目で安全出力の使用または不使用を設定できます。今回の記事では接続できるまでを説明するのが目的なので、一旦すべての安全出力を不使用にします。その場合は”Not Output used”を選択しましょう。
CPUに接続
次はCodesys CPUとPCを接続しましょう。
非安全 PLCにログイン
LoginでプロジェクトをCPUにDownloadしましょう。
Yesで進みましょう!
非安全 PLC スタート
最後はStartボタンでRuntimeをRunにします。
安全POUの追加
次はSafety PLCにプログラムを追加するために、Safety PLC>右クリック>Add Object>Basic POU(Safety)をクリックします。
Safety POU名を入力し、新しいSafety POUを追加しましょう。
Done!
安全タスクの確認
先ほど追加したSafety POUを自動的にSafety Taskに追加されます。
Done!
安全 PLC ログイン
安全プログラムを安全PLCにLoginするため、Drop-listからSafety Appを選択します。
Loginボタンをクリックします。
SC-1000にLoginするには、そのモジュールのシリアル番号が必須です。
SC-1000の本体にシリアル番号が印字されています。
先ほど赤枠に示している番号を入力しましょう。
次は安全アプリケーションを一時的にDownloadするか、ブートアプリケーションとして生成するかを選択できます。
今回の記事ではブートアプリケーションとして使用したいので、下図の赤枠をクリックしましょう。
Safety PLCのパスワード入力が求められます。Default上ではPasswordなしなので、空欄のままでOKをクリックしましょう。
Yesで進みます。
Done!
安全 PLC スタート
最後はSafety PLCのRuntimeもRun モードにしましょう。
Done!
安全IOB-Nimis SC-I/O S-DI4 S-DO2の通信状態にも確認したいので、B-Nimis SC-I/O S-DI4 S-DO2のモジュールをクリックします。
Safety DiagnosticsにあるFSoE Addressは認識できました!
Logにもエラー情報はありません。
安全ブートアプリケーションのロード
最後は安全アプリケーションをブートアプリケーションとしてロードします。まず一回Safety PLCからLogoutします。
Yesで進みます。
OKで進みます。
Done!Safety アプリケーションがブートアプリケーションとして再起動されました。
SAFETY PLCの状態もDEBUG>SAFEに変わりました。
モジュール本体にあるEtherCAT Run/Safe Statusにも緑点灯になりました!