CX-Compolet

概要

CX-CompoletはPCと接続されているPLCの情報を読み書きするためのVisualBasicまたはC#の部品です

構成
VisualBasicまたはC#で作成するアプリケーションにCX-Compoletが提供するコンポーネントを組み込んでFins GatewayまたはSYSMAC Gatewayを経由してPLCにアクセスします
コンポーネントによってGatewayが変わります

物理アドレスにアクセスする場合はFins Gateway

変数にアクセスする場合はSYSMAC Gateway

通信ミドルウェアの準備

セットアップ
CX-Compoletを使用するには、通信ミドルウェアのSYSMAC GatewayまたはFinsGatewayが必要になります
通信ミドルウェアはCX-Compoletに同梱されているのでインストールするときに一緒にインストールされます

SYSMAC Gateway
CIPプロトコル(Ethenet/IP)で接続するときはSYSMAC Gatewayが必要になります
CIPプロトコルでは変数を指定して値の読み書きをすることになります
PCとの接続はEIPユニットまたはCPU内蔵のEIPポートと接続します
SYSMAC Gateway Consoleを起動してネットワークポートをオープンしておきます


NOTE
イーサネットカードのプロパティでIPv6のチェックが入っていると通信できないことがありました
接続できないときはチェックを外してみてください

FinsGateway
Finsプロトコルで接続するときはFinsGatewayが必要になります
Finsプロトコルでは物理アドレス(DM0000など)を指定して値の読み書きをすることになります
PCとの接続はETNユニット、EIPユニットまたはCPU内蔵のEIPポートと接続します

FinsGatewayの設定を起動してETN_UNITを開始します
次に、ローカルネットワーク0(Ethernet)のプロパティを開いて、通信ユニットタブでPLCが接続されているネットワークカードを選択します

VisualStudioの準備

アイテムの選択
メニューバーの[ツール]-[ツールボックス アイテムの選択]を開きます


SYSMAC Compolet
PLCのメモリエリアの読み書きやPLCの状態の読出しなどを行うことができます
コンポーネント 概略 使用するGateway
CJ2Compolet CJ2とCIP通信 SysmacGateway
NE1SCompolet NE1SとCIP通信
NJCompolet NJとCIP通信
NXCompolet NXとCIP通信
NYCompolet NYシリーズとCIP通信
CommonCompolet ODVA標準タグの読み書き
DataAccessCompolet 全てのCIP通信
SysmacC CシリーズとFins通信 FinsGateway
SysmacCV CVシリーズとFins通信
SysmacCS CSシリーズとFins通信
SysmacCJ CJシリーズとFins通信

SYSMAC Gateway Compolet
SYSMAC GatewayにアクセスしてCIP通信サービスの情報や操作が行うことができます
コンポーネント 概略
VariableCompolet SYSMAC Gatewayに登録した変数の読み書き
PortCompolet Etherenetポートのオープン/クローズ
SYSMAC Gateway Service Compolet CIP通信サービスの操作と情報取得
DataLinkCompolet CIPデータリンクの設定や状態取得

Fins Gateway Compolet
FinsGatewayにアクセスしてFinsGatewayのイベントメモリの読み書きなどが出来ます
コンポーネント 概略
VariableCompolet SYSMAC Gatewayに登録した変数の読み書き
PortCompolet Etherenetポートのオープン/クローズ
SYSMAC Gateway Service Compolet CIP通信サービスの操作と情報取得
DataLinkCompolet CIPデータリンクの設定や状態取得

ヘルプとサンプル

ヘルプ
ヘルプファイルは [スタート] - [OMRON] - [CX-Compolet]にあります
  • FinsGateway Compolet ヘルプ
  • SYSMAC Compolet ヘルプ
  • SYSMAC Gateway Compolet ヘルプ

サンプル
CX-Compoletのサンプルは [スタート] - [OMRON] - [CX-Compolet] - [samples]にあります
  • DataAccess Compolet
  • FinsGateway Compolet
  • Port Conpolet
  • SysmacC C-CV-CS-CJ Compolet
  • SYSMAC CJ2-CIP Compolet
  • SysmacGateway Compolet
  • Variable Conpolet

簡単なサンプル

以下のリンクはメッセージ通信を中心にできるだけ簡単なサンプルを作って説明しています

CIP通信
PLCと接続して変数の値を読み書きするサンプルと
PCの時刻をPLCに書込むサンプルです
Fins通信
PLCと接続してDMの値を読み書きするサンプルです

イベント通知
PLCの変数に変化があったときにアプリケーションにイベントが通知されるサンプルです


読み出し通信時間

メモリの値を読み出すときに掛かる通信時間は主にパケット数に依存します
例えば下表のCIP UCMM通信で492byte(286word)を読み出すのに1パケットでおよそ5msかかりますが、2byte多い494byte(287word)を読み出すには2パケット使いおよそ10msかかります
このように2byte増えるだけで読み出しにかかる時間が増えてしまうので読み出し速度を上げたい場合は参考にしてください
CIP通信
NXCompolet.ReadVaribleを使って変数の値を読み出す時の読み出し時間



パケット数 UCMM Class3
バイト数 通信時間 (ms) バイト数 通信時間 (ms)
1 492 5.473 1984 5.753
2 984 10.305 3968 10.294
3 1476 15.517 5952 15.417
5 2460 27.289 9920 25.046
10 4920 52.235 19840 55.068
20 9840 108.019 39680 107.269

Fins通信
SysmacCJ.ReadMemoryを使ってメモリの値を読み出す時の読み出し時間
パケット数 バイト数 通信時間 (ms)
1 1998 8.579