スポンサーリンク
PLC

【ラダー言語】ボタンひとつで出力をON/OFFするプログラムの作成方法

以前リレーシーケンス回路によって、一つのプッシュボタンスイッチにて出力信号のON/OFFを切換える回路を作成してみました。

このようにひとつのスイッチによりON-OFFを切換えて保持する回路を、ラッチ(Latch)回路、出力反転(inversion)回路、オルタネート(Alternate)回路、ラチェット(ratchet)回路、プッシュオン・プッシュオフ(Push On Push Off )回路などと呼びます。

呼び方は様々ですが、どれも動作は同じです。

しかし、オルタネート出力回路をリレーだけで組まなければならないような状況は、まれかと思います。小規模な機械であっても、自動化設備にはPLC(シーケンサ)や表示器(タッチパネル)が搭載されている事のほうが多いはずです。

そこで、今回は、PLC(シーケンサ)を使用して、ボタンひとつで出力をON/OFFするラダープログラムを作成する方法について解説します。

ラダープログラムにて、オルタネート出力する作成する方法はいくつもあります。代表的な方法をいくつか紹介させていただきたく思います。

スポンサーリンク

特殊命令を使用する方法

手早くビットデバイスのON/OFFの保持状態を一つのボタンで切り替えるような回路を作成するのであれば、シーケンサ本体に用意されている特殊命令(機能命令)を使用するのが良いでしょう。

例えば、三菱電機製MELSEC-Qシリーズシーケンサを使用する場合は、ビットデバイス出力反転命令”FF”を使用することで、反転出力命令を使用することができます。

三菱電機MELSEC-Qシーケンサのビットデバイス出力反転命令の使用方法
三菱電機MELSEC-Qビットデバイス出力反転命令FFの使用方法

FF命令のような機能命令を使用すること、シンプルで可読性の高いラダープログラムを作成することができます。処理内容やラダー作成者のやりたかった処理を一発で、読者に把握させることができるため、とっても便利だと思います。

スポンサーリンク

FF命令は、入力指令信号がON→OFFに変化したタイミングで、出力デバイスY0を反転させ、さらに反転させた信号の状態を保持することができます。
タイミングチャートは以下のようになります。

三菱電機MELSEC-Qシーケンサビットデバイス出力反転命令FFのタイミングチャート
三菱電機MELSEC-Qビットデバイス出力反転命令FFのタイミングチャート

FF命令には、出力として設定した出力デバイスY0のビット状態を反転させた後、
さらにこれを保持する機能があります。

上記のように出力デバイスYを使用した場合、シーケンサ停電時にON/OFF状態が強制的にリセットされてしまいます。

シーケンサの電源遮断後もON/OFF状態を記憶させたい場合は、”ラッチリレーL”などの停電保持できる内部リレーを出力信号に設定しましょう。

特殊命令を使用する場合の注意点

特殊命令はシーケンサの機種ごとに用意された特別な命令です。よって、同一メーカのシーケンサでも機種が異なれば使用できない命令があったり、同じ働きをする命令でも命令コードが異なることある点に注意が必要です。各メーカPLCのプログラミングソフトのヘルプ機能やユーザマニュアルを参照し、特殊命令に関する仕様をチェックしてから使用するようにしましょう。

例えば、ビット反転命令を回路を作成する際、

三菱電機製MELSEC-Qシリーズシーケンサを使用する場合は、ビットデバイス出力反転命令 FF を指令します。(詳細は、MELSEC-Q/Lプログラミングマニュアル(共通命令編)を参照願います。)

同一メーカのMELSEC-Fシリーズシーケンサを使用する場合は、交番出力 ALTPを指令します。(詳細は、FX3S・FX3G・FX3GC・FX3U・FX3UCシリーズマイクロシーケンサプログラミングマニュアル基本・応用命令解説編を参照願います。)

FX3シリーズに用意されている交番出力命令は「ALT」を使用する際は注意が必要です。ALT命令をそのまま使用してしまうと、入力信号がONになり反転命令が実行される際、プログラムがスキャンされるたびに出力信号が反転する仕様となっております。入力信号状態が変化した際に、一度だけ出力信号を反転したいため、ALTPを使用し パルス実行する必要があります。

なおMELSEC-iQ-Fの場合は、ビットデバイス出力反転命令 FFと交番出力 ALTPの両方が使えたりします。

ちなみに、キーエンス製のKVシリーズPLCでも、同様な動作をする特殊命令を使用することが可能です。KV studioでは、ALT(オルタネート)命令を使用します。

KVシリーズPLCのALT(オルタネート)命令は、実行条件の立ち上がりにて、デバイス状態を反転してくれる仕様となっております。

スポンサーリンク

ラダー回路を作成する方法

オルタネート出力を行うラダープログラムには定石(じょうせき)があります。
作り方を暗記してしまってもよいと思います。

ポイントは入力指令をパルス化してあげる点と自己保持回路を使用する点です。

パルス化とは入力指令の信号状態がOFF→ONへ変化した際に、パルス化用の内部リレーを1スキャンの間だけONさせて、次のスキャン時にはOFFさせるような処理のことです。特にこのようなOFF→ONのへの信号変化時のパルス化を立ち上がりパルス化と呼びます。信号のパルス化を行うにもいくつかの方法がありますが、今回の例では、パルス化命令PLSを使用しています。

オルタネート出力を行う定石ラダープログラム

この回路では、入力指令X0がON/OFFするたびに、内部リレーM11のON/OFF状態が反転します。

その他にも、見かけ上オルタネート出力回路のように動作するラダープログラムを作る方法はいくつか存在する思います。(例えば、入力指令が押された回数をカウントし、奇数回だったら出力OFFし、偶数回だったら出力ONするだとか。)

しかし、生産設備に入っているPLCのラダープログラムには

  • プログラム作成者以外の方に読まれる場合がある
  • 将来自分以外の誰かがプログラムの追記や変更を行う場合がある

といった特徴があります。

ですので、ラダーは動けば何でもよいというわけではなく、わかりやす書くということが大切だと思っています。トリッキーな回路は極力避けたほうが無難かと思います。

スポンサーリンク

上記のラダープログラムでは特殊命令PLSを入力信号の立ち上がりパルス化のために使用しています。

特殊なシーケンサの場合パルス化命令が用意されていないこともあるかもしれません。

その方な場合は以下のような方法で立ち上がりパルス信号を作ることで、オルタネート出力回路を作成することができるようになります。

オルタネート出力を行う定石ラダープログラム

上記の回路ではPLCが1行づつ順番に処理を行うという特徴を生かした方法で信号のパルス化を行っています。ハードウェアのみのリレー回路で上記のような回路を組んだとしても、上手にオルタネート出力信号を作ることは出来ないと思われます。

どうしてもハード回路でオルタネート出力信号を作りたい場合は以下の記事を参考にしてください。

特殊命令を使用する場合とラダー回路を使用する場合の違い

今回は、以下の2つの方法で、オルタネート回路を作成してみました。

  1. シーケンサにあらかじめ用意されている特殊命令を使用する方法
  2. 自己保持回路とと信号のパルス化を使用したラダー回路を作成する方法

最後に、これらの回路の違いと使用上の注意をまとめたいと思います。

まずは、特殊命令を使用する方法については、「出力信号を反転する」という特殊命令を使用しているという点に注意が必要です。

例としてマスターコントロール構文中に、ビット反転命令FFを使用する場合を考えます。(Qシリーズにて下記サンプルプログラムを作成しています。)

マスターコントロール構文中のビット反転命令を使用したオルタネイト回路
マスターコントロール構文中のビット反転命令を使用したオルタネイト回路

この場合、出力リレーY0=ON中に、マスタコントロール実行条件M0がオフしたとしても、出力リレーY0はON状態を継続する点に注意しましょう。

特殊命令を使用する場合は、とにかく、命令実行条件が成立しない限り出力信号は反転されません。

スポンサーリンク

一方で、マスターコントロール構文中に、自己保持回路を応用したラダープログラムをを使用する場合は、マスタコントロール実行条件M0がオフすると、出力信号は強制的にオされます。

マスターコントロール構文中のオルタネイト回路
マスターコントロール構文中のオルタネイト回路

まとめ

今回は、以下の2つの方法で、オルタネート回路を作成してみました。

  1. シーケンサにあらかじめ用意されている特殊命令を使用する方法
  2. 自己保持回路とと信号のパルス化を使用したラダー回路を作成する方法

特殊命令を使用する場合は、プログラミングマニュアルを見て仕様を確認してから使用するとよいと思います。