PLCのスキャンとは
PLCのスキャンとスキャンタイムについて簡単に解説したいと思います。スキャンとはPLCのプログラム実行形式のことを言います。今回はラズパイでそのPLCのスキャンを実感できるように色々試したいと思います。
PLCのスキャンの概念を理解しないと機械は必ず不可解な動きをします。
PLCを扱うからには是非スキャンの概念を理解してください。
次のようなPOUが3つで構成されているプログラムがあったとします。このプログラムがあったと仮定して話を進めていきます。サブルーチンとか定周期スキャンなどは使っていないこととします。
PLCは順次一番上のPOU1からPOU3のプログラムを処理していき、演算を行います。END処理後に入出力信号を反映してして同じ処理を繰り返します。これが1スキャンです。
スキャンタイムは、この1スキャンにかかる時間がスキャンタイムとなります。これを繰り返し実行するのがPLCです。以下に簡単なイメージ図書いていきます。
入出力信号をリフレッシュ(ON/OFFの整理整頓)してから、プログラムの上から順に下へ処理していきます。これが1スキャンです。この1スキャンにかかる時間をスキャンタイムといいます。
スキャンタイムはよくPLCの性能の指標として表現されます。2022年現在キーエンスが一番早いようです。キーエンスのPLCは加工装置の位置決めや部数カウンタなど、処理速度が必要な装置によく使われています。
(※機種によります。正確な値は運用時に確認ください。ローダーで確認できます。)
PLCとパソコンのプログラム実行形式の違いも記事にしています。よろしければこちらもどうぞ。パソコンの実行形式を把握することで、PLCとパソコン間の通信や連動が理解しやすくなります。
三菱電機のPLCのスキャンの取説が一番わかり易い
三菱電機のPLCのスキャンの取説が一番わかり易いです。ちょっと自分なりに噛み砕いて書いていきます。
三菱の取説が一番イメージしやすく書いています。
(ごめんなさい。ちゃんと書きます)
近日追記
スキャンを実感できる回路をOPENPLCで再現
OPENPLCでスキャンを実感できるような回路を作りました。
lamp1とlamp2のb接点がたすき掛けになっており、最初の1スキャン目に必ずlamp2がONします。実際に組んだ動画を参考にご覧ください。左のLEDがlamp2(点灯する方です)
これは何度やってもlamp2が点灯します。最初の1スキャン目にコイルがONするのがlamp2だからです。lamp2がONした状態だとlamp2のb接点がONしてlamp1がONしなくなります。そのため何度ボタンを押してもlamp1は点灯しません。回路に説明の朱書きを加えたものを添付します。
たったこれだけの回路ですが、簡単にスキャンとインターロックを実感できます。ぜひお試しください。コンパイルしたコードを以下に貼り付けます。テキストエディタに貼り付ければ流用できます。
PROGRAM Hello_World
VAR
my_button1 AT %IX0.3 : BOOL;
lamp1 AT %QX0.0 : BOOL;
lamp2 AT %QX0.1 : BOOL;
END_VAR
VAR
TON0 : TON;
END_VAR
TON0(IN := my_button1);
lamp1 := NOT(lamp2) AND TON0.Q;
lamp2 := NOT(lamp1) AND my_button1;
END_PROGRAM
CONFIGURATION Config0
RESOURCE Res0 ON PLC
TASK task0(INTERVAL := T#20ms,PRIORITY := 0);
PROGRAM instance0 WITH task0 : Hello_World;
END_RESOURCE
END_CONFIGURATION
OPENPLCの用意の仕方はこちらをどうぞ。
もっとスキャンの難しさを体感できる回路をどうぞ
PLCのスキャンとリレーの難しさ(いやらしさ)を実感できる回路を作ってみました。
今回はハードリレーのSRD-05VDC-SL-Cを使ってみます。これでPLCの入力にハードリレーが絡んで来たときの挙動を試してみます。こんな感じのを作ります。(綺麗に整線してません。すいません)
早速ボタン動かしてみます。lamp1とlamp2の位置関係はさっきのと同じです。こんな感じ
それではPLCのプログラムをスタートさせてみます。
ぱっと見lamp1が着いて終わりですが、ハードリレーが絡むとそう簡単にはいきません。
lamp1が点灯した後にlamp2が一瞬だけ点灯しているのがわかるかと思います。これのからくりを少し解説します。
これはハードリレーの復帰動作(接点がOFFするまでの時間)に起因して、このような現象が起きます。
ボタンを離した瞬間の画像です。インターロックがきいているはずなのにlamp2がついています。
これはリレーモジュールの接点の動作によるものです。このカラクリを話たいと思います。
PLCのプログラムの動作において、リレーの動作特性は関わりが深いです。
スキャンの概念と一緒に覚えておいて損は絶対にありません。
このlamp2の点灯は一瞬だけリレーが%IX0.4に入ってなおかつ、ボタンの入力(%IX0.3)がOFFしているからです。リレーモジュールはコイルの励磁がされなくなると、接点は元に戻ります。この元に戻るまでの時間ですが僅かばかりかかります。この時間を復帰動作といい、この復帰動作の時間中は接点がONしてることになります。
この一瞬の間だけONしているタイミングがあるため、lamp2が点灯する現象がおきます。ハードシーケンスをメインにステータス信号をやり取りする設備の場合、これが結構厄介な存在になります。きちっと把握しておかないと摩訶不思議な現象が起きますので、使用するリレーの動作時間は把握することをおすすめします。
ボタンを離した瞬間に点灯しないようにした回路がこちらです。
lelay1_inputの手前にmy_button1のa接点を追加しています。これでボタンのOFFも条件に入っているのでlamp2が点灯しません。
PLCのスキャンとハードリレーの動作特性を実感できるので、PLCを勉強中の方はぜひ。
スキャンタイムが早くなると
PLCの性能の指標にもなるスキャンタイムですが、「早ければ良い」と言うわけではありません。PLCを現行機種に更新する時、このスキャンタイムが厄介な存在になります。例えば三菱電機製PLCのAシリーズからQシリーズに更新するとします。現行機種であるQシリーズは処理速度が10倍以上早いです。
以下にスキャンタイムが早くなることの体験談踏まえて注意点を記載します。(あくまでPLC更新時です。本来はスキャンタイムが早いのはいいことです。)
20年ほど前の三菱電機製PLCのAシリーズをQシリーズに更新したときのことです。旧機種のPLCで調整しているコンベヤは当然ですが、位置決めも旧機種ありきで調整しています。現行機種に更新してPLCの処理速が上がり、ワークの停止位置が変わる可能性があります。
原因は処理速度が上がったことでコンベヤの前進指令OFFのタイミングが早くなり、停止位置が変わりました。この時はコンベヤに停止位置のケガキ線があったので、ケガキ線の位置で止まるように回路をオンディレーに変更しました。ケガキ線やテプラ一つに意味があると実感していました。
以上「ラズパイでPLCのスキャンを実感する」でした。PLCを更新すると思わぬ所に波及して動きが変わります。スキャンタイムがその原因の一つになることが多いです。みなさんもPLC更新時はプログラムとにらめっこしてください。
スキャンタイムが影響しそうなところを当たりをつけて、対策をねって現地入りするのが安全です。
PLCに触れたばかりの人はこのスキャンの概念が最初の壁だと思います。ここがわかるとプログラムとにらめっこしてるだけで楽しくなります。この記事がスキャンの理解に少しでも力に慣れたら幸いです。
それではご安全に!
コメント