4

SCADA および PLC と通信するための独自の C++ デスクトップ アプリケーションの開発に関するすべてのトピックを検索するために最善を尽くしましたが、最近の、または私の意見では、私が必要とする関連トピックを見つけることができませんでした。それらを見逃した場合は、それらへのリンクをいただければ幸いです。たまたまこれを間違ったセクションに投稿してしまった場合、またはこれを投稿するためのより良いセクションを考えていただければ、そこに投稿します.

そうは言っても、時間を割いて私の質問を読んでくれてありがとう、そしてあなたが提供しなければならない意見に感謝します。


私がしていることについて少し

私は現在、電気機械工学の学校に通っており、最終学年のプロジェクトとして、ラボの 1 つにある PLC を監視するデスクトップ アプリケーションを C++ で開発しています。

このラボ内には、すべての PLC を単一ポイントに接続する既存のイーサネット ネットワークがあり、これを PC に接続して、そこからすべての作業を行います。

GUI を簡単に設計できるように Qt でアプリケーションを開発し、QNetworkInterface と QTcpSocket にアクセスできるようにします。

そうは言っても、私は経験豊富なプログラマーであるとまでは言えませんが、かなりの数年間、いくつかの言語 (例: python、c++、c、php) をいじっており、今でもそうです。学習は決して止まらないことを考慮して、学習します。


私の質問

  1. 情報を受け取るためにどのようなプロセスを経る必要があるかをより簡単に理解するために、私が読むことができる、提案できる参考資料はありますか (つまり、個々の I/O、ステータスビット、タグ、ログなど. ..) OPC サーバー経由ではなく、PLC から直接ですか?

  2. OPC サーバーが必要な場合、ロックウェル オートメーションの RSLinx を使用してタグを取得し、それらの値を Excel 内に表示する以外に、OPC リンクを扱ったことはありません (最初にその正確な方法を使用してプロトタイプを作成しましたが、 Excel、および可能であれば OPC サーバー (RSLinx) も)。OPC サーバーの主題について何も知らない人、または私の知る限り、OPC 全般について何も知らない人に何を提案しますか?

  3. 私が達成しようとしているものと同じ性質のものではないにしても、似たようなことをするために独自のアプリケーションを以前に書いた人はいますか?

  4. このタイプのプロジェクトを試みている人に、どのようなアドバイスや提案をしますか?


PS:このプロジェクトの開始点として、最初は I/O (タグまたはアドレス) の読み取り値を取得して、現在の値 (入力の場合は閉じているか開いているか、出力の場合は通電されているかどうか) を確認したいと思います。しかし、最終的には、PLC から受け取った値に基づいて、監視している PLC のタグに値を書き込めるようにしたいと考えています。

PSS:もう一度申し上げておきますが、私はまだ学生であり、このテーマについて全体的に学んでいます。初めてのことで完全に理解できないかもしれませんので、しばらくお待ちください!

回答を提供するのに適切だと思われる情報を見逃していた場合は、お知らせください。タイムリーな情報発信ができるよう頑張ります!

ありがとうございました!


編集#1:別の質問に追加し、最初の質問をわずかに変更しました

編集#2:質問2を修正

4

4 に答える 4

4

AB PLC に直接接続するための独自のコードを書くことは避けたいと思います。アプリケーションで使用できる製品があります: http://www.rtaautomation.com/software/ethernetip/client/tagc /ControlWin.html http://www.automatedsolutions.com/products/dotnet/ascomm/

OPC を使用することをお勧めします。必要に応じて独自の OPC クライアントを作成し、ここにある例に従ってください: http://www.opcconnect.com/source.php#freesource

このhttp://www.control.com/thread/1026173407によると、Kepwares OPC Quick Client のソース コードを取得できるはずです。

この例 (RSLogix、C#) のようにライブラリを使用する方がおそらく簡単でしょう: http://www.mesta-automation.com/opc-client-with-c-an-how-to-video/

これが役に立つかもしれません: http://www.rockwellautomation.co.kr/applications/gs/ap/GSKR.nsf/files/rslinxsdk_ma_eng.pdf/ $file/rslinxsdk_ma_eng.pdf

リソース: http://www.opcconnect.com/http://www.mesta-automation.com/

于 2013-12-29T11:49:12.363 に答える
1

質問 4 への回答 - 技術的には、ラボに将来、どのメーカーの PLC も含まれる可能性があることを認識してください。データ通信クラスを受講したことがある場合は、N 個の異なる PLC タイプに対して、PLC クライアント用に N 個の異なる通信ドライバーを作成する必要があることに気付くでしょう。

ここで標準が役に立ちます。標準プロトコルを使用しないと、ラボのスケーリングに時間がかかり、管理しにくくなる可能性があります。これが、通信規格が存在する理由です。

ただし、すべての PLC が、ユーザーが決定した標準を必ずしもサポートしているわけではありません。

最適な選択は OPC/UA です。多くの PLC には、すぐに利用できるサーバー ドライバーがあります。つまり、クライアントは 1 つのプロトコル (OPC/UA) を理解するだけでよく、その標準のドライバーを持つ任意の PLC に「簡単に」接続できます。

その後、OPCがあります。その後は、ほとんどの PLC でサポートされている比較的単純な業界標準である Modbus (TCP および RTU フレーバー) です。EtherNet/IP も選択肢の 1 つですが、すべての PLC が「サーバー」の役割でサポートしているわけではありません (多くの PLC はクライアントとしてサポートしていますが、必要なものではありません)。

于 2016-08-12T13:18:42.553 に答える