プログラムの流れ
シーケンス制御講座
ラダー図は配線図のように読むことが基本ですが、それだけだと対応できないことが出てきます。このページではPLC内でラダー図が実際にどのように処理されているかを解説します。スキャンとスキャンタイムの仕組みを理解することで、プログラムの動作をより深く把握できるようになります。
作成日:2015年01月10日
更新日:2026年05月26日
スキャンとは
今回は実際のプログラムの流れを説明します。「プログラムの流れ?」と思われる方もいるかもしれません。今までの説明では「接点が入ればそれに対応したコイルが入る」または「命令が実行される」という説明でした。しかし実は少し違います。

プログラムというものは、基本的に上から下の行に読み込まれていきます。さらに細かくいうと、左から右に読み込んでいきます。つまり一番上の0ステップから最後の「END」まで、高速に読んでいるのです。そして「END」までいくとまた先頭に戻り、繰り返し読み込んでいます。
スキャンとスキャンタイム
・スキャン:プログラムの先頭(ステップ0)からENDまで一周する動作のことをスキャンと呼びます。
・スキャンタイム:一周してくる時間のことをスキャンタイムと呼びます。
・パルス命令:パルス命令を使うと1スキャンだけONします。これはスキャンの仕組みを利用した命令です。
例えば「M0」がONしてことを想定してみます。ステップ18でM0がONします。そしてスキャンしながら「END」まで行き、ステップ0に戻ります。ステップ0にはM0の1スキャンのみONする接点があります。この命令により「D100」〜「D400」がシフトします。
次は「M1」がONした場合を想定してみます。ステップ26で「M1」がONします。するとすぐ下のステップ34でD100〜100個のデータをクリアする命令が実行されます。そして「END」まで行き、ステップ0に戻ります。このとき先にデータがクリアされているので、実行するたびにクリアされた値がシフトしていきます。「M1」を3回ONすれば「D100」〜「D499」の値はすべてクリアされます。
このようにデータ演算も1個ずつしか行わないため、プログラムを書く順番によっては上手に演算ができないことがあります。演算したい順番にプログラムを並べるようにしましょう。
データレジスタの動き
演算も一つずつ行うので、1個のデータレジスタで何回も計算ができます。例えば下記のような演算が可能です。
① 「D2」+K2 → 「D2」に入れる
② 「D2」×K5 → 「D2」に入れる
③ 演算後「D2」と「D3」で32ビットになるので、16ビット変換して「D2」に入れる
このように同じデータレジスタに答えを入れて、そのデータレジスタでさらに演算して同じデータレジスタに戻すということも可能です。例えば上の「D2」に5を入れて1スキャン実行すれば、「D2」には35が入っています。
演算の注意点:演算命令は必ずパルス命令(Pコマンド)で実行させてください。そうしないと、演算指令が出ている間プログラムがスキャンするたびに何回も繰り返し計算してしまいます。同じデータレジスタを使用する場合は、1スキャン目に出した答えに対してさらに演算をするため、際限なく大きな値になってしまいます。
ただし、最初のうちは同じデータレジスタで演算することはお勧めできません。モニタ中に演算過程が見えないため、演算エラーが発生した場合に原因の特定が難しいからです。
プログラムの流れは、他の参考書やシーケンサーのマニュアルでは最初に説明されています。しかし「シーケンス制御講座」ではあえて中級の段階で説明しました。理由は、ラダー図が理解できていないと分かりにくく、中級者になってからのほうが簡単に理解できるからです。最初から難しい説明をしても、上達するどころかあきらめてしまう可能性のほうが高いので、この段階での説明を選びました。
リフレッシュ方式
次は入出力の動きについてです。今までの説明は内部コイルなどの動作でした。しかし入力「X」や出力「Y」の動作は少し変わってきます。
まず「X0」を外部からONするとどのタイミングでプログラムに反映されるでしょうか?実はすぐには入りません。プログラムがスキャンして、ENDを読み込んだ後はじめて入力されます。ENDを過ぎて0に戻ったときに、入力されている「X0」をプログラム上で反映させます。複数の入力があった場合もまとめて反映されます。これがシーケンサーの入力の遅れとなります。
出力の「Y」も同じです。例えば「Y0」と「Y1」が出力されたとき、プログラムのENDをスキャンした後に出力されます。
リフレッシュ方式とは:入力と出力についてEND命令のタイミングでまとめて更新する方式です。若干の遅れがありますが、組み立て設備などにはほとんど影響はありません。影響が出るのは試験装置等の高速演算処理が必要な場合です。
なお、リフレッシュ方式のほかにダイレクト方式もあります。また、入力の遅れを抑えるために入力フィルタを小さくする方法や、割り込み処理をかける等の方法もあります。
よくある質問(FAQ)
図解入門 よくわかる最新 シーケンス制御と回路図の基本はKindle版(電子書籍)です。単行本ご希望の方は、フォーマットで単行本を選択してください。または、トップページよりご購入ください。




