1.PLCでカウントする
配線で接続しリレーシーケンスで組上げる制御でも、度々タイマーやカウンターを必要とするときがでてきます。タイマー・カウンターの使い方〜制御幅の広がり〜でも説明しているとおりタイマーやカウンターを使用することにより、単なるリレーのみのシーケンス制御に比してその応用範囲は飛躍的に広がります。
PLCでも同じで、割と基本的な部分でありながら知っているかどうかまたは、使えるかどうかで実現可能な範囲が大きく変わります。
2.配線接続
PLCでタイマーやカウンターを使用するにあたってそれらを使うための特別な配線というものは存在しません。あくまで内部的に、PLCラダー上で記述していくこととなります。
3.記述方法
PLCラダーでのタイマーやカウンターの使い方を説明します。ソフトの立上げ方や使用する回路の接点やコイルの利用方法またコメントの設定についてはすでにPLCプログラム〜ラダー図の基本〜で説明していますのでそちらを参照してください。
また、パッケージタイプやビルディングタイプがありますがここではパッケージタイプを例に挙げます。とはいえどちらの場合もこれに関しての差はありません。
1)KV STUDIO
KV STUDIOでのタイマーやカウンターの利用方法と動きについて解説します。
説明画像はクリックやタップで拡大可能です。そのままでは分かりづらいと思いますので適宜拡大してご覧ください。
デバイスを「XYMで表示」するモードを使用しています。このモードについてはPLCプログラム〜ラダー図の基本〜で説明していますのでこちらで参照してください。
a.タイマー
先ずはタイマー利用時の記述方法です。よく使われるアウトタイマーというものを記述します。
タイマーの始動条件として「X0,a接点」の入力を使用します。この入力が有り続ける限りタイマーは時間計測を行い、タイムアップするとタイマコイルが励磁され出力される、という具合に動作するものをつくります。
ここでは先の記事で基本的なことを説明した続きとしての扱いで、タイマー回路をいきなりですが記述します。「Enter」キーから「タイマー命令」を選ぶ方法や直接記述の方法は画像で説明します。「X0,a接点」の横にカーソルをもっていき、「Enter」キーを押すと「命令値/マクロ/パックパレット」と名のついたダイアログボックスが開きます。このボックス内にある各種命令からスクロールバーを操作して「TMR」を選択します。その後デバイスNo.やタイマー設定値などを入力します。「Enter」キーや「上書き」ボタンで記述完了となります。
今回はタイマーとしてのデバイスナンバーを「10」つまり「T10」として、1[s]の継続入力で出力するタイマーを記述します。
直接入力では「out␣t10␣k10」と記述します。ここでひとつ注意となりますが、この「TMR命令」は100[ms]、つまり0.1[s]を最小単位としています。よって設定値として1[s]で動作させたいタイマーでは「K10」、10[s]で動作させたいタイマーでは「K100」と設定入力する必要があります。
そうして描いたPLCラダーが下の画像のようになります。タイマー「T10」がタイムアップで出力することで、その出力接点を利用し「Y50」をさらに出力させています。
また、長押後自己保持することも可能です。その場合のPLCラダーも以下に載せておきます。
b.カウンター
カウンター命令は指定の入力の数を数えて、設定に達したら出力する命令です。カウンターとしてのデバイスナンバーを「10」つまり「C10」とし、カウント設定値を10[回]として記述します。
入力要領はタイマのときと同様です。「Enter」キーから始める場合は「OUTC」を探します。
そうして描いたPLCラダーが下の画像のようになります。「C10」が入力パルスを10[回]カウントすることでそのその接点出力により「Y51」をさらに出力させています。
PLC内部で動作するカウンターには注意点が二つほどあります。一つ目はカウントは「立上りパルス」で入力する必要があることと、もう一つはリセットをするための命令が必要ということです。
理由は以下のとおりです。
一つ目の立上りパルスについては、PLCの処理方法に起因します。PLCはプログラム(PLCラダー)の始点から終点までを常に繰返し巡回監視して、各種入力に応じた処理をしています。このときに一巡する速さを「スキャンタイム」といいますが、これは非常に高速であり、「ミリ秒」単位であったり速いものでは「マイクロ秒」単位であったりします。
数を数えるための信号がスキャンタイムを超える長さで入力されると一巡する毎にカウントしてしまいます。ですので信号の立上りの瞬間つまりOFF状態がONになった瞬間のみを1カウントとして計上することで不要なカウントを防ぎます。
実はこの不要カウントについては筆者の経験上ですが、必ず発生するものではなさそうです。ある程度単純なPLCラダーでは発生しにくく、複雑化していくことで発生しやすくなるように思われます。プログラムのバグのようでそうとも言い切れません。メーカーも立上りパルスにて処理することを勧めています。
カウンターへの入力の記述も「命令値/マクロ/パックパレット」で「ロードパルス」を選択する方法と直接入力で「ldp」から始まる記述があります。その後カウンタの命令を記述します。PLCラダー内の記号はa接点内に上向き矢印が付加されたものになります。
もう一つの注意点はリセット方法についてです。通常の自己保持回路のリセットにおいては自己保持接点とリレーコイル間をB接点で遮断することで実行しますが、カウンターではすでに入力された数値を「0(ゼロ)化」する必要があります。そのための命令が「RES命令」となります。これによりカウントアップでによるカウンターからの出力を無効化することが可能となります。
以下、「命令値/マクロ/パックパレット」で選択する記述方法です。
以下は直接入力によるリセット命令記述方法です。「res␣c10」と入力します。
この処理は特別な条件を付加しない場合、カウント途中でもリセットが有効となります。
c.シミュレーション
作成したPLCラダーを保存した後、シミュレーションをします。シミュレーターを立上げ、状態を変化させたい接点にカーソルを合わせ、ダブルクリックすることでビット反転できます。
以下の画像は、ビット反転直後のものです。時間計上中で、まだ「T10」からの出力はありません。
設定時間経過後の出力状態です。「T10」から接点の動きとしての出力があります。
「X0,a接点」の入力を断ってもタイマ接点で自己保持していますので出力を維持し続けています。
次はカウンタのシミュレーションです。「X2,a接点立上りパルス」をOFFからONするたびに「C10」のカウント値が上がっていきます。
カウンターへのパルス入力が設定値に達すると「C10」から接点の動きとして出力があります。
「X3,a接点」をダブルクリックしてリセット命令を実行すると「C10」のカウント値は「0」となり出力もなくなります。
2)GX Works
GX Worksでのタイマーやカウンターの利用方法と動きについて解説します。
説明画像はクリックやタップで拡大可能です。そのままでは分かりづらいと思いますので適宜拡大してご覧ください。
a.タイマー
タイマー起動の接点「X0,a接点」の右側にカーソルを合わせ「F7」キーで「コイル命令」を選択した後、同ダイアログボックス内で「t10␣k10」と入力します。このタイマー命令もKV STUDIOの「TMR命令」同様100[ms]単位のタイマとなります。
あとは「T10」の接点としての出力でさらに「Y0」を出力するように記述します。
ひと通りの回路を描き終えたら「F4」キーによる変換(コンパイル)をします。
b.カウンター
数えたい対象の入力を接点で記述します。ここでもやはり立上りパルスで記述しておくほうが良いでしょう。GX Worksでは「Shift」キー+「F7」キーで記述できます。
記述した「X2,a接点」の右にカーソルを合わせ「F7」キーを押し、ダイアログボックス内で「c10␣k10」と入力し「Enter」キーを押すと、「X2の立上りパルスを10回数えると出力するC10のカウンター」という意味の記述が出来上がります。
KV STUDIOのときと同様、カウンターのリセット命令を記述します。
リセット実行の入力となる「X3,a接点」の右側にカーソルを合わせ「F8」キーを押します。ダイアログボックス内に「rst␣c10」と入力し「Enter」キーを押すと「C10」に対するリセット動作の記述が出来上がります。留意点としてはKV STUDIOでは「res」から始めるのに対しGX Worksでは「rst」から始めるという違いがあるということです。
c.シミュレーション
作成したPLCラダーを保存したらシミュレーションをします。
先ずはタイマ動作のシミュレーションです。立上がったシミュレーター上でカーソルを「X0,a接点」に合わせ右クリックをします。「現在値変更」という項目がありますのでそれをクリックします。そしてビット反転をするとタイマーがタイムカウントを始めます。
設定に達した時点で「T10」が出力し、さらに「Y0」も出力しています。入力の「X0」をOFFにしても「T10」の入力は自己保持で継続中です。
「X1,b接点」にカーソルを合わせビット反転することでリセットします。
次にカウンターのシミュレーションです。「X2,a接点」にカーソルを合わせビット反転を繰り返します。
設定値に達すると「C10」から出力があり、同時に「Y1」も出力します。
「X3,a接点」をビット反転させリセット入力すると「C10」のカウント値は「0」になり出力も断たれます。
4.外部機器との組合せ
以上がPLCにおけるタイマーとカウンターの利用方法となります。これのみでは設定変更の無い運用でしか利用できませんが、PLCプログラム〜ラダー図の基本〜での内容と外部数値入力〜PLCへの数値設定〜での内容を組み合わせて使用することで利用範囲が非常に大幅に拡大することとなります。そのためにもひとつひとつ焦らず丁寧に知識を積み上げていきましょう。
カーボンの美しさと堅牢性!
使いやすさで有名なThinkPad
外部からタイマーやカウンターの設定ができるようにするための設計方法について解説する記事をまとめました。配線の方法とラダーの記述方法について詳しく説明しています。以下からどうぞ。
さらに、シーケンス制御を効率よく学びたい方へ、筆者も実践した方法を記事にまとめました。時間的コストと金銭的コストのバランスが非常に良い方法であることを説明しています。以下からどうぞ。