たけびし デバイスエクスプローラ OPCサーバーでPCとPLCでデータのやりとりのやり方 サンプルプログラムを動かすまで

ここまでできたら、タグの定義を追加してみます。ツリーで今さっき追加したデバイス選択し、タグのウィンドウ内で右クリック→新規追加→タグで追加します。

DM10をタグ名「HogeSuuchi」と定義してみました。同様にDM20から10ワード分の文字列として「MogeMojiretsu」も定義しました(DM20~DM29)。追記:文字列はWindowsとオムロンのPLCでバイト並びが違うので、バイトスワップにチェック入れた方が良いかもしれません。

とりあえず、デバイスエクスプローラーの設定はこのくらいにしておきます。つづいてサンプルソフトを触ってみます。先ほどダウンロードしたカンタンAPI サンプルプログラム(C#)の圧縮ファイル「DxpSimpleAPI_vcdotnet.zip」を解凍します。実はここで罠があります。解凍したファイルの中に読み取り専用になっているファイルがあるみたいで、このままでは、VisualStudioでうまく動きませんでした。解凍したファイルが入ったフォルダのプロパティを開き、読み取り専用のチェックを外しフォルダ内のファイル全てに適用させます。

さらに、このサンプル、昔のVisualStudio2008で作ってあるらしく、slnファイルをVS2022で開いたらうまく変換できませんでした😣。しょうがないので、VS2019で開いたらなんとかうまく変換できるみたいです。なので、slnファイルを右クリックしてVisualStudio2019で起動させます。

(一度VS2019でうまく変換できたら、その後はVS2022でも開けるようになっていました。)

ここまできたら、実行して、「Connect」「Read」してみます。PLCのDレジの値が読込めていると思います。定義したタグでなくても、D0とかで値が読めます。DM0でもいけるみたいでした。

一度Disconnectして、「Device1.HogeSuuchi」や「Device1.MogeMojiretsu」に書き変え、先ほど定義したタグでアクセスしてみます。

うまく読込めたでしょうか。サンプルプログラムを使ってPLCとのデータの通信ができました。

このほかにデバイスシステムタグというのもあって、「Device1.$Status」などで情報を取得できたりできます。詳しくは、「DeviceXPlorer OPC Server ユーザーズガイド (サーバー本体編) 14.7.13章」あたりに載っています。

ひとまず今回はこれで終わりますが、公式のサンプルにはほかにもいくつかあります。例えば、Visual C# (RCW)サンプルプログラムは、非同期でデータを読み書きできたりします。ただ、OPC フォーラムからOPC Core Components SDKなるものをダウンロードしインストールする必要があったり、ソフトを作る際、タグごとにクライアントとサーバーのハンドルIDを管理しないといけなかったりで、使いづらい印象がありました😂。メリットとしては、デバイスエクスプローラのソフト上の[診断]タブの画面でタグ変数の状態を常にチェックできるようになります。これが本来のOPCサーバーの使い方なのかもしれません(?)。

色々と試してみましたが、複雑なことをせずPCとPLCのデータのやりとりができれば良いというだけであれば、カンタンAPIを使った方がよさげでした。

コメント