CrouzetのPLC用パワーオンセーフティマクロ

APDahlen Applications Engineer

産業用制御とオートメーションのインデックスに戻る

プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)のプログラマーは、コーナーケースに注意を払わなければなりません。マシンを機能させるだけでは決して十分ではありません。むしろ、予期せぬ出来事に対してシステムがどのように反応するかを考えなければなりません。そのような出来事の1つが、最初に電源が投入されたときのマシンの即時動作です。

この記事では、物理的なオンとオフのスイッチを備えた一群のマシンに焦点をあてます。この物理的なスイッチは、マシンを直接起動させる場合もあれば、後続のマシン動作のマスターイネーブル信号として機能する場合もあります。いずれの場合でも、電源が遮断中にスイッチがONの位置にあるとき、マシンがどのように応答するかを明確に定義する必要があります。この記事では、予期しない電源オンの状況は、避けるべき危険であると仮定します。

ここでは、Crouzet-Softソフトウェアを用いてプログラムされた Crouzet EM4 プログラマブルロジックコントローラ(PLC)を使用したソリューションを紹介します。CrouzetのPLCは、ファンクションブロックダイアグラム(FBD:Function Block Diagram)とシーケンシャルファンクションチャート(SFC:Function Block Diagram)の要素を組み合わせてプログラムされていることを思い出してください。

SFC要素を紹介した前回の記事を復習することをお勧めします。各SFCブロックはステートとして機能することを認識することが重要です。ブロックの左側にある入力は、ステートのアクティブ化を制御します。これらの入力は、トークンのために「ゲートを開く」のです。ボックスがアクティブになるのは、トークンが入っているときです。アクティブ状態のとき、右側の出力は、特定のステートがアクティブであることを表示するために使用さ れます。

技術的なヒント: マシン制御と、スイッチや押しボタンが設計でどのように使われるかについて、いくつかの異なる方法があり、2つの選択肢があります。スイッチがマシンをコントロールするか、ソフトウェアがマシンをコントロールするかです。この記事では、物理的なON/OFFスイッチを使用します。通常、このようなスイッチはマシンを直接制御します。しかし、物理的なON/OFFスイッチから指示を得るステートベースのメカニズムを追加しています。電源の初期投入など特定の状況では、スイッチはもはやマシンを制御できません。代わりにソフトウェアが制御し、マシンをフォールト状態にします。

ステートベース制御

電源投入時のマクロを図1に示します。これはSFCブロックに組み込まれた有限ステートマシン(FSM:Finite State Machine) です。以下の3つの状態があることに注目してください。

  • StateInitial:電源投入時またはリセット時の初期状態です。

  • StateIdle:マシンが安全な状態になると、StateInitialはStateIdleに遷移します。ここでいう安全とは、すべてのフォールト状態がクリアされ、電源スイッチがオフの状態にあることを意味します。

  • StateEnabled:StateIdleは、セレクタスイッチがオンになるとStateEnabledに遷移します。FSMは、セレクタスイッチがオフになりStateIdleに戻るまで、この状態を維持します。また、フォールト状態になればStateInitialに戻ることもあります。リセット可能な初期ステップSFCブロック(StateInitial)には、すべてのSFCブロックからトークンを除去する不可視の制御線があることを思い出してください。このアプリケーションでは、どのようなフォールト状態になっても、FSMをStateInitialにします。この場合も、セレクタスイッチを物理的にオフにして安全になるまで、マシンは初期状態のままで維持さ れます。

図1: パワーオンセーフティモジュールは、FBDとSFC要素を組み合わせて、グラフィカルにプログラムさ れます。

図2: 画面に「Power On Fault」が表示さているCrouzet EM4 PLCの写真

動画1: マクロによる、電源投入時のフォールト保護のデモンストレーション

技術的なヒント:「レベルトリガ」と「エッジトリガ」の違いを明確にすることが重要です。レベルトリガは、イネーブル信号が存在する限りアクティブであり続けますし、イネーブル信号を取り除くとシステムは停止します。一例として、この記事で取り上げた物理的なON/OFFスイッチがあります。一方、エッジトリガは、瞬時パルスが印加されると起動します。次のパルスで停止するようにプログラムできるかもしれませんし、中止パルスを受け取ったときに停止するかもしれません。このようなシステムには、特定の状態を維持するためのメモリが含まれています。典型的な例は、起動と停止のプッシュボタンを備えた3線式モータスタータです。

マクロのハイライト

結論を述べる前に、図1の図式化されたプログラムのいくつかの自明ではない点を挙げておきましょう。

  • STATUSブロックは、PLCのハウスキーピング(システムの維持管理)の画面です。このアプリケーションでは、コールドとウォームのイニシャライズラインのORを実行します。これにより、FSMをStateInitialとするために、最初のプログラムスキャン動作が行われます。

  • マクロには、暗黙のうちに2つの独自のフォールト状態があります。主電源スイッチがオンのとき、最初の電源投入時に発生する内部のフォールト状態FaultPowerOnがあります。また、ブロックの外部で発生する可能性のあるExternFaultsもあります。例えば、指定された時間内に閉じないモータスタータがあります。トップレベルプログラム(図示せず)内では、このようなフォールト状態がORで出力されることが予想されます。

  • stateInitialから遷移する前に、内部および外部のすべてのフォールト状態をクリアしなければなりません。

  • コードは3つの一般的なテクニックを使って文書化されています。マクロの一般的な記述を提供するヘッダ(テキストボックス)が含まれます。重要なブロックにはコメントが付けられています。例えば、「State initial」というテキストはブロック内のコメントです。最後に、Crouzetの「Text」モードが結線の識別に使用されています。青緑色に着色された端子名は、人間がプログラムを読めるようにしています。例えば、FaultPowerOnのSET/RESETメモリブロックは、電源スイッチがオフの状態で、リセットボタンが押されたときにリセットされます。

  • FaultPowerOnがラッチされています。このラッチは、トラブルシューティングの観点から絶対必要です。フォールト状態がクリアされた後でも、そのフォールト状態を記憶しています。また、トラブルシューティングの時に役立つように、フォールトをログに記録するのは良い方法です。

  • FaultPowerOnは、SFCブロックとは独立してラッチされます。SFCのステートベースのメカニズムを使用してフォールト状態を処理することも確かに可能ですが、プログラムを明瞭にするためには、これらを分離しておくことが賢明であると思われます。

おわりに

安全で信頼できるコードを提供するためにあらゆる努力が払われていますが、それを信用すべきではありません。物事はうまくいかないこともありますし、これからもうまくいかないでしょう。マクロのエラー、トップレベルでの実装方法のエラー、あるいは意図しない結果をもたらすプログラムの他の側面があるかもしれません。また、スイッチ、ワイヤ、電源の不具合、あるいはPLC自体など、ハードウェアが誤動作する可能性も数多くあります。

安全を最優先とした防衛的なプログラムを作成してください。また、完全に独立した安全システムを組み込むことも検討してください。これには、安全リレーを備えたインターロックのような装置を取り入れることも可能です。

ご意見、ご感想がございましたら、下記の欄にご記入ください。このマクロ(添付しています)がお役に立ったのであれば、ぜひご意見をお聞かせください。また、新しいコンテンツのアイデアもお待ちしております。ご要望は下記までお寄せください。

ご健闘をお祈りします。

APDahlen

P ON Init.mcs(8.7 KB)

産業用制御とオートメーションのインデックスに戻る




オリジナル・ソース(English)