1. TOP
  2. OMRON
  3. NX/NJシリーズ
  4. 上位ネットワーク
  5. KVと接続

概略

KEYENCE KVシリーズの内臓Ethernetポートに対してメッセージ通信を行いPLCの状態やメモリの読み書きをします
このページでは以下の2つのメッセージを使ってKVシリーズと通信するライブラリを提供します

どちらもKEYENCEのPLCがサーバになりKEYENCE側にはラダーは必要ありません

KvLinkライブラリ

ダウンロードされたときは利用規約に同意したものとみなします

KvLink.zip

ライブラリ同梱ファイル

  • KvLink.slr (ライブラリファイル)
  • KvLink.csm2 (ライブラリソースファイル)
  • KvLinkSample.csm2 (ライブラリを使用したサンプル)
  • KvLink.md (ライブラリの説明)

上位リンク通信はKEYENCE独自の通信方法でメッセージはASCII文字列で送受信します
プロトコルはTCP/IPとUDP/IPに対応していてポート番号は8501(初期値)を使用します

FB一覧

名前空間 : KvLink

HostLinkRunModeRead動作モード確認
HostLinkRunModeChangeモード変更
HostLinkUnitType機種の問い合わせ
HostLinkErrClrエラークリア
HostLinkErエラー番号確認
HostLinkSetTime時刻設定
HostLinkSet強制セット
HostLinkReset強制リセット
HostLinkSts連続強制セット
HostLinkRss連続強制リセット
HostLinkReadデータ読出し
HostLinkReads連続データ読出し
HostLinkWriteデータ書き込み
HostLinkWrites連続データ書き込み
HostLinkMBRモニタ読出し(ビット)
HostLinkMWRモニタ読出し(ワード)
HostLinkUDP上位リンクコマンド送信 UDP
HostLinkTCP上位リンクコマンド送信 TCP

HostLinkRunModeRead (動作モード確認)

HostLinkRunModeRead
入力
IpAddress
STRING[200]
送信先IPアドレス
出力
ReciveData
STRING[10]
0=PROGRAM, 1=RUN

HostLinkRunModeChange (モード変更)

HostLinkRunModeChange
入力
IpAddress
STRING[200]
送信先IPアドレス
RunMode
BOOL
FALSE=PROGRAM, TRUE=RUN
出力
ReciveData
STRING[10]
受信データ

HostLinkUnitType (機種の問い合わせ)

HostLinkRunModeRead
入力
IpAddress
STRING[200]
送信先IPアドレス
出力
ReciveData
STRING[10]
受信データ PLCの型式
PLCの型式
KV-8000 : 57KV-8000A : 58KV-7300 : 54
KV-7500 : 55KV-3000 : 51KV-5000 : 52
KV-5500 : 53KKV-NC32T : 128KV-N60xx : 132
KV-N40xx : 133KV-N24xx : 134

HostLinkErrClr (エラークリア)

HostLinkErrClr
入力
IpAddress
STRING[200]
送信先IPアドレス
出力
ReciveData
STRING[10]
受信データ PLCの型式

HostLinkEr (エラー番号確認)

HostLinkErrClr
入力
IpAddress
STRING[200]
送信先IPアドレス
出力
ReciveData
STRING[10]
受信データ エラー番号

HostLinkSetTime (時刻設定)

送信元PLCの時刻と合わせます

HostLinkSetTime
入力
IpAddress
STRING[200]
送信先IPアドレス
出力
ReciveData
STRING[10]
受信データ

HostLinkSet (強制セット)

HostLinkSet
入力
IpAddress
STRING[200]
送信先IPアドレス
Address
STRING[8]
ビットデバイス
出力
ReciveData
STRING[10]
受信データ

HostLinkReset (強制リセット)

HostLinkSet
入力
IpAddress
STRING[200]
送信先IPアドレス
Address
STRING[8]
ビットデバイス
出力
ReciveData
STRING[10]
受信データ

HostLinkSts (連続強制セット)

HostLinkSts
入力
IpAddress
STRING[200]
送信先IPアドレス
Address
STRING[8]
ビットデバイス
Size
USINT
書込み個数
出力
ReciveData
STRING[10]
受信データ

HostLinkRss (連続強制リセット)

HostLinkRss
入力
IpAddress
STRING[200]
送信先IPアドレス
Address
STRING[8]
ビットデバイス
Size
USINT
書込み個数
出力
ReciveData
STRING[10]
受信データ

HostLinkRead (データ読出し)

HostLinkRss
入力
IpAddress
STRING[200]
送信先IPアドレス
Address
STRING[10]
ワードデバイス
出力
ReciveData
STRING[20]
受信データ

HostLinkReads (連続データ読出し)

HostLinkReads
入力
IpAddress
STRING[200]
送信先IPアドレス
Address
STRING[10]
ワードデバイス
Size
USINT
書込み個数
出力
ReciveData
STRING[1986]
受信データ スペース区切り

HostLinkWrite (データ書き込み)

HostLinkWrite
入力
IpAddress
STRING[200]
送信先IPアドレス
Address
STRING[10]
ワードデバイス
WriteData
STRING[16]
書込みデータ
出力
ReciveData
STRING[10]
受信データ スペース区切り

HostLinkWrites (連続データ書き込み)

HostLinkWrites
入力
IpAddress
STRING[200]
送信先IPアドレス
Address
STRING[10]
ワードデバイス
Size
STRING[16]
書込個数 書込データの桁数が1968byte以内
WriteData
STRING[1975]
書込みデータ スペース区切り
出力
ReciveData
STRING[10]
受信データ

HostLinkMBR (モニタ読出し(ビット))

HostLinkMBR
入力
IpAddress
STRING[200]
送信先IPアドレス
Devices
STRING[1981]
ビットデバイス スペース区切り
出力
ReciveData
STRING[1986]
受信データ

HostLinkMWR (モニタ読出し(ワード))

HostLinkMWR
入力
IpAddress
STRING[200]
送信先IPアドレス
Devices
STRING[1981]
ワードデバイス スペース区切り
出力
ReciveData
STRING[1986]
受信データ

HostLinkUDP (上位リンクコマンド送信 UDP)

HostLinkUDP
入力
IpAddress
STRING[200]
送信先IPアドレス
Command
STRING[1986]
上位リンクコマンド
出力
ReciveSize
UINT
受信バイト数
入出力
ReciveData
BYTE[*]
受信データ

HostLinkTCP (上位リンクコマンド送信 TCP)

HostLinkTCP
入力
IpAddress
STRING[200]
送信先IPアドレス
Command
STRING[1986]
上位リンクコマンド
出力
ReciveSize
UINT
受信バイト数
入出力
ReciveData
BYTE[*]
受信データ

ビットデバイス

R0, B0, MR0, LR0, CR0, T0, C0, CTC0, VB0 等

ワードデバイス

R0, B0, MR0, LR0, CR0, VB0, DM0, EM0, FM0, ZF0, W0, TM0, Z1, T0, TC0, TS0, C0, CC0, CS0, AT0, CM0, VM0 等

データ形式
.U .S .D .L .H を指定可能

レスポンス (ReciveData)

正常時

OK[CR][LF]

データありの場合

データ1spデータ2spデータ3sp...データn[CR][LF]
sp=スペース

異常時

E?[CR][LF]
E0デバイス番号異常
E1コマンド異常
E2プログラム未登録
E3書込み禁止
E4コマンド異常
E5本体エラー
E6コメントなし

プログラム例

HostLinkSet (強制セット)

HostLinkSet01

FB入力変数
Address 'MR0'
FB出力変数
ReciveData 'OK$R$L'

HostLinkRead (データ読出し)

HostLinkRead01

FB入力変数
Address 'MR0'
FB出力変数
ReciveData 'OK$R$L'

HostLinkReads (連続データ読出し)

HostLinkReads01

FB入力変数
Address 'MR0'
Size 5
FB出力変数
ReciveData '0 0 0 0 0$R$L'

HostLinkWrites (連続データ書き込み)

HostLinkWrites01

FB入力変数
Address 'MR0'
Size 3
WriteData '0 1 1'
FB出力変数
ReciveData 'OK$R$L'

HostLinkMWR (モニタ読出し(ワード))

HostLinkMWR01

FB入力変数
Devices 'DM0 DM10'
FB出力変数
ReciveData '00257 30683$R$L'

HostLinkTCP (上位リンクコマンドを送信)

HostLinkBankChange

FB入力変数
Command 'BE 1$R'
FB出力変数
ReciveData 4F 4B 0D 0A ('OK$R$L')

CIP通信

CIP通信はEthernet/IPユニットのメッセージ通信(サーバ)機能を利用してデータの読出しなどをします

FB一覧

名前空間 : KvLink
CipRunModeRead 動作モード確認
CipRunModeChangeモード変更
CipUnitType 機種の問い合わせ
CipErrClr エラークリア
CipEr エラー番号確認
CipReads 連続データ読出し
CipWrites 連続データ書き込み
CipClass3 CIPコマンド送信 Class3

CipRunModeRead (動作モード読出し)

CipRunModeRead
入力
RoutePath
STRING[50]
ルートパス
出力
RespDat
BYTE
00=PROGRAM, 01=RUN

CipRunModeChange (モード変更)

CipRunModeChange
入力
RoutePath
STRING[50]
ルートパス
RunMode
BOOL
FALSE=PROGRAM, TRUE=RUN
出力
RespDat
BYTE
受信データ

CipUnitType (機種の問い合わせ)

CipUnitType
入力
RoutePath
STRING[50]
ルートパス
出力
RespDat
BYTE
受信データ PLCの型式
PLCの型式
KV-8000 : 39KV-8000A : 3AKV-7300 : 36
KV-7500 : 37KV-3000 : 33KV-5000 : 34
KV-5500 : 35KV-NC32T : 80KV-N60xx : 84
KV-N40xx : 85KV-N24xx : 86

CipErrClr (エラークリア)

CipErrClr
入力
RoutePath
STRING[50]
ルートパス
出力
RespDat
BYTE
受信データ

CipEr (エラー番号確認)

CipEr
入力
RoutePath
STRING[50]
ルートパス
出力
RespDat
BYTE
受信データ エラー番号

CipReads (連続データ読出し)

CipReads
入力
RoutePath
STRING[50]
ルートパス
Device
\\KvLink\DeviceCode
デバイス種別
Address
UDNT
デバイス番号
DataType
BYTE
0=初期値, 1=ワード, 2=2ワード, 3=ビット
ReadSize
UINT
デバイス数
出力
RespSize
UINT
受信バイト数
RespDat
BYTE[512]
受信データ

CipWrites (連続データ書き込み)

CipWrites
入力
RoutePath
STRING[50]
ルートパス
Device
\\KvLink\DeviceCode
デバイス種別
Address
UDNT
デバイス番号
DataType
BYTE
0=初期値, 1=ワード, 2=2ワード, 3=ビット
WriteSize
UINT
書込みバイト数
WriteData
BYTE[500]
書込みデータ
出力
RespDat
BYTE
受信データ

CIPコマンド送信 Class3

CipClass3
入力
RoutePath
STRING[50]
ルートパス
ServiceCode
UINT
ClassID
UDNT
デバイス番号
InstanceID
UINT
AttributeID
UINT
ServiceDat
BYTE[512]
送信サービスデータ
Size
UINT
送信要素数
出力
RespSize
UINT
レスポンスサイズ
入出力
RespDat
BYTE[*]
レスポンスデータ

レスポンス (RespDat)

メモリの状態が以下のとき
MR0 MR1 MR2 MR3 MR4 MR5 MR6 MR7
ON ON ON ON OFF ON OFF OFF
DataType = 3 (ビット)の場合
01 01 01 01 00 01 00 00
DataType = 1または2 (ワード)の場合
FF 02

プログラム例

CipReads01


CipReads (連続データ読出し)

入力
RoutePath
'02\192.168.250.31'
Device
\\KvLink\DeviceCode#MR
Address
0
DataType
0
ReadSize
10
出力
RespSize
10
RespData
01 01 01 01 00 01 00 00 00 00

CipWrites (連続データ書き込み)

入力
RoutePath
'02\192.168.250.31'
Device
\\KvLink\DeviceCode#MR
Address
0
DataType
0
WriteSize
10
WriteData
01 01 01 01 00 01
出力
RespData
00

CIP通信 tag指定

CIP通信のメッセージ通信(サーバ)機能を利用してタグの値を読出します

対応機種

KV-8000

KV側タグ設定

KV-STUDIOでタグ設定のClass3のタグの設定を[入出力]に設定します
CipTagReadSetting0

NJ側ラダー

標準FBのCIPUCMMRead命令を使ってタグの値を読み出します
CipUCMMReadFB_TagRead

入力
RoutePath
STRING[50]
ルートパス
Timeout
UINT
タイムアウト時間(0.1s単位)
SrcDat
STRING
他局変数名
Size
UINT
読出し要素数
出力
RespSize
UINT
読出したデータサイズ
入出力
DstDat
ANY
読み出したデータの値

この記事へのコメント