OPCクライアント-EXCEL/VBAサンプル
VB6.0を使用する場合、OPCのオートメーションラッパーを経由してOPCサーバーにアクセスします。
OPCサーバー/グループ/アイテムの各オブジェクト宣言
オブジェクトが持つイベントを処理するためには、宣言文に「WithEvents」ステートメントを付加するか、イベントハンドラの関数名を「オブジェクト名_イベント名」とします。
OPCサーバーへの接続とブラウズ
OPCブラウザオブジェクトを利用して、指定OPCサーバー内に登録されているデバイス名(物理インターフェイス名)取得することが出来ます。デバイス名の下位階層には、さらに、グループを作成し、取得することもできます。
OPCグループオブジェクトの生成とタグの登録
外部からOPCサーバー経由で実データを取得するためには、OPCサーバー内にグループオブジェクトを生成する必要があります。グループオブジェクトにはデータ更新周期を設定することができ、通常、同一周期でアクセスするデバイスを一括して、同じグループに登録します。なお、OPCサーバー内ではグループ毎にスレッドが生成されますので、細分化のし過ぎによるCPU負荷増加には注意してください。
アドバイスモードの有効化とコールバックハンドラ
アドバイスモード(自動読出)を機能させるためにグループオブジェクトのイベントハンドラをインプリメントします。OPCサーバー側で更新周期毎に読み出し処理が行われ、データ値に変化があると、このハンドラがコールバックされます。品質情報は正常時は'0xC0'、異常時はそれ以外が返されます。
同期(Sync)と非同期(ASync)
OPCグループオブジェクトによる交信には、同期と非同期の2種類あります。同期交信では、呼び出し直後から通信処理が完了するまでクライアント側は実行を停止させられますが、サーバー側で全ての通信処理が完了したタイミングで、その結果(リターン値)がクライアントに返されますので、通信が正常完了したかどうか確認することができます。一般的なプロシージャコールのスタイルです。それに対して、非同期交信は、処理要求を受け付けると即座に、クライアント側へ実行を移し、サーバー側プロセスでバックグランド処理を行い、通信完了時にコールバックハンドラを呼び出す仕組みになります。非同期方式は、通信によるウェイト時間を少なくし、高速にクライアントアプリケーションを実行させることができます。(注:非同期機能はアドバイスモード時のみ有効です)