上位リンク通信とは? キーエンス KV シリーズとパソコンをつなぐしくみ
上位リンク通信は、パソコンなどの外部機器からキーエンス KV シリーズ PLC のデバイスを読み書きするための通信機能です。ポート 8501、ASCII のコマンド、TCP と UDP の違い、使えるコマンドをキーエンスのマニュアルをもとに整理します。
更新
上位リンク通信は、パソコンやタッチパネルなどの外部機器から、キーエンスの KV シリーズ PLC にアクセスするための通信機能です。Ethernet でつなぎ、決まった書式のコマンドを文字で送ると、PLC がデバイスの値を返したり書き換えたりします。
PLC(EtherNet/IP ユニットや CPU ユニットの内蔵ポート)がサーバ、パソコンがクライアントになります。PLC 側に通信用のラダープログラムを書く必要はありません。
コマンドは ASCII の文字列
上位リンクのコマンドとレスポンスは、すべて ASCII の文字列です。たとえば DM100 の値を読むときは、RD DM100 という文字列に CR(0x0D)を付けて送ります。
RD コマンド データ読出しDM100 デバイス 種別+番号CR 終端 0x0DPLC は値を文字で返し、最後に CR LF を付けます。
01234 読み出した値 .U(5 桁)CR LF 終端 0x0D 0x0Aコマンドの終端は CR か CR LF のどちらでもかまいません。LF は無視され、LF より後ろは次のコマンドとして扱われます。レスポンスの終端は、いつも CR LF です。
通信の設定
マニュアルに載っている主な仕様は次のとおりです。
| 項目 | 内容 |
|---|---|
| プロトコル | TCP/IP・UDP/IP(同時に使える) |
| ポート番号 | 既定は 8501(TCP と UDP で個別に設定可) |
| 接続数 | TCP は MCプロトコルと合わせて 15、UDP は 1 |
| データコード | ASCII |
| 受信タイムアウト | 既定 10 秒 |
| TCP キープアライブ | 既定 600 秒(0 で無効) |
ポート 8501 は既定値で、1〜65535 の範囲で変更できます。ほかのポートには役割があり、8500 は KV STUDIO、8502 は VT(タッチパネル)、5000 は MCプロトコルが使います。
TCP と UDP
TCP では、PLC は電源が入ると接続を待ち受けます。接続したあとは、コマンドを送るたびにレスポンスが返ります。クライアントが接続を切ると、PLC 側も自動で接続を閉じて、また待ち受けに戻ります。
UDP では接続を確立しません。PLC の IP アドレスとポートへコマンドを送ると、レスポンスが返ってきます。UDP で同時に交信できる相手は 1 つだけです。
使えるコマンド
上位リンクのコマンドは、2〜3 文字の英字で表します。
| 機能 | コマンド |
|---|---|
| データ読出し/連続読出し | RD / RDS |
| データ書込み/連続書込み | WR / WRS |
| 設定値書込み/連続設定値書込み | WS / WSS |
| 強制セット/リセット | ST / RS |
| 連続強制セット/リセット | STS / RSS |
| モニタ登録/モニタ読出し | MBS・MWS / MBR・MWR |
| モード切替(PROGRAM/RUN) | M0 / M1 |
| 動作モード確認 | ?M |
| 機種問合せ | ?K |
| エラー番号確認/エラークリア | ?E / ER |
| 時刻設定 | WRT |
| コメント読出し | RDC |
| バンク切替 | BE |
| 拡張ユニットバッファメモリ読出し/書込み | URD / UWR |
よく使うのは、デバイスを読み書きする RD/RDS/WR/WRS です。DM に入った生産数を読んで画面に出したり、MR を書き換えて運転を切り替えたりする、といった使い方です。
どの PLC につながるか
マニュアルの対象は、KV-8000(A)、KV-7500、KV-5500 の内蔵 Ethernet ポート、EtherNet/IP ユニット KV-EP21V(KV-8000/7500/7300/5500/5000/3000 に装着)、KV Nano シリーズ用の KV-NC1EP です。使えるデバイスの範囲や、1 回に読み書きできる点数は機種によって違います。
MCプロトコルとの関係
KV シリーズは MCプロトコル(ポート 5000)にも対応していて、TCP の接続数を上位リンクと分け合います。上位リンクは KV のデバイス名(DM、MR など)をそのまま文字で書けるので、KV のラダーと同じ名前でデバイスを指定できます。
ライブラリを使う場合
.NET の KcpX は、ここで紹介したコマンドの組み立てとレスポンスの解析を引き受けるライブラリです。型とアドレスを指定するだけで読み書きできます。
using KcpXLib;
using KcpXLib.Enums;
using var kcpx = new KcpX("192.168.0.10", 8501, series: PlcSeries.KV8000);
short value = kcpx.Read<short>(Prefix.DM, "100");次の記事では、コマンドとレスポンスの書式を詳しく見ていきます。
出典
- キーエンス KV-EP21V/KV-8000(A)/KV-7500/KV-5500/KV-NC1EP ユーザーズマニュアル EtherNet/IP 機能 p.1-11, 3-10〜3-12
- 同 8章「上位リンク通信機能」p.8-2〜8-8