KVシリーズのEtherNet/IPでサイクリック通信をする方法

概要

KvLink

OMRON NX/NJシリーズとKEYENCE KVシリーズの内臓Ethernetポートとサイクリック通信します

ここではNX102とKV5500を使用して
サイクリック通信のエリアを以下のように設定する方法を解説します
NX/NJ KV
変数名 データ型 アドレス
EIP_OUT ARRAY[0..9] OF WORD DM50~59
EIP_IN ARRAY[0..9] OF WORD DM0~9


OMRON NX/NJシリーズの設定

  1. グローバル変数の作成
  2. EIPコネクション設定

1. グローバル変数の作成
グローバル変数にサイクリック通信する変数を設定ます
NOTE
ネットワーク公開を入力と出力に設定します EipKv01a

2. EIPコネクション設定
  1. メニューの[ツール]-[Ethernet/IPコネクション設定]を開きます
    EipKv01b

  2. ポート1をダブルクリックして編集画面を表示します
    EipKv01b

  3. 入力のタグセットを以下のように設定します
    EipKv01b

  4. 出力のタグセットを以下のように設定します
    NOTE
    インスタンスIDを100に設定 EipKv01b

  5. EDSライブラリの追加
    ツールボックスで右クリックしてEDSライブラリ表示をクリックします
    EipKv01b

  6. EDSファイルをインストール
    [インストール]ボタンを押してKVシリーズのEDSファイルを選択します
    NOTE
    EDSファイルはKEYENCE ダウンロード(ソフトウェア)でKV8000などで検索して入手してください
    EipKv01b

  7. ターゲットデバイスの追加
    ツールボックスの[+]ボタンを押します
    EipKv01b

  8. ターゲットデバイスの追加
    サイクリック通信する相手のアドレスなどを設定します
    EipKv01b

  9. コネクションの設定
    ターゲットデバイス : KV-5500
    コネクションタイプ : InputOnly (ID type)
    入出力 : 入力
    ターゲット変数 : 100 (KV-STUDIOで設定したID)
    サイズ : 20 (byte)
    オリジネータ変数 : EIP_IN
    サイズ : 20 (byte)
    EipKv01b


KEYENCE KVシリーズの設定

  1. EDSファイルの登録
  2. 出力エリアの設定
  3. 入力エリアの設定

1. EDSファイルの登録
  1. EDSファイルの登録
    EtherNet/IP設定を開いて機器一覧を右クリックして[EDSファイル登録]でNXシリーズのEDSファイルを登録します
    NOTE
    EDSファイルはEtherNet/IP EDSファイル ダウンロードからNXシリーズのEDSファイルを入手してください
    EipKv11

  2. アダプタ初期設定
    機器一覧に登録したNXを左の青いエリアにドラッグアンドドロップしてアダプタ初期設定画面を表示します
    NXのIPアドレスを設定します
    EipKv12

2. 出力エリアの設定
  1. タグ設定
    サイクリックで出力するエリアの設定

    KV-5500の文字をクリックしてタグ一覧画面を表示します
    [追加]ボタンを押してタグを追加します
    インスタンスIDを100にして使用のチェックをチェックします
    デバイス割付領域に先頭デバイスをDM0にしてサイズを10ワードとして設定ます EipKv13

2. 入力エリアの設定
  1. コネクション設定
    サイクリックで読み出すエリアの設定

    追加したアダプタ(NX)のInput Onlyの文字をクリックしてコネクション一覧を表示します
    EipKv14

  2. パラメータ設定
    [パラメータ設定]ボタンを押してパラメータ設定画面を表示して以下の設定をします
    Produced Assenbly ID : 100 (SysmacStudioの出力タグセットで設定したID)
    Size : 20 EipKv15

  3. デバイス割付
    [デバイス割付]ボタンを押してデバイス割付設定画面を表示して以下の設定をします
    先頭デバイス : DM50
    サイズ : 10ワード EipKv16

サイクリックデータの確認

NX/NJ KV
変数名 データ型 アドレス
EIP_OUT ARRAY[0..9] OF WORD DM50~59
EipKv41 EipKv43
EIP_IN ARRAY[0..9] OF WORD DM0~9
EipKv42 EipKv44

もう少し実用的な通信エリアを設定する場合

サイクリック通信エリアにビット、ワード、数値、文字を組み合わせて設定してみます
次のデータをサイクリック通信します
NX/NJ KV
変数名 データ型 アドレス
EIP_OUT2 sEIP_OUT2 D200~241
EIP_IN2 sEIP_IN2 D100~D157

構造体
EipKv21

  1. NXの設定
  2. KVの設定
  3. 文字列の場合はエンディアン変換が必要
  4. メモリのアライメント

1. NXの設定
  1. グローバル変数の設定
    EipKv22

  2. 入力タグセットを設定
    メニューのEtherNet/IPコネクション設定を開いてポート1を開いて入力タグセットを設定します EipKv23

  3. 出力タグセットを設定
    EipKv24

  4. コネクションを設定
    EipKv25

2. KVの設定
  1. タグ設定
    EipKv31

  2. コネクション設定
    EipKv32

  3. パラメータ設定
    EipKv33

  4. デバイス設定
    EipKv34

3. 文字列の場合はエンディアン変換が必要
  1. NJ側で変換
    文字列を_HIGH_LOWを指定してバイト配列に変換したあとに文字列に戻します EipKv35

  2. KV側で変換
    サイクリック通信エリアから上位バイト下位バイトを入れ替えてD300以降に格納します
    EipKv36

付録. メモリのアライメント
構造体を使ってリンクする場合は少し気を付けるところがあります
今回の構造体 sEIP_IN2 のサイズは112byte(56Word)になりますが入力タグセットを設定では116byteになっています
名称 データ型 byte数
B ARRAY[0..15] OF BOOL 2
W ARRAY[0..9] OF WORD 20
INT32 ARRAY[0..9] OF DINT 40
STR STRING[50] 50
合計 112

これはメモリを確保するメモリ量が変わるためで、詳しくはマニュアル NJ/NXシリーズ CPUユニット ソフトウェア編の 「A-12 変数のメモリ確保の方法」を確認してください

特に問題なければそのままタグセットで表示されるバイト数でコネクションを作ってください
変更する場合は構造体のデータ型を設定する項目のオフセット種別を変更することで調整することもできます