2011-07-25 8 views
4

私は、.NET(C#またはVBは関係ありません)をSiemens PLC S7 200でインタフェースしようとしています。ただし、接続を確立することはできません。私はWin7 64bitマシンで作業していますが、32bitでも動作するようには見えません。私は新しいシステムに移行しようとしている別のプロジェクトから .NETとSiemens PLCのインタフェースS7 200

Siemens_s7-200.dll

Interop.OPCSiemensDAAutomation.dll :私は2つのファイルを得ました。しかし、私はいつもCOMの例外を取得します。

Retrieving the COM class factory for component with CLSID {01704EBD-44B5-11D3-9C09-00105A3DD3AC} failed due to the following error: 80040154. 

私は既にlibnodaveを試していますが、それも問題なく動作しているようです。誰かが私に何かを見せるためにいくつかのポインタ(その上にXKCDユーモアをしてください)を私に提供することはできますか?

このマシンにSiemens PC-Accessをインストールできなかったため、後でWinXP 32ビット版を試します。私はOPCサーバーやマシン上の何かが必要なことについて何かを読んでいますか?

PLCとのインタフェース、私と一緒に初めてご負担ください:/

+0

申し訳ありません私はそれがPLC自体にUSB PPIケーブルを介していることを忘れていました。私はすでにregsvr32を使って上記の2つのDLLを登録しようとしました。 – Henrik

+0

PLCのデータ値を取得しようとしていますか?読み書きタイプのもの? – jwatts1980

+0

@ jwatts1980まさに!私は3つの値と対話する必要があります。どうしてそんなに難しいのか分かりません... Arduino:そのものの中身を取り除きたいのです。ところで、解決策が見つかったら、必ず投稿してください。 – Henrik

答えて

4

COM例外は、COMライブラリ自身または1つの依存関係がロードできなかったことを示し、かなり一般的なエラーです。私がチェックするものは次のとおりです。

  • マシンにCOMライブラリが登録されていますか? regsvr32を使用してCOM DLLを登録できます。
  • COMライブラリには、マシン上にない他の依存関係が必要ですか?これを理解するにはdumpbin /dependentsを使用できます。
  • Siemens PC-Accessソフトウェアをマシンにインストールする必要がありますか?おそらくCOMライブラリをロードできない理由を説明するためにインストールすることはできませんでした。

残念ながら、これは私があなたの特定の問題を解決するために提供できるすべてのヘルプについてです。ただし、OPCサーバーとして機能し、Siemens S7と互換性のあるドライバを持つ次の製品を使用することができます。これらはSiemens OPCサーバーを使用する代わりに使用されます。

私は過去に両方の製品を使用していると私はシーメンスS7に話をする(私はどちらを思い出すことができない)それらのいずれかを使用かなり確信しています。

また、hereは、.NETでOPCを使用するための情報を提供する本当に良いウェブサイトです。

+0

返信いただきありがとうございます!私は実際にPCアクセスを起動し、XPを搭載した32ビットマシンで実行しています(VM内)ので、おそらくそうです。しかし、問題は今それが評価版であり、それは無駄だ。彼らのpreviosソフトウェアは、いくつかの無料のライブラリ(私はそれがちょうどdllのものであると推測することができません)またはそのようなものを使用し、また、PC-Acccessのようなソリューション全体を展開するのに問題があります。あなたのリンクを確かにチェックします。 – Henrik

+0

私はKepwareのリンクに似ています。 Kepwareサーバー自体は無料です...あなたは、ドライバが特定のPLCに接続するための料金を払っています。 Kepwareにあらゆる種類の.NET APIがあるかどうかは不明です。 – jwatts1980

2

私は以前にこのようなことをしてきました。コントローラーに直接アクセスしようとすると、あらゆる種類の独自の問題に遭遇する可能性があります。オートメーションソフトウェア企業は、プロトコルに非常に厳しい統治を維持する傾向があります。それがあなただけのデータであれば、おそらくOPCが最善の方法でしょう。しかし、私が見つけたことから、それは無料でもありません。 OPC財団(opcfoundation.org)には、.NET APIがあり、それは$ 1-2Kの範囲で利用可能です。

+0

Hmmm以前の解決策がどのように働いたのか、本当に不思議です。私は深くそれを試してみるだろうが、私はそれらのDLLを見つけることしかできないようだ。時には、私が開発しているような単純なデバイスは、標準のシリアルポートを使用するだけでいいと思うことがあります。 – Henrik

+0

@Henrik:この問題を解決して、それについて考えるなら、ここであなたのソリューションの概要を投稿できますか?私はあなたのために働いていたことを知りたいです...ありがとう! – jwatts1980

2

もう一度お試しください。 libnodaveとS7 200,300、さらには400と400H(冗長なもの)をうまく使っています。C#での経験はありませんが、私のlinuxのCデーモンとDelphiとLazarusのWindowsアプリケーションでは、24時間365日(steelshopと高炉)で動作しています。できない場合は、S7 200(Kepware、Matrikon ...)用のOPCサーバーとC#のOPCクライアントライブラリに$$$$を費やす準備をしてください。

関連する問題