今回の記事では、ToyopucのSafety Nanoと10GXを使用しオムロンのNXR-SXD1204-CSTと接続します。
FAを楽しもう!

Reference Link
http://soup01.com/ja/category/omron%e3%82%aa%e3%83%a0%e3%83%ad%e3%83%b3/nxr-sxd/
http://soup01.com/ja/category/protocol/ethernet-ip/cip-safety/
CIP Safety通信
CIP Safety通信(CIP Safety over EtherNet/IP)は、ODVA(Open DeviceNet Vendor Association inc.)が管理・認証している産業用イーサネット通信です。
EtherNet/IP通信をベースにした安全通信なので、通常のEtherNet/IP通信と同じネットワーク上で使うことができます。
そのため、Ethernet通信、EtherNet/IP通信、CIP Safety通信を同じネットワーク内で混在させることも可能です。
CIP Safety通信では、コネクションと呼ばれる通信経路を使って通信します。
通信を始めるには、まず相手機器とのコネクションをオープンする必要があります。
このとき、コネクションをオープンする側をオリジネータ、オープンされる側をターゲットと呼びます。
オリジネータからターゲットへコネクション接続要求を送り、通信を開始します。Nano Safetyは、オリジネータとターゲットの両方の機能を使用できます。
用語 | 説明 |
|---|---|
Configuration Owning UNID(CFUNID) | ターゲット機器の安全コンフィギュレーションデータの所有者を一意に識別する値です。権限を持たないオリジネータ機器がコンフィギュレーションデータを変更するのを防止するために使用されます。 |
Node ID | デバイスに割り当てられたIPアドレスです。IPv4アドレスのため、4Byteで構成されます。 |
Safety Network Number(SNN) | 安全システム内でネットワークを一意に識別するための値です。6Byteで構成され、安全ネットワークごとに、システム全体で一意となるSNNを割り当てます。 |
Safety Configuration Identifier(SCID) | SCCRCとSCTSを組み合わせた値です。 |
Safety Configuration CRC(SCCRC) | 安全デバイスのコンフィギュレーションデータをもとに算出されるCRC値です。 |
Safety Configuration Time Stamps(SCTS) | 安全デバイスのコンフィギュレーションデータを作成・変更したときに記録されるタイムスタンプ値です。 |
Target’s UNID(TUNID) | ターゲット機器のUNIDです。ターゲット機器を一意に識別するために使用されます。 |
Originator’s UNID(OUNID) | オリジネータ機器のUNIDです。オリジネータ機器を一意に識別するために使用されます。 |
Output Connection Point Owning UNID(OCPUNID) | ターゲット機器の出力コネクションの所有者を一意に識別する値です。権限を持たないオリジネータ機器が、出力コネクションのオーナーシップを取得するのを防止するために使用されます。 |
UNID(Unique Node Identifier) | Node IDとSNNで構成される10Byteの値です。コネクション確立時に、デバイスを一意に識別するために使用されます。 |
コネクション
コネクションを接続するときは、ターゲット側で設定されているコネクションポイントを、オリジネータ側から指定します。このコネクションポイントの指定には、インスタンスIDを使用します。
CIP Safety通信でインスタンスIDを使う場合、オリジネータとターゲットの間で双方向通信を行うために、2つのコネクションを使用します。

コネクションの確立
CIP Safety通信では、まずオリジネータ機器とターゲット機器の間でコネクションを確立します。コネクションが確立したあと、その通信経路を使ってデータの送受信を行います。

コネクション接続要求
CIP Safety通信で安全信号をサイクリック通信するには、まずオリジネータ機器とターゲット機器の間でコネクションを確立する必要があります。そのため、オリジネータ機器からターゲット機器に対して、Safety Open と呼ばれるコネクション接続要求を送信します。
Safety Openには、以下の3種類があります。
種類 | 概要 | 対応状況 |
|---|---|---|
Type1 Safety Open | ・ターゲット機器に設定する Configuration Dataを含む ・コネクション確立時に SCIDのチェックを実施する(SCID≠0) | 非対応 |
Type2a Safety Open | ・ターゲット機器に設定する Configuration Dataを含まない ・コネクション確立時に SCIDのチェックを実施する(SCID≠0) | 対応 |
Type2b Safety Open | ・ターゲット機器に設定する Configuration Dataを含まない ・コネクション確立時に SCIDのチェックを実施しない(SCID=0) | 対応 |
Type1
・ターゲット機器に設定する Configuration Dataを含む
・コネクション確立時に SCIDのチェックを実施する(SCID≠0)

Type2a
ターゲット機器に設定する Configuration Dataを含まない
・コネクション確立時に SCIDのチェックを実施する(SCID≠0)

Type2b
ターゲット機器に設定する Configuration Dataを含まなく、コネクション確立時に SCIDのチェックを実施しない(SCID=0)。
Type2b Safety Openでは、コネクションを確立するときにSCIDチェックを行いません。
そのため、オリジネータ機器とターゲット機器の間で、Configuration Dataの認識が一致しているかどうかは確認されません。つまり、ターゲット機器に設定されているConfiguration Dataが、意図した内容になっているかどうかは保証されません。
Type2b Safety Openを使ってCIP Safety通信のコネクションを確立する場合は、ターゲット機器のConfiguration Dataが意図した設定になっていることを、事前に確認しておく必要があります。

SNN(Safety Network Number)
SNN(Safety Network Number)は、安全システム内で安全ネットワークを一意に識別するために割り当てる値です。安全ネットワークごとに異なるSNNを設定することで、他の安全ネットワークと明確に区別できます。
たとえば、ネットワークAとネットワークBで同じネットワークアドレス(192.168.250.***)を使用している場合でも、異なるSNNを割り当てることで、それぞれの安全ネットワークを一意に識別できます。

オーナーシップの競合
ターゲット機器では、コネクションを確立したときに、オリジネータ機器の識別情報である OUNID を OCPUNID として記憶します。その後、別のOUNIDを持つオリジネータ機器からコネクション接続要求を受けた場合、ターゲット機器はオーナーシップの競合を検出し、その接続要求を拒絶します。
これによって、意図していない別のオリジネータ機器が、すでに接続済みのターゲット機器へコネクションを確立することを防ぎます。ターゲット機器に記憶されているオーナーシップ情報をクリアしたい場合は、次のいずれかを行います。
- Safety Reset(タイプ1):ターゲット機器を初期状態にリセット
- Safety Reset(タイプ2):ターゲット機器のOCPUNIDをリセット


対応接続タイプ
Nano SafetyはType2aもしくはType2のみ対応します。

設定ツール
機種名 | 設定項目 | プログラミングツール |
|---|---|---|
Nano Safety(マスターモジュール) | ネットワーク詳細設定 IPアドレス | PCwin2 |
〃 | ネットワーク詳細設定 サブネットマスク | PCwin2 |
〃 |
ネットワーク詳細設定
| PCwin2 |
〃 | 汎用 TCP 設定 *2 | PCwin2 |
〃 | オプション設定(EtherNet/IP) | PCwin2 |
〃 | コネクション設定(EtherNet/IP) | PCwin2 |
〃 | Safety データリンク設定 *3 | PCwin2 |
〃 | オプション設定(CIP Safety) | PCwin-Safe-Nano |
〃 | コネクション設定(CIP Safety) | PCwin-Safe-Nano |
Implementation
それでは実際にネットワークを構築しましょう。
NXR-SXD1204-CST側
NXR-SXD1204-CST側は特に設定することなく、ロータリースイッチだけを使用するアプリケーションに合わせて設定してください。また、NXR-SXD1204-CSTに関する設定方法などは下記の記事を参考にしてください。
PC WIN側
次PC Win2側を設定します。
I/Oもモジュール設定
Parameter→I/O Moduleを開きます。

今回はRack0のSlot1にNano Safetyをインストールしていますので、Rack0 Slot1をNano Safetyに設定します。

モジュールを構築したい場合は、該当するSlotをダブルクリックし、Special/Communication→Nano Safetyを選択していただければOKです。

Link Parameters
モジュールの通信設定を行います。

Link Module
先程Rack0 Slot1にはNano Safetyを設定しましたので、Link Noの空きある場所に以下の設定をしましょう。
- Port L1 Ethernet/IP+CIP Safety→Nano SafetyのPort1をEthernet/IP+CIP Safety接続用として設定する
- Port L2 Ethernet/IP+CIP Safety→Nano SafetyのPort1をEthernet/IP+CIP Safety接続用として設定する
注意するのはL1とL2両方にも設定する必要があります(不使用なPORTあるとしても)。

詳細設定
今回はPort L1 Ethernet/IP+CIP Safetyの詳細設定を行いたいので、該当するLinkを選択し→Detailをクリックします。

Basic Settingをクリックします。

IPアドレス設定
Nano SafetyのPort1のIPアドレスを設定します。

Universal TCP設定
もしNano SafetyにComputer Linkを使用したい場合、こちらのTabで設定しましょう。

ダウンロード
最後にPC Win2プロジェクトをNano 10GXにダウンロードしましょう。
PC WIN SAFE側
NANO Safetyの安全接続を構築します。PCwin-Safe-Nanoを起動し→Parameters→Link Parametersをクリックします。

Linkセットアップ
今回JTEKTのNano SafetyとNXR-SXD1204-CSTはPort1で接続するので、L1を選び→Link Setupします。

Link Module nameをCIP Safetyを選択し→Okします。

接続設定
今度はDetail setupをクリックします。

Connection setting(CIP Safety)をクリックします。

こちらはCIP Safetyの設定画面になります。

SNN Safety Network Number 設定
下記の赤枠をクリックしSNN番号を設定します。

GenerateをクリックしSNN番号を生成します。

接続1構築
接続1をクリックします。

Connecting SettingをDoにします。

FunctionをOriginatorを設定します。

NXR-SXD1204-CST追加
List Settingをクリックします。

こちらの画面で複数のCIP Safety接続を一括設定できます。

EDS FILE IMPORT
下記のEDS FIESボタンをクリックし、NXR-SXD1204-CSTのEDS FILEをPC WIN SAFEにImportしてください。

IPアドレス設定
Con.Destination欄はNXR-SXD1204-CSTのIPアドレスに合わせて設定してください。

SSN
SSNは先程生成したSafety Network Numberに合わせてください。

詳細はConnection setting(CIP Safety)にあるSNN欄を参考にしてください。

電子Key
EDS FILEからIMPORTしたNXR-SXD1204-CSTですので、Vendor IDなどはすでに自動的IMPORTされています。

Configuration Instance設定
Configuration Instanceは864に設定します。

NXR-SXD1204-CSTの取説ではAssembly 864はConfiguration Instanceだと記載されています。

Safety T->O 接続
Nano SafetyはType1接続に対応していませんので、今回の記事ではType2接続を使用します。

今回記事で使用した961は安全入力状態だけではなく、モジュール状態などの情報も取得可能なAssemblyになります。

Safety O->T 接続
Nano SafetyはType1接続に対応していませんので、今回の記事ではType2接続を使用します。

今回記事で使用した881はStandard出力・リモート出力両方を使用可能なAssemblyになります。

T->O 設定
T->O size欄をクリックし、今回接続で使用するT->Oの番地とデータサイズを設定します。
- T->Oは安全入力データ9Bytes
- GX100Lから9Bytes

NXR-SXD1204-CSTの取説ではAssembly 961は9Bytesです。

O->T 設定
O->T size欄をクリックし、今回接続で使用するO->Tの番地とデータサイズを設定します。
- O->Tは安全出力データ3Bytes
- GX120Lから3Bytes

NXR-SXD1204-CSTの取説ではAssembly 881は3Bytesです。

Safety Open Type
今回NANO SafetyとNXR-SXD1204-CSTの間はType2bを使用しますので、Safety Open Type欄にType2bを設定してください。

個別Setup方法
接続1をクリックします。

Setupをクリックします。

この画面から個別の接続を設定できます。

ダウンロード
最後にPC WIN SAFEプロジェクトをNano Safetyにダウンロードしましょう。
結果
WiresharkからCIPIOのパッケージを確認できました。
