2017-09-01 46 views
1

PLCと簡単に通信するために、タグの読み取りや書き込みを行う場合は、OPC-UAサーバーに付属している他の重量挙げがすべて必要ですか?Controllogixと通信するためにOPCサーバを使用する必要がありますか?

PythonにPLCと通信する単純なサーバーを作成しようとしましたが、PLCからの情報を要求すると拒否されます。

Controllogix PLC通信しようとしているのは、Ethernet/IPです。なぜ単純なサーバー/クライアントスクリプトは機能しませんか? Allen Bradley PLCまたはPLC'sと一般に通信するために必要なのは何ですか?

答えて

2

PLCとの通信にかなりのビットが必要です。

各ベンダーにはドライバがあり、ファームウェアの互換性に関する考慮事項があります。考えるべき異なるプロトコル。

OPC-UAはもう少し一般的ですが、OPC-UAには通信をセットアップする際に回避すべきことがあります。

私が協力してきたOPC製品のほとんどは、匿名通信を可能にするようにセキュリティを調整する必要があります。これを行うことは一般に悪い習慣です。 (ネットワーク侵入はあなたのオートメーション層を読み書きすることができます)簡単なコミュニケーションを探しているなら、証明書署名と暗号化ビジネスがオフにする必要があります。 (やはり良い習慣ではありませんが、学習には良いです)

あなたのOPCサーバにPLCがどのように設定されているかという概念を持っていれば、チャネル、デバイス、名前空間などがあります。 OPCクライアントはいくつかのopc.tcp://:

これまでのところほとんど完了ですが、あなたのOPCサーバーが動作していると仮定しており、この時点でタグが設定されています。 OPC-UA APIを使用して読み取りを行うことができます。値だけを返すことも、タグの状態、タイムスタンプ、その他のデータを含むオブジェクトを取得することもできます。実装に依存します。その後、あなたはサブスクリプション、書き込みをすることができます。

TLDR:OPCサーバーは必須ではありませんが、最も簡単な方法です。セキュリティをオフにします。

+0

情報のおかげでよかったです。 OPC Foundationに参加し、私のニーズに合わせて.NETサンプルを修正しようとしています。これは厳しいものです – jameson1128

+0

OPC UAはPLCからのデータを単独で読み取らないため、OPCサーバはModbusやEthernet/IPなどの別のプロトコルを使用してデータを取得する必要があります。あなたが言ったように、タフなものです。 –

1

いくつかの要素に依存して、簡単にプログラムできるものがあれば、Modbus/TCPを選択することができます。私は、AB PLCが余分なハードウェアを必要とせずにサポートしていると思います。

しかし、たとえば産業用などのセキュリティを強化したい場合は、OPC UAがより良い選択ですが、プログラミングはOPC Foundationなどのライブラリを使用してもModbusよりはるかに複雑です。商用または無料のOPC UAサーバーを使用して作業を保存するオプションがあり、クライアント側のみをプログラムする必要があります。

イーサネット/ IPの場合も可能ですが、問題は明確な仕様がなく、異なるABモデルでも異なるイーサネット/ IPの方言を話すことです! Modbusよりもはるかにプログラムが複雑です。

0

私はこの議論には少し遅れていますが、もう少し簡単な商用ツールがいくつかあります。あなたがPythonを使用していると言ったとき私が気になるのは、Cogentのデータハブです。確かにそこで最も安価なツールではありませんが、彼らはすでにPLC/PC通信のための重い持ち上げをすべて完了しました&セキュリティ。

0

Pythonを使用してCLXデータを読み込もうとすると、多くの作業を節約できるオープンソースの実装がいくつかあります。以下のようなこの:

https://github.com/dmroeder/pylogix

あなたは.NETとVisual Studioを使用する場合は、あなたがたControlLogixプラットフォームにOPCタグを読み書きできるようにするAdvancedHMI

0

を使用することができますが、その通信ドライバRSLinxを介して行われます。 RSLinxはOPCサーバとして機能し、PLCと通信し、同じLAN上のネットワークPC上で実行するように設定する必要があります。 RSLinxのいくつかのフレーバーが利用可能です(WAN/VLANの場合もあります)が、本質的にはAB PLCとの通信に必要な通信ドライバです

1

この会話にはもう少し遅れています。独自のソリューションのコーディングに興味があり、市販の標準を使用したくない場合、AdvancedHMIはVB.NETで書かれた「主に」オープンソースソリューションで、100%無料であり、 ControlLogixプラットフォーム私はあなたがPythonでプログラミングしているのを知っているので、プロジェクトがLinux OS上のMonoで動作することを知りたいかもしれません。私はイーサネットIPとModbusTCPの間にゲートウェイを作成し、OEMデバイスからデータをシリアルに引き出し、このデータをCLX PLCにプッシュするために使用しました。

フォーラムには多くの役立つヒントがあり、非常にアクティブでサポートされています。

あなたに別のオプションを提供しようとしています。 DDE、NetDDE、FastDDE、OPC、DCOM、Suitelink ....これらはすべて良いですが、ほとんどが冒険をするためのお金です。プログラマーとしては、私のハードウェアIMHOと話すために、あまりにも多くの金額を支払わなければならないのはばかげているようです。ぞっとするために申し訳ありません。楽しむ!

関連する問題