S7-1200 plc でプロセスを実行していますが、python スクリプトに開始信号を送信する必要があります。スクリプトの実行が完了したら、何かを plc に送り返して次のフェーズを開始する必要があります。ああ、それははしごで行わなければなりません。
プロフィバスを介して物を送るための迅速で汚い方法はありますか、それとも RS232 のものだけを使用したほうがよいでしょうか?
SNAP7 および python-snap7 ライブラリを使用します。このブログにある Raspberry pi にインストールする方法の例: http://simplyautomationized.blogspot.com/2014/12/raspberry-pi-getting-data-from-s7-1200.html
アップデート:
セットアップ方法のビデオ ウォークスルー: https://youtu.be/yJNEsI5KJxs
libnodave と OPC で失敗した後、TCON、TSEND、および TRECV 通信を作成しました。TCP経由でバイトを送信し、機能します。
PC側でlibnodaveを使用して、PLCのMタグまたはDBタグの値を変更します。このタグを監視し、さらにアクションを実行するラダーラングを簡単に作成できます。libnodaveはPythonをネイティブにサポートしていませんが、ここでPythonラッパーを見つけることができます。
Python で利用できる Modbus TCP クライアントがいくつかあります。私は pyModbusTCP をうまく使いました。S7-1200 用の IDE である TIA ポータルには、PLC に直接読み書きできるようにする PLC にロードできる Modbus サーバー機能があります。
Rothenbacher GmbH による「S7connector」という商用ライブラリがあります (明らかに、sourceforge の「s7connector」ではありません)。これは .NET フレームワーク用であるため、IronPython で使用できます。
S7-1200 PLC で動作します。読み書きする DB が、最適化された S7-1200 スタイルの DB ではなく、TIA ポータルで DB を作成するときに設定できるオプションである S7-300/400 互換の DB であることを確認する必要があります。このライブラリでは、すべての I/O ポートの読み取りと書き込みも可能です。「シャドウ レジスタ」(正式には何と呼ばれているかは不明) と、前者をオーバーライドして直接読み書きすることもできます。
S7-1200 PLC CPU と通信する最良の方法は、OPC UA または Classic OPC (一般に OPC DA として知られています) を使用することです。Libnodave は、S71200 (2.x ファームウェア) 用ではなく、S7-300 および S7-400 用に作成されています。
サードパーティのソリューションを使用して S7-1200 (または S7-1500) と通信する場合は、put および get メカニズムを許可して、PLC のセキュリティ レベルを下げる必要があります。put と get を使用するのは純粋な悪です。プロセスごとに CPU のメモリを開きます。もう使用しないでください。シーメンスは実際にこれをブロックする必要があります。
これは、S7-1200 のすべてのファームウェア リリースに適用されます。シーメンスは、OPC UA を PLC からのデフォルト通信として使用している人々をプッシュします。OPC UA はインダストリー 4.0 および IIoT のプロトコルであるため、当然のことです。
編集:すべてを書き直します。情報が大幅に古くなっています。ファームウェア 2 または 3 1200 を使用している場合は、交換またはアップグレードを検討してください。これらのバージョンはサポートされなくなり、ワームの問題が含まれています。