在庫確認・見積は今すぐ フォームで依頼する 写真の添付もOK / 24時間受付
制御機器FA

PLCのスキャンタイムとI/O応答遅れ|プログラムは正しいのに機械の反応が遅れる理由

読了目安: 11分 編集: 電材サーチ編集部(編集・出典ポリシー

ラダープログラムを、もう三回読み返した。入力条件、出力条件、インターロックの順序——どこにも間違いは見当たらない。それなのに、高速搬送ラインの光電センサーが検出しているはずのワークを、装置が時々見逃す。プログラムは正しい。センサーも正常に動作している。配線にも異常はない。それでも、10回に1回か2回、機械は「見なかったこと」にする。

こういう現象に当たったとき、疑いの目はまずプログラムのバグへ向かう。次に配線やセンサー本体の故障へ向かう。だが、どちらでもないまま原因不明で終わるケースが少なくない。実はこの手の話、PLCという機械がどう動いているかという、もっと手前の構造に理由があることが多い。

この記事でわかること

  • スキャンタイムとは何か——PLCが繰り返している処理の1周期
  • なぜ高速信号だけを取りこぼすのか——パルス幅と処理周期の噛み合わせ
  • スキャンタイムを左右する要因——プログラム規模・命令・I/O点数
  • 高速な信号を確実に捉える対策——パルスキャッチ入力・割込み入力・フィルタ設定
  • 自分の設備のスキャンタイムを確認する具体的な方法

スキャンタイムとは何か——PLCが繰り返している1周期

PLCは、電源が入っている間ずっと入力を見張り続けている——多くの人がそう思い込んでいる。だが実際の動作は、それとは少し違う。

三菱電機のFA技術用語解説では、スキャンタイムを次のように定義している。「CPUユニットは、RUN状態のときに下記の処理を繰返し行います。スキャンタイムは、これらの処理および実行時間の合計です」。その処理とは、入出力のリフレッシュ処理、プログラムの演算処理、END処理の三つだ。PLCはこの三段階を1セットとして、電源が入っている間ひたすら繰り返す。1周してはまた最初に戻る、という単純な反復運動である。

入出力の更新のしかたにも作法がある。三菱電機の解説によれば、リフレッシュ方式は「入力Xと出力YのON/OFFをスキャンする前に取り込んだのちプログラムのスキャンを行」う方式で、「その1スキャン中はX、YがON/OFFしても取り込まない」。つまりPLCは、1周のはじめにだけ外の世界の状態をまとめて写し取り、その写し取った情報だけを使って演算を進める。演算の途中で実際のセンサーがどう変化しようと、その周ではもう関知しない。

ここに、多くの人が見落としている構造がある。PLCは連続的に外界を監視しているのではなく、決まった間隔でシャッターを切り、その静止画をもとに次の判断をする——スナップショットを撮り続けている機械なのだ。1周が数ミリ秒であれば、人間の感覚では「常時監視」と区別がつかない。だが、シャッターとシャッターの間には、確かに隙間が存在する。

なぜ入力を取りこぼすことがあるか——パルス幅と処理周期の噛み合わせ

その隙間に、短い信号がすっぽり収まってしまうとどうなるか。オムロン制御機器のFAQには、まさにこの現象を扱った事例が載っている。「CS/CJシリーズPLCでサイクルタイムが3〜5ms、オン幅8〜10ms程度の入力が時々拾えない」という相談だ。

一見すると不思議に思える数字である。パルス幅(8〜10ms)のほうがサイクルタイム(3〜5ms)より長いのだから、単純計算では2〜3回はリフレッシュのタイミングを踏むはずだ。それでも「時々拾えない」ことが起きるのは、リフレッシュのタイミングそのものが信号の立ち上がり・立ち下がりと非同期に走っているためである。信号がONになる瞬間とPLCがリフレッシュを行う瞬間が、たまたま噛み合わない位置関係になれば、ぎりぎりの幅の信号は運悪くすり抜ける。加えて、入力ユニット側にも「入力応答時間」という別のフィルタ処理があり、これが短い変化そのものをノイズとして扱ってしまう場合もある。

同FAQが挙げる対策は二つだ。一つはパルスキャッチ入力ユニットの導入で、CS1用のCS1W-IDP01はON幅0.1ms以上、CJ1/CJ2用のCJ1W-IDP01はON幅0.05ms以上のパルスを確実に取り込める。もう一つは、通常の入力ユニットの入力応答時間(フィルタ値)を、初期値の8msから4msあるいは2msへ短縮する方法だ。フィルタを短くするほど短い信号を拾いやすくなる代わりに、電気的なノイズも拾いやすくなるというトレードオフがある。

つまり、「スキャンタイムより長いパルスなら絶対に検出できる」という単純な期待は、実際には成り立たない。信号の幅、リフレッシュのタイミング、入力フィルタの設定——この三つの噛み合わせで、実際に検出できるかどうかが決まる。

スキャンタイムを左右する要因——何がこの1周期を長くするのか

スキャンタイムは固定値ではない。同じ機種でも、書き込むプログラム次第で数倍から数十倍に変わる。

プログラムのステップ数がもっとも直接的な要因だ。命令が多いほど演算処理にかかる時間は単純に伸びる。三菱電機のMELSEC iQ-Rシリーズでは、基本命令であるLD命令の処理時間がCPUの世代によって31.3nsから0.98ns程度まで幅があり、浮動小数点演算のような重い命令はさらに時間がかかる。キーエンスのKV-8000シリーズも基本命令を最小0.96ns、応用命令を最小5.75nsで処理するとしており、命令の種類によって処理コストが大きく異なることがわかる。同じステップ数でも、単純な接点命令の羅列と、浮動小数点演算や文字列処理を多用したプログラムとでは、スキャンタイムに無視できない差が生まれる。

I/Oの点数も無関係ではない。入出力のリフレッシュ処理は、扱う点数が多いほど時間がかかる。増設ユニットを継ぎ足してきた古い制御盤ほど、この部分が当初の設計より膨らんでいる可能性がある。

もう一つ、意外と見落とされがちな要因がタイマだ。三菱電機のFAQでは、タイマのタイムアップから接点がONになるまでの遅れについて「プログラムの中でのタイマコイルと接点の位置により2〜4スキャン目にバラツキます」と説明している。OUT(T)命令の実行では、コイルのON/OFF、接点のON/OFF、現在値の更新という三段階の処理がスキャンをまたいで進むため、プログラム内でタイマ命令をどこに書くかによって、実際の応答までの遅れが変わってしまう。スキャンタイムが長くなれば、この揺れ幅も比例して大きくなる。

高速な信号を確実に捉える対策

スキャンタイムそのものを詰めるアプローチと、スキャンタイムの制約を受けない経路を用意するアプローチ、対策には大きく二つの方向がある。

前者は、前段で見た「プログラムの軽量化」がそのまま当てはまる。不要な演算・監視処理を削り、重い命令の使用箇所を見直すのが基本だ。もっとも、スキャンタイムを詰めれば詰めるほど良いとは限らない。外部機器との通信タイミングを安定させたい場面では、あえてスキャンタイムを一定値に固定するコンスタントスキャン機能が使われる。三菱電機の解説によれば、この機能は「スキャンタイムを一定時間に保ちながらシーケンスプログラムを繰返し実行させる機能」で、狙いは「I/Oリフレッシュのタイミングを安定させること」にある。速さより安定性が求められる場面では、こちらの発想のほうが実務的に効く。

後者、つまり通常のスキャン周期を経由しない経路が、割込み入力とパルスキャッチ機能だ。三菱電機のFAQでは割込み処理を「割込入力が発生したとき、実行中のシーケンスプログラムを一時中断して、その入力に対応する割込みプログラムを実行する処理」と定義している。通常のスキャンが1周を終えるのを待たず、信号の変化があった瞬間に専用の処理へ割り込むため、スキャンタイムの長短に応答速度が左右されにくい。パルスキャッチ機能も同様の発想で、信号のON状態を専用回路がいったんラッチ(保持)しておき、次のスキャンでプログラムが読みに行けるようにする。オムロンのパルスキャッチ入力ユニットがON幅0.1ms・0.05msという桁の信号まで対応できるのは、この仕組みによるものだ。

高速なセンサー・エンコーダ・非接触スイッチを扱う設備で信号の取りこぼしが疑われる場合は、まず通常入力のままスキャンタイムを短縮できないかを検討し、それでも足りなければ割込み入力やパルスキャッチ入力ユニットへの置き換えを検討する、という順序で対策を組み立てるのが現実的だ。

スキャンタイムを実務でどう確認するか

対策を打つ前に、自分の設備の現在のスキャンタイムを把握しておく必要がある。感覚や思い込みで「うちのPLCは速いはずだ」と判断するのは危険だ。

三菱電機のシーケンサでは、特殊レジスタにスキャンタイムの現在値が格納されている。FAQによれば「SD520に現在のスキャンタイムが1ms単位で格納されます」とあり、GX Works等のツールでこのレジスタの値をモニタすれば、実際にプログラムがどれだけの周期で回っているかを数値で確認できる。機種やシリーズによって格納先のレジスタ番号は異なるため、使用機種のマニュアルで該当する特殊レジスタ・特殊リレーの番号を確認しておくとよい。

もう一つ、間接的だが実務上重要な指標がウォッチドグタイマだ。三菱電機の解説では「シーケンサの演算時間の異常を検出するためのタイマ」であり、「プログラムの1スキャンの時間を監視し、予定時間内に完了しないときは警報を出す」機能とされている。プログラムの追加・改造を繰り返してきた古い制御盤で、この監視時間ぎりぎりまでスキャンタイムが伸びていないかを点検しておくと、突然のCPU停止という重大トラブルの芽を早めに摘める。

よくある誤解——「PLCが遅い」のではなく、周期的にしか見ていない

信号を取りこぼすたびに「このPLCは処理が遅い」という評価が下されがちだが、それは半分だけ正しい。もう半分は、PLCという機械がそもそも周期的なサンプリングでしか外界を捉えられない、という構造上の制約にある。どれほど処理速度の速いCPUを積んでも、リフレッシュのタイミングと信号の変化タイミングがずれれば、理論上は同じ現象が起こり得る。速さの問題ではなく、常時監視ではなく間欠監視だという前提を踏まえた設計をしているかどうかの問題だ。

古い制御盤の更新や、高速化する生産ラインへの追従を検討する場面では、CPU単体のスペック表よりも、扱う信号の最短パルス幅と、それに対して現在のスキャンタイム・入力フィルタ・割込み機能の有無がどう組み合わさっているかを、一段掘り下げて確認する価値がある。

制御盤の見直し・部材調達について

「高速信号の取りこぼしを疑っているが、パルスキャッチ入力ユニットや割込み入力対応のPLCへどう置き換えればよいかわからない」「制御盤更新のタイミングで、PLC本体から入出力ユニット・センサーまで型番をまとめて手配したい」という設備担当者様へ。

電設資材専門商社の電材サーチでは、三菱電機・オムロン・キーエンス各社のPLC・入出力ユニット・センサー類を、既設設備の仕様に合わせてお見積りいたします。

見積もり依頼をする →

よくある質問

スキャンタイムとは何ですか?

PLCのCPUユニットがRUN状態のときに繰り返す、入出力リフレッシュ処理・プログラムの演算処理・END処理という一連の処理と、その実行時間の合計を指します(三菱電機FA技術用語解説)。この一巡にかかる時間が短いほど、外部の状態変化に対する応答は速くなります。

スキャンタイムはどのくらいの長さが一般的ですか?

プログラムの規模や使用命令、機種によって大きく変わるため一律には言えません。目安として、三菱電機MELSEC iQ-Rシリーズは基本命令(LD命令)を0.98ns〜で処理でき、キーエンスKV-8000シリーズも基本命令を最小0.96nsで処理します。ただし実際のスキャンタイムは命令の実行時間の総和で決まるため、プログラムのステップ数が増えるほど長くなります。自機種の現在値は特殊レジスタ等で確認するのが確実です(三菱電機の場合SD520に1ms単位で格納)。

短いパルス信号を確実に検出するにはどうすればよいですか?

パルスキャッチ入力ユニットの使用が代表的な対策です。オムロンのCS1W-IDP01はON幅0.1ms以上、CJ1W-IDP01はON幅0.05ms以上のパルスを取り込めます。また、通常の入力ユニットでも入力応答時間(フィルタ値)を初期値の8msから4msや2msへ短縮することで改善する場合があります(オムロン制御機器FAQ)。割込み入力機能を使い、入力の変化と同時にプログラムを起動する方法も有効です。

スキャンタイムを短くする方法はありますか?

プログラムのステップ数を減らす、演算負荷の高い命令(浮動小数点演算など)の使用を見直す、不要な監視処理を削るといった対策が基本です。逆に、外部機器との通信タイミングを安定させたい場合は、あえてスキャンタイムを一定に保つコンスタントスキャン機能を使い、速さより安定性を優先することもあります(三菱電機FA技術用語解説)。

スキャンタイムが長すぎるとどうなりますか?

入出力の応答が遅れるだけでなく、あらかじめ設定した監視時間内に1スキャンが終わらないと、ウォッチドグタイマが異常を検出してCPUが停止する場合があります(三菱電機FA技術用語解説)。プログラムの追加・改造を重ねた古い制御盤ほど、この上限に近づいていないか点検する価値があります。

あわせて読みたい

関連するPLC・スキャンタイム・I/O応答遅れの品種・型番をお探しですか?
電材サーチでは、メーカー横断で目的の型番を素早く見つけ、そのまま見積もりを依頼できます。

対象の電材・品種を検索する →

参考文献・出典

QUOTATION SIGNAL

電設資材・FA部品の無料見積もり

仕入れコスト削減、廃盤代替品の選定、お急ぎの在庫確認まで。型番や数量を送っていただくだけです。 手書きメモや型番リストの写真・PDFでも依頼できます。

SPONSOR / AD

Google AdSense 広告配信エリア

(AdSense管理画面で広告ユニットを作成し、実際のslot値に差し替えるとここに本番広告が挿入されます)

AIと状況を整理してから相談する

普段お使いのChatGPT・Gemini・Perplexity等に貼り付けられる質問文をコピーできます。 自分の状況を伝えて相談すると、最後に電材サーチへの見積依頼文もまとめてもらえます。