異常(アラーム)回路のラダー定番構造|発生・保持・ブザー・リセットの作り方

なぜ「保持」が要るのか — 異常は消えても、記録を消してはいけない

アラーム回路を初めて組む人がまずつまずくのがここです。「異常の接点がONしたらランプを点ける」——それだけなら1行で書けます。でも、その回路は実機では役に立ちません。理由は、現場の異常の多くは瞬間的だからです。

一瞬だけかかった過負荷、接点のチャタリング、緩んだ端子の瞬間的な接触不良。こういう異常は、発生した次の瞬間には原因が消えています。「異常接点→そのままランプ」の回路だと、原因が消えた瞬間にランプも消える。人が駆けつけたときには何も残っておらず、「さっき一瞬止まったんだけど、何が起きたのか分からない」という、調査のしようがない状態になります。

だからアラーム回路の定石は、「起きたこと」を保持して、人が確認してリセット操作をするまで残すことです。異常の状態そのものではなく、「異常が起きたという事実」を記憶する。この発想の転換が、アラーム回路のすべての出発点です。逆に言えば、アラーム回路とは「保持の回路」であり、保持を制するかどうかでアラーム処理の質が決まります。

なお、この記事で扱うのは設備側の異常をPLCで検出して報知する回路です。インバータやサーボアンプが自分で出すアラームの意味と対処はインバータのアラーム(トリップ)対処|過電流・過電圧・過負荷の原因と確認手順、PLC自身のCPUエラーの扱いはPLCのCPUエラー(ERR LED)の確認と解除手順|リセット前にエラー履歴を読むで解説しているので、目的が違う人はそちらへどうぞ。

定番構造の全体像 — 発生検出・保持・報知・リセットの4段

アラーム回路の定番構造は、次の4段に分解できます。

  • ① 発生検出:異常条件の接点(サーマルのトリップ接点、圧力スイッチ、タイムオーバーなど)で「異常が起きた瞬間」を捉える
  • ② 保持:異常発生をMデバイスに記憶する。原因が消えても記憶は残す
  • ③ 報知:保持されたMを受けて、ブザー・警報表示灯で人に知らせる
  • ④ リセット:人が原因を確認・処置した後、リセット操作で記憶を消す

どんなに複雑なアラーム処理でも、分解すればこの4段の組み合わせです。そして各段を別々の回路ブロックとして書き分けるのがポイントです。検出と報知とリセットを1つの回路に混ぜ込むと、後述する「やってはいけない例」に一直線に向かいます。

「決まった型に分解して、同じパターンを並べる」という考え方は、自動運転の定番構造である工程歩進とまったく同じです。まだ読んでいなければ、姉妹記事の工程歩進(ステップシーケンス)ラダーの作り方|Mデバイスで工程を進める定番構造と併せて型として覚えてしまうのがおすすめです。工程歩進が「動かすための型」なら、アラーム回路は「止めて知らせるための型」。この2つで実務ラダーの骨格の大部分をカバーできます。

各段の作り方 — 保持・報知・リセットの定石

① 発生検出:異常条件の接点を決める

まず「何をもって異常とするか」の条件を接点で表現します。サーマルリレーのトリップ接点、上限圧力スイッチ、レベルスイッチといった機器の接点をそのまま使う場合もあれば、「前進指令を出したのに一定時間たっても前進端に届かない」のようにタイマと組み合わせて作る場合もあります。タイマで作る場合は「OUT T0 K50」のように書きますが、K値が表す時間の単位はタイマの設定次第なので、お使いの機種の設定を確認してください。

② 保持:SET/RSTか、自己保持か

検出した異常はMデバイスに保持します。書き方はSET/RST方式と自己保持方式の2通りです。SET/RST方式だとこうなります(X0=異常検出接点、X1=リセットボタン、M100=アラーム保持とします)。

── 異常の保持(SET/RST方式) ──
──[ X0 ]──────────( SET M100 )   異常検出でアラームを保持
── リセット:原因復旧×リセットボタンのAND ──
──[/X0 ]──[ X1 ]──( RST M100 )   原因が消えている状態でボタンを押したら解除

命令語で書けば「LD X0、SET M100」「LDI X0、AND X1、RST M100」——基本命令だけで書けます。自己保持で書く流儀もありますが、個人的にはアラーム保持にはSET/RSTのほうが向いている場面が多いと考えています。理由は「後からリセット条件を足しやすいのはどちらか」という観点です。アラームのリセット条件は、運用が始まってから「この条件も足してくれ」と増えがちです。SET/RST方式ならRST側の回路に条件を追記するだけで済みますが、自己保持方式だと保持回路の切り条件を組み替えることになり、保持そのものを壊すリスクを伴います。両方式の性質の違いは【GX Works3】OUT/SET/RST命令の使い方|違いと使い分け・自己保持との比較で詳しく整理しています。どちらを使うにせよ、プログラム内で方式を統一するのが作法です。

③ 報知:「表示」と「ブザー」は別コイルに分ける

保持したM100を受けて報知します。ここでの定石は、警報表示灯とブザーを1つのコイルにまとめず、別々のコイルにすることです。理由は、この2つは「消えるタイミング」が違うからです。表示灯は異常が処置されるまで点きっぱなしでいい。でもブザーは「分かった、今向かってる」となった時点で止めたい。鳴りっぱなしのブザーは現場の人の神経を削るだけで、誰かが電源を引っこ抜くという最悪の対処を誘発します。そこで定番なのが「ブザー停止」ボタンです(X2=ブザー停止ボタン、M110=ブザー停止の保持とします)。

── 表示灯:異常が消えるまで点灯 ──
──[ M100 ]─────────────( OUT Y10 )   警報表示灯
── ブザー:停止ボタンで先に切れる ──
──[ M100 ]──[/M110 ]───( OUT Y11 )   ブザー
── ブザー停止の保持(SET/RST方式) ──
──[ X2 ]──[ M100 ]──( SET M110 )   異常発生中に停止ボタンで保持
──[/M100 ]─────────( RST M110 )   異常が消えたらブザー停止も解除

M100が消えたらRSTでブザー停止の記憶も一緒に消しているのがミソで、次の異常では再びブザーが鳴ります。「一度止めたら二度と鳴らないブザー」にしないための仕込みです。保持をアラーム本体と同じSET/RST方式で揃えているのも意図的で、後述する再鳴動のRSTを素直に足せます。

④ リセット:「原因復旧」と「リセットボタン」のAND

先ほどのSET/RSTの例で、RSTの条件を「リセットボタンX1」だけでなく「異常原因が消えていること(X0のb接点)とのAND」にしていたことに注目してください。これは省略してはいけない条件です。もし「ボタンを押せば無条件で消える」回路にすると、原因が残ったままアラームだけ消せることになります。サーマルがトリップしたままリセットで表示を消して運転再開——という運用が可能になってしまい、アラーム回路が「異常を隠すための回路」に成り下がります。リセットは「原因が復旧している」+「人がリセット操作をした」のAND。これを原則にしてください。

複数アラームの整理 — アラームごとにMを割り当て、一括ORでまとめる

実機のアラームは1つでは済みません。過負荷、圧力異常、動作タイムオーバー……と増えていきます。ここでの定石は2つです。

1つめは、アラーム1件ごとにMを1点割り当てること。M100=過負荷、M101=圧力異常、M102=タイムオーバー、のように連番で並べます。1点ずつ独立して保持されているので、モニタでMの並びを見れば「何が起きたか」が一目で分かり、複数の異常が重なって起きた場合も全部記録に残ります。ケチって1つのMに複数の異常をORで押し込むと、「異常が起きたことは分かるが、どれなのか分からない」という調査泣かせの回路になります。

2つめは、個別のアラームMを「異常あり」の一括Mにまとめることです。「LD M100、OR M101、OR M102、OUT M150」のように個別MをORで束ねてM150(異常あり)を作り、ブザーや表示灯、運転条件のインターロックはこのM150を参照します。こうしておけば、アラームが増えたときもOR行を1本足すだけで報知系全体に反映されます。

もう1段こだわるなら、新規アラーム発生時のブザー再鳴動です。異常Aのブザーを停止して処置している最中に、別の異常Bが発生したとします。ブザー停止が効いたままだと、新しい異常に誰も気づけません。そこで「アラームMの立ち上がり=新規発生」をPLS命令で捉えて、ブザー停止の保持を解除する、という考え方があります。

── 新規アラームの立ち上がり検出 ──
──[ M100 ]──( PLS M120 )   アラーム1の新規発生パルス
──[ M101 ]──( PLS M121 )   アラーム2の新規発生パルス
── 新規発生でブザー停止を解除 → 再鳴動 ──
──[ M120 ]──┬──( RST M110 )   新しい異常が起きたらブザーを鳴らし直す
──[ M121 ]──┘

小規模な設備なら必須ではありませんが、「ブザー停止中に起きた異常をどう知らせるか」という問いは、アラーム設計で一度は考えておくべき論点です。

やってはいけない例 — アラーム回路の定番の落とし穴

NG1:検出とリセットを同じ回路のOUTで書く

「異常接点とリセットボタンのb接点をANDしてOUT」のような書き方をすると、リセットボタンを押している間だけアラームが消えて、離すとまた点くという回路になりがちです。保持と解除の関係が整理できていない典型で、現場の人は「リセットが効かない」と困惑します。検出・保持・リセットは別ブロックに分けて、保持はSET/RSTまたは自己保持で明示的に書く。また、同じアラームMへのコイルを複数箇所に書いてしまう二重コイルも、後に書いた回路しか効かない事故のもとです。このあたりの作法はラダー図の暗黙ルール|二重コイル禁止・OUTとSETの混在など先輩が教えてくれない作法にまとめています。

NG2:原因未復旧でもリセットできる

前述のとおりです。リセット条件に「原因が消えていること」を入れ忘れると、異常を握りつぶせる回路になります。作った本人にその気がなくても、忙しい現場では「とりあえずリセットして動かす」運用が必ず生まれます。回路の側で握りつぶせないように作っておくのが設計者の仕事です。

NG3:非常停止をこの仕組みに混ぜる

「非常停止もアラームの一種だから」と、非常停止ボタンをPLCの入力に入れてこのアラーム回路で処理する——これはやってはいけません。非常停止はPLCのプログラムに頼らず、ハードワイヤで直接遮断するのが大原則です。この記事の仕組みで扱ってよいのは、あくまで「知らせて、調べて、リセットする」レベルの異常まで。人の安全がかかった停止をソフトに任せてはいけない理由は非常停止はなぜPLCを通してはいけないのか|ハードワイヤ設計で装置を止める理由で詳しく解説しています。

まとめ

異常(アラーム)回路の定番構造を整理します。

  • 保持が出発点:瞬間的な異常は原因が消えると消える。「起きたこと」を保持して人が確認するまで残すのが定石
  • 4段構造:発生検出→保持→報知(ブザー・表示灯)→リセット。各段は別ブロックに書き分ける
  • 保持の方式:SET/RSTか自己保持か。「後からリセット条件を足しやすいか」の観点ではSET/RSTが有利な場面が多い。プログラム内で方式は統一する
  • 報知は分離:表示灯とブザーは別コイル。ブザー停止ボタンは定番で、停止の保持は異常が消えたら一緒に解除する
  • リセットの原則:「原因が復旧している」+「リセットボタン」のAND。原因が残ったまま消せる回路にしない
  • 複数アラーム:1件ごとにMを割り当て、一括の「異常あり」ORにまとめる。新規発生時の再鳴動はPLSで立ち上がりを捉える
  • 非常停止は混ぜない:この仕組みで扱うのは報知レベルの異常まで。非常停止はハードワイヤで

アラーム回路は、設備が正常なうちは一度も動かない回路です。でも、いざ異常が起きたときに調査の手がかりを残せるかどうかは、すべてこの回路の作り込みにかかっています。まずはアラーム2〜3件の小さな構成で、保持→報知→リセットの流れを自分の手で一度組んでみてください。

関連記事