サイトマップ  個人情報保護  ENGLISH
FAWEB
 JAPAN   ホーム製品情報サポートナレッジベースダウンロードご購入会社情報お問合せ
OPC Server

OPCサーバ
トップページ
特長
一般仕様
適用PLC
製品紹介
リリースノート
対応SCADA一覧
よくあるご質問
OPC書籍紹介
価格表
通信速度性能
サンプル
裏技ガイド
SCADA設定ガイド
マニュアル/デモ版
オンラインカタログ

オンラインショップ

OPC-F Member
現在のページ : HOME > 製品情報 > OPCサーバ  > よくあるご質問 戻る

opc


よくあるご質問


  目次
Wonderware InTouchとのOPC接続するには
作成するグループ数が増えるとCPU負荷は上がりますか
複数グループへ同じタグを登録するとレスポンスが悪くなりますか
アプリケーション起動直後、DataChangeイベントが発生してしまいます
非同期処理(読出/書込)ができません
複数アイテムに対しての一括書込はできますか
OPCサーバのインスタンスが残ってしまいます
OPCサーバ終了時にアプリケーションエラーが発生します
DCOM接続するためにOSの設定は必要ですか
VB.NET オートメーションサンプルで実行時に例外エラーが発生します
Ethernet接続で、受信タイムアウトエラー(wait=xxx,got=xxx)が発生します


  Wonderware InTouchとのOPC接続するには
【質問】
InTouchとOPCサーバを接続するには、どう設定したらよいですか

【回答】
InTouchとOPCサーバを接続する場合は、中間にゲートウェイとして「OPCLink」を介す必要がありますので、FactorySuiteに含まれている「I/O Servers」CD-ROMから「OPCLink」というI/Oサーバをインストールしてください。OPCサーバとOPCLinkとの間はCOM、OPCLinkとITとの間はSuiteLinkで通信が行われます。
OPCLinkでは、DDE/SuiteLinkのトピック名とOPCのデバイス名(論理インターフェース名)との関連付けを設定してください。(下図参照)
OPCリンク画面

ここまで設定できましたら、InTouchでアイテム名を「i***」、「d***」としてアクセスしてください。OPCLinkでは、アイテム名の先頭に整数型の場合は「i」、論理型の場合は「d」を付ける仕様になっています。例えば、「D100」のデータを取得したい場合は「iD100」、「Xff」は「dXff」となります。詳細はOPCLinkのマニュアルをご覧ください。

※DXP2007シリーズは、DDE/SuiteLink接続に対応しているため、「OPCLink」を介する必要がありません。
 各デバイスのデバイスオプションに表示される「アプリケーション名」、「トピック名」を用いて
 InTouchのアクセス名を設定することで、InTouchから直接アクセス可能です。

デバイスオプション画面


  作成するグループ数が増えるとCPU負荷は上がりますか
【質問】
VBを使ってOPCサーバにアクセスしていますが、グループ数を多くすればするほど、OPCサーバのCPU負荷が上がるのですが、何故ですか。

【回答】
OPCサーバはフリースレッディングモデルを採用しており、グループ毎にスレッドが生成されます。この結果、グループ数を多くすればするほどスレッド数が増加し、CPUに負荷をかけてしまいます。また、更新周期が10msのグループに1000個のアイテムが登録されていた場合、OPCサーバは10msで全てのデータを更新できないと、CPU負荷を上げて、できるだけ速く処理しようとします。


  複数グループへ同じタグを登録するとレスポンスが悪くなりますか
【質問】
同じアイテムを別々のグループに登録した場合、別々に読出処理が行われるのですか。

【回答】
別々のグループに登録されているアイテムは、アクセス先が同じシーケンサのデバイスであっても、 更新周期の違い等により、OPCサーバ内で別々のデータとして扱われます。 例えば、「Group1:D0〜D1000/100ms周期」と「Group2:D0〜D500/1000ms周期」とした場合、 「D0〜D500」は別々の通信処理が行われ、総合的にレスポンス低下を招きますので、 同じデバイスを複数のグループで登録しないことを推奨します。 また、連続したデバイスは同じグループにまとめた方が通信回数が減りますので高速に処理できるようになります。


  アプリケーション起動直後、DataChangeイベントが発生してしまいます
【質問】
アプリケーションを起動して直ぐにアドバイスモードにすると、シーケンサのデータが変化していなくても、DataChangeイベントが発生してしまいます。

【回答】
グループオブジェクトの登録後、IsActiveプロパティをTRUEにすると、OPCサーバはデータの読み出し処理を開始します。OPCサーバの起動直後は、データなしの状態から値が更新されることになり、DataChangeイベントが発生します。


  非同期処理(読出/書込)ができません
【質問】
非同期処理のメソッドをコールしていますが、コールバックハンドラが返ってきません。

【回答】
OPCでは、アドバイスモード時(グループオブジェクトのIsSubscribedプロパティがTRUEになっている場合)に、非同期処理が有効になります。IsSubscribedプロパティがFALSEの状態で非同期処理を要求しても、DataChangeイベントは発生しません。


  複数アイテムに対しての一括書込はできますか
【質問】
複数のアイテム(タグ)に対して、一括で書き込みを行うことはできますか。

【回答】
グループオブジェクトの書込メソッド(SyncWrite/AsyncWrite)をコールする時に、対象となるアイテムのハンドルと書込値を配列にまとめてコールすることで、一度に複数の要求をまとめて処理します。


  OPCサーバのインスタンスが残ってしまいます
【質問】
ユーザアプリケーションを終了させてもOPCサーバのインスタンスだけが残ってしまいます。

【回答】
OPCサーバはCOMアプリケーションなので、初回COMオブジェクトにアクセスしたときに起動し、COMオブジェクトの全ての参照がなくなると自動的に終了します。OPCサーバが終了しない場合は、OPCサーバに対してCOM接続を残したままユーザアプリケーションを終了している可能性があります。ユーザアプリケーションの終了時は、全てのグループオブジェクトをリリースするとともに、オブジェクト参照を解除(SET *** = nothing)してください。


  OPCサーバ終了時にアプリケーションエラーが発生します
【質問】
OPCサーバを終了させるとアプリケーションエラーが発生します。

【回答】
OPCサーバに接続していたクライアントアプリケーションが異常終了した可能性があります。COMアプリケーションは、プロキシを経由して別プロセスで動作しているアプリケーションにデータを渡しに行きますので、この時にクライアントプロセスが存在していなければ、アプリケーションエラーとなります。クライアントアプリケーションの終了前に必ずCOM接続の終了処理を行ってください。


  DCOM接続するためにOSの設定は必要ですか
【質問】
DCOM環境下でOPCサーバを使用するには、どのように設定したらいいですか。

【回答】
DCOMコンフィグレーションユーティリティ「DCOMCNFG.EXE」を用いて、サーバ側のDCOMセキュリティを正しく行う必要があります。 設定例につきましてはこちらをご参照ください。また、クライアントをVisual Basicで構築される場合は、クライアント側にもDCOMセキュリティの設定が必要になります。詳細に関してはマイクロソフト社サポート情報をご覧ください。(http://support.microsoft.com/default.aspx?scid=kb;ja;JP183607


  VB.NET オートメーションサンプルで実行時に例外エラーが発生します
【質問】
VB.NET オートメーションサンプルを x64 環境上の VisualStudio でビルドすると、実行時に例外エラーが発生します。
「CLSID {28E68F9A-8D75-11D1-8DC3-3C302A000000} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80040154。」
どうすれば良いですか。

【回答】
32ビット用のオートメーションラッパを利用するOPCクライアントを、x64 環境上の VB.NET でビルドする場合、ターゲットCPUを x86 に設定しておく必要があります。
VisualStudio2008 でビルドする場合、下記の設定を変更してください。

 プロジェクト設定 > コンパイル > 詳細コンパイルオプション > ターゲットCPU


  Ethernet接続で、受信タイムアウトエラー(wait=xxx,got=xxx)が発生します
【質問】
Ethernet通信中に時折、受信タイムアウトエラーが発生しますが、原因はなんですか。回避策はありますか。

【回答】
OPCサーバが送信したメッセージに対して相手PLCからの応答がない、もしくは応答メッセージ長が足りないことを意味します。
期待する受信待ちバイト数wait=xxxバイトに対して、受信済みバイト数got=xxxバイトという意味です。
Ethernet接続で受信タイムアウトエラーが出る要因は主に以下の通りです。
下記以外には、ネットワークアダプタの故障などハードウェア的要因も考えられます。

No. 要因 回避策
要因1 ネットワーク負荷が高い(慢性的 or 瞬間的) 通信の周期や接続台数、アクセス点数を調整し、ネットワーク負荷を下げる
要因2 PC の CPU 負荷が高い(慢性的 or 瞬間的) PCのCPU負荷を下げる。高性能なPCに置き換える
要因3 Windows の ARP 処理によって受信パケットがクリアされる(10分に一度、タイムアウトエラーが出る場合) Windows のレジストリ設定からARPのキャッシュの保持期間を延ばす
要因4 ネットワーク環境に対してタイムアウト設定の値が小さい タイムアウト時間を延ばす(慢性的にネットワーク負荷が高い環境で、負荷軽減も困難な場合)
要因5 PLCの電源断、もしくはLANケーブルの断線 PLCの電源状態、LANケーブルの接続状態を確認する
要因6 PLC側のEthernetパラメータ、もしくはOPCサーバ側のEthernetポート設定に誤りがある PLC側のEthernetのパラメータ設定と、OPCサーバ側のEthernetポート設定を見直す
要因5、要因6についてはUDP/IPの場合のみ当てはまります。(TCP/IPの場合はオープン異常となります。)

 

戻る

Copyright © 1998-2006 TAKEBISHI Corporation All rights reserved.

FAWEB.NET
株式会社たけびし 〒615-8501 京都市右京区西京極豆田町29 [地図] 
TEL: 075-325-2171 FAX: 075-325-2273 fa-support@takebishi.co.jp