APDahlen Applications Engineer
概要
SiemensのLOGO!は、より大規模なS7産業用ネットワークに統合することができます。この記事では、S7とLOGO!の両方の視点からネットワーク接続を監視することに焦点を当てています。これはウォッチドッグタイマ方式/ハンドシェイク方式であり、S7は1秒ごとにパルスを発行し、LOGO!からの迅速な応答を期待します。このコードはアプリケーションレベルで動作し、各PLCのスキャンサイクルの一部として判断が行われます。
LOGO!V8.4およびTIA Portal V20でコーディングされたCPU1215FC用のLOGO!とS7ファイルをダウンロードしてください。 LOGO to S7.zip(1.3 MB)
本記事は、DigiKeyのSiemens PLCおよびオートメーションのリソースハブの一部です。その他のSiemensのコンポーネント、アプリケーション、およびプログラミングに関する技術概要は、このハブをご覧ください。
図1: Siemens S7-1200とLOGO!を並べて表示した画像
なぜS7ネットワークでLOGO!を使用するのでしょうか?
LOGO! PLCは、S7-1200およびS7-1500では過剰な領域を埋める存在です。これには、S7のカバー範囲を拡張するために使用される安全度水準(SIL)認定のET 200SP分散I/O(図3)が含まれます。
LOGO!は、ネットワークエッジで独立したロジックが必要となる低コストの設備に有用です。テキストベースHMIを内蔵したLOGO!(図1)は、フル機能HMIが不要な場合に望ましいコスト削減手段となります。
SiemensのLOGO!クライアントの接続方法
Siemens LOGO!は、S7-1200またはS7-1500ネットワーク上でクライアントとして動作できます。Siemensは、LOGO!とS7の両方を設定する方法を示すdetailed hands-on documentを提供しています。この資料では以下のことを説明しています。
- IP設定
- S7接続
- S7タグを重視した変数命名
- LOGO!とS7のネットワーク構成
図2: LOGO!からS7への接続を強調したSiemensのウェブページからの画像
図3: 著者の作業台の上にあるSiemens S7-1200分散I/Oの画像
技術的なヒント: ET200 SPはS7とのインターフェースを前提にゼロから設計されています。それはネットワーク喪失時に動作するユーザープログラム可能なデフォルト(フェイルセーフ)ロジックを備えています。例えば、ネットワーク接続が失われた時、出力を最後の値で保持したり、デフォルトでハイレベル、またはローレベルにしたりできます。
なぜネットワークの健全性を監視するのでしょうか?
マーフィーの法則は産業用ネットワークとPLCにも当てはまります。起こり得ることは最悪のタイミングで起こります。
プログラムの健全性のために、LOGO!とS7の両方がネットワーク接続を監視します。障害が起これば適切な対応が可能です。この記事の残りの部分では、通信相手のネットワークエラーまたは故障を検出するLOGO!とS7のコードについて説明します。各PLCはブール型のxFaultを出力し、秩序立った停止や縮退運転を行うことができます。
S7コードの例
コアとなるラダーロジック機能は図4に示されています。重要なのはxHeartbeatとxReplyを監視することです。これはウォッチドッグタイマのように動作し、S7はLOGO!からの応答を期待します。
-
xHeartbeat: ハートビートは1秒ごとのパルス信号で、50%デューティサイクルでLOGO!に送信されます。
-
xReply: xReplyは単なるエコーであり、LOGO!はS7からのバイトを受信し、スキャンサイクルごとに1 回S7へ返送します。
図4のラダーロジックに示されるように、Network 1はxHeartbeatとxReplyが異なるときにXOR演算を行います。通常動作では、LOGO!とS7のスキャンサイクルおよびネットワーク遅延を反映し、xReplyは 0 \rightarrow 1 または 1 \rightarrow 0 の各遷移で常にわずかに遅れます。
Network 2は遷移遅延時間を取得します。詳細については結果のセクションを参照してください。
Network 3には時間ベースのトリガ(TON関数)が含まれ、xReplyが十分に速く応答しない場合にxFaultをセットします。リセットのロジックはNetwork 4に示されています。
図4: S7がネットワークおよびLOGO!接続を監視するためのラダーロジックファンクションブロック
LOGO!コードの例
LOGO!のファンクションブロックコードは図5に示されています。最上段のNI1とNQ1ブロックがS7のxHeartbeat信号の重要なエコーを実行します。
ブロック2とブロック4のブロックタイマは、ハイレベルまたはローレベルの状態の時間を監視します。LOGO!メモリに保存される最後のS7メッセージはTRUEまたはFALSEのいずれかであるため、両方の状態を監視することが重要です。1.25秒の間に遷移が発生しない場合、TONが作動し、LOGO!はフォルト状態に入ります。
フォルトはB001のセット/リセットブロックでラッチされます。フォルトが発生するとLOGO!のHMI赤色バックライトが点灯します。最後に、フォルトはLOGO!の左矢印キーを押すことでリセットされます。
図5: S7との相互関係を監視し、ネットワーク状態をHMIカラーで表示するLOGO!コード
結果
ベンチテスト結果は図6に示されており、70〜260msの予想される遅延が確認できます。S7とLOGO!が処理のボトルネックであると推測できます。
LOGO to S7.zip(1.3 MB)
図6: LOGO!のネットワーク遅延と応答時間を示すトレース
技術的なヒント: 図6の遅延は、250msが500msの信号時間の内、かなり大きな割合を占めているため、懸念されます。最小、最大、平均遅延時間を取得するファンクションブロックを追加することを推奨します。これは将来のトラブルシューティングに役立ちます。
必要であれば、タイミングの制約を緩和できます。アプリケーションによっては、パルス周期を1分、もしくはそれ以上に延長することも容易です。
おわりに
LOGO!とS7はどちらも、同じネットワーク上で動作させることで活用できる強みを持っています。ここで紹介したコードは、そのネットワーク上の障害を検出する方法を示しています。
通信相手側およびネットワーク側の障害は必ず発生します。この検出コードを用いることで、安全かつ適切な機械動作を判断できます。
PLCのコーナーケースプログラミングへようこそ。
次の課題は、S7ネットワーク内のデータフローを監視し制御することです。
ご健闘をお祈りします。
APDahlen
著者による関連記事
この記事が気に入った場合は、以下の関連記事も役立つかもしれません。
TL;DR
著者について
Aaron Dahlen氏、LCDR USCG(退役)は、DigiKeyでアプリケーションエンジニアを務めています。彼は、技術者およびエンジニアとしての27年間の軍役を通じて構築されたユニークなエレクトロニクスおよびオートメーションのベースを持っており、これは12年間教壇に立ったことによってさらに強化されました(経験と知識の融合)。ミネソタ州立大学Mankato校でMSEEの学位を取得したDahlen氏は、ABET認定EEプログラムで教鞭をとり、EETプログラムのプログラムコーディネーターを務め、軍の電子技術者にコンポーネントレベルの修理を教えてきました。
Dahlen氏は、ミネソタ州北部の故郷に戻り、コンデンサ探しから始まった数十年にわたる旅を終えました。彼の物語はこちらからお読みください。





