概要
-

-
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 (動作モード確認)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
出力
|
ReciveData
|
STRING
|
受信データ
0=PROGRAM, 1=RUN
|
|
- HostLinkRunModeChange (モード変更)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
RunMode
|
BOOL
|
モード
FALSE=PROGRAM, TRUE=RUN
|
出力
|
- HostLinkUnitType (機種の問い合わせ)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
出力
|
ReciveData
|
STRING
|
受信データ
PLCの型式
|
PLCの型式
| KV-8000 : 57 |
KV-8000A : 58 |
KV-7300 : 54 |
| KV-7500 : 55 |
KV-3000 : 51 |
KV-5000 : 52 |
| KV-5500 : 53 |
KV-NC32T : 128 |
KV-N60xx : 132 |
| KV-N40xx : 133 |
KV-N24xx : 134 |
|
|
- HostLinkErrClr (エラークリア)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
出力
|
- HostLinkEr (エラー番号確認)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
出力
|
ReciveData
|
STRING
|
受信データ
エラー番号
|
|
- HostLinkSetTime (時刻設定)
-
送信元PLCの時刻と合わせます
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
出力
|
- HostLinkSet (強制セット)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
Address
|
STRING
|
ビットデバイス
|
出力
|
- HostLinkReset (強制リセット)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
Address
|
STRING
|
ビットデバイス
|
出力
|
- HostLinkSts (連続強制セット)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
Address
|
STRING
|
ビットデバイス
|
|
Size
|
USINT
|
書込み個数
|
出力
|
- HostLinkRss (連続強制リセット)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
Address
|
STRING
|
ビットデバイス
|
|
Size
|
USINT
|
書込み個数
|
出力
|
- HostLinkRead (データ読出し)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
Address
|
STRING
|
ワードデバイス
|
出力
|
- HostLinkReads (連続データ読出し)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
Address
|
STRING
|
ワードデバイス
|
|
Size
|
USINT
|
読出個数
受信データの桁数が1985byte以内
|
出力
|
ReciveData
|
STRING
|
受信データ
スペース区切り
|
|
- HostLinkWrite (データ書き込み)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
Address
|
STRING
|
ワードデバイス
|
|
WriteData
|
STRING
|
書込みデータ
|
出力
|
- HostLinkWrites (連続データ書き込み)
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
Address
|
STRING
|
ワードデバイス
|
|
Size
|
USINT
|
書込個数
書込データの桁数が1968byte以内
|
|
WriteData
|
STRING
|
書込みデータ
スペース区切り
|
出力
|
- HostLinkMBR (モニタ読出し(ビット))
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
Devices
|
STRING
|
ビットデバイス
スペース区切り
|
出力
|
- HostLinkMWR (モニタ読出し(ワード))
-
|
入力
|
IpAddress
|
STRING[200]
|
送信先IPアドレス
|
|
Devices
|
STRING
|
ワードデバイス
スペース区切り
|
出力
|
- HostLinkUDP (上位リンクコマンド送信 UDP)
-
|
入力
|
IpAdr
|
STRING[200]
|
送信先IPアドレス
|
|
Command
|
STRING
|
上位リンクコマンド
|
出力
入出力
|
- HostLinkTCP (上位リンクコマンド送信 TCP)
-
|
入力
|
IpAdr
|
STRING[200]
|
送信先IPアドレス
|
|
Command
|
STRING
|
上位リンクコマンド
|
出力
入出力
|
- ビットデバイス
-
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)
-
正常時
正常時(データありの場合)
| データ1 |
sp |
データ2 |
sp |
データ3 |
sp |
... |
データn |
[CR] |
[LF] |
sp=スペース
異常時
| E0 |
デバイス番号異常
|
| E1 |
コマンド異常 |
| E2 |
プログラム未登録 |
| E3 |
書込み禁止 |
| E4 |
コマンド異常 |
| E5 |
本体エラー |
| E6 |
コメントなし |
プログラム例
HostLinkSet (強制セット)
| FB入力変数 |
|
|
Address |
'MR0' |
| FB出力変数 |
|
|
ReciveData |
'OK$R$L' |
HostLinkRead (データ読出し)
| FB入力変数 |
|
|
Address |
'MR0' |
| FB出力変数 |
|
|
ReciveData |
'0$R$L' |
HostLinkReads (連続データ読出し)
| FB入力変数 |
|
|
Address |
'MR0' |
|
Size |
5 |
| FB出力変数 |
|
|
ReciveData |
'0 0 0 0 0$R$L' |
HostLinkWrites (連続データ書き込み)
| FB入力変数 |
|
|
Address |
'MR0' |
|
Size |
3 |
|
WriteData |
'0 1 1' |
| FB出力変数 |
|
|
ReciveData |
'OK$R$L' |
HostLinkMWR (モニタ読出し(ワード))
| FB入力変数 |
|
|
Devices |
'DM0 DM10' |
| FB出力変数 |
|
|
ReciveData |
'00257 30683$R$L' |
HostLinkTCP (上位リンクコマンドを送信)
ファイルレジスタのバンク切り替え
| 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 (動作モード読出し)
-
|
入力
|
RoutePath
|
STRING[50]
|
ルートパス
|
出力
|
RespDat
|
BYTE
|
受信データ
00=PROGRAM, 01=RUN
|
|
- CipRunModeChange (モード変更)
-
|
入力
|
RoutePath
|
STRING[50]
|
ルートパス
|
|
RunMode
|
BOOL
|
動作モード
FALSE=PROGRAM, TRUE=RUN
|
出力
|
- CipUnitType (機種の問い合わせ)
-
|
入力
|
RoutePath
|
STRING[50]
|
ルートパス
|
|
RunMode
|
BOOL
|
動作モード
FALSE=PROGRAM, TRUE=RUN
|
出力
|
RespDat
|
BYTE
|
受信データ
PLCの型式
|
PLCの型式
| KV-8000 : 39 |
KV-8000A : 3A |
KV-7300 : 36 |
| KV-7500 : 37 |
KV-3000 : 33 |
KV-5000 : 34 |
| KV-5500 : 35 |
KV-NC32T : 80 |
KV-N60xx : 84 |
| KV-N40xx : 85 |
KV-N24xx : 86 |
|
|
- CipErrClr (エラークリア)
-
|
入力
|
RoutePath
|
STRING[50]
|
ルートパス
|
出力
|
- CipEr (エラー番号確認)
-
|
入力
|
RoutePath
|
STRING[50]
|
ルートパス
|
出力
|
- CipReads (連続データ読出し)
-
|
入力
|
RoutePath
|
STRING[50]
|
ルートパス
|
|
Device |
\\KvLink \DeviceCode |
デバイス種別 |
|
Address |
UDNT |
デバイス番号 |
|
DataType |
BYTE |
データ形式
0=初期値, 1=ワード, 2=2ワード, 3=ビット
|
|
ReadSize |
UINT |
デバイス数 |
出力
|
RespSize
|
UINT
|
受信バイト数
|
|
RespDat
|
BYTE[512]
|
受信データ
|
|
- CipWrites (連続データ書き込み)
-
|
入力
|
RoutePath
|
STRING[50]
|
ルートパス
|
|
Device |
\\KvLink \DeviceCode |
デバイス種別 |
|
Address |
UDNT |
デバイス番号 |
|
DataType |
BYTE |
データ形式
0=初期値, 1=ワード, 2=2ワード, 3=ビット
|
|
WriteSize |
UINT |
書込みバイト数 |
|
WriteData |
BYTE[500] |
書込みデータ |
出力
|
- CIPコマンド送信 Class3
-
|
入力
|
RoutePath
|
STRING[50]
|
ルートパス
|
|
ServiceCode |
BYTE |
|
|
ClassID |
UINT |
|
|
InstanceID |
UINT |
|
|
AttributeID |
UINT |
|
|
ServiceDat |
BYTE[512] |
送信サービスデータ |
|
Size |
UINT |
送信要素数 |
出力
入出力
|
- レスポンス (RespDat)
-
メモリの状態が以下のとき
| MR0 |
MR1 |
MR2 |
MR3 |
MR4 |
MR5 |
MR6 |
MR7 |
| ON |
ON |
ON |
ON |
OFF |
ON |
OFF |
OFF |
DataType = 3 (ビット)の場合
DataType = 1または2 (ワード)の場合
プログラム例
CipReads (連続データ読出し)
| FB入力変数 |
|
|
RoutePath |
'02\192.168.250.31' |
|
Device |
\\KvLink\DeviceCode#MR |
|
Address |
0 |
|
DataType |
0 |
|
ReadSize |
10 |
| FB出力変数 |
|
|
RespSize |
10 |
|
RespData |
01 01 01 01 00 01 00 00 00 00 |
CipWrites (連続データ書き込み)
| FB入力変数 |
|
|
RoutePath |
'02\192.168.250.31' |
|
Device |
\\KvLink\DeviceCode#MR |
|
Address |
0 |
|
DataType |
0 |
|
WriteSize |
6 |
|
WriteData |
01 01 01 01 00 01 |
| FB出力変数 |
|
|
RespDat |
00 |
CIP通信 tag指定
-
CIP通信のメッセージ通信(サーバ)機能を利用してタグの値を読出します
対応機種
KV-8000
KV側タグ設定
KV-STUDIOでタグ設定のClass3のタグの設定を[入出力]に設定します

NJ側ラダー
標準FBのCIPUCMMRead命令を使ってタグの値を読み出します

入力
|
RoutePath
|
STRING[50]
|
ルートパス
|
|
Timeout |
UINT |
タイムアウト時間(0.1s単位) |
|
SrcDat |
STRING |
他局変数名 |
|
Size |
UINT |
読出し要素数 |
出力
入出力