PLCおよびマイクロコントローラー入力用のプッシュボタンスイッチデバウンス

PLCおよびマイクロコントローラー入力用のプッシュボタンスイッチデバウンス

日付:2026年9月29日

押しボタン・スイッチのデバウンス処理は、1回のメカニカルな押下や解放が、複数の急速な電気的遷移として認識されるのを防ぎます。物理的なスイッチの内部接点は、安定するまでに一時的に接触と切断を繰り返すことがあり、高速なコントローラーはそれらの変化を複数の入力イベントとして検知してしまう可能性があります。PLC、マイクロコントローラー、または外部ロジック回路で入力をフィルタリングできますが、適切な方法や時間はスイッチ、入力ハードウェア、信号経路、および要求される応答速度によって異なります。すべてのボタンや機械に対して安全に使用できる、万能なデバウンス時間というものはありません。.

まず、接点バウンスと、電気的ノイズ、緩んだ端子、破損した接点ブロック、あるいは入力を繰り返し読み取るアプリケーションとを区別することから始めます。該当する入力部で信号を測定または観察し、コントローラーの内蔵フィルターオプションを確認し、押下動作と解放動作の両方をテストします。ONPOWの GQ22-L-11E/S 押しボタンの例 はパネルボタンの形状の一例を示しており、ご注文いただいたモデルの正確な接点ブロック、配線、および制御要件をご確認ください。より幅広い push-button range には、その他の操作インターフェースが含まれます。.

コントローラーの入力端で接点バウンスがどのように見えるか

メカニカルなボタンは、必ずしも1回の完璧にきれいなエッジで「開」から「閉」へと切り替わるわけではありません。接点が接触する際、小さな機械的跳ね返りによって、接点が安定する前に一連の状態変化が短時間発生することがあります。デジタル入力は、オペレーターがボタンを1回だけ押したにもかかわらず、複数の遷移を検知する場合があります。接点バウンスは押下時と解放時の両方で発生する可能性があり、スイッチの種類や同じ製品の個体差によって動作が異なることがあります。.

入力側の応答も重要です。コントローラーによっては、サンプリングが低速である場合や入力フィルターが内蔵されている場合もあれば、短い遷移にも反応してしまう割り込みや高速入力ロジックを使用している場合もあります。低速でポーリングされるステータス入力にとっては無害な信号であっても、カウンター、エッジトリガー型のルーチン、またはイベントキューにとっては問題となる可能性があります。テキサス・インスツルメンツの’ スイッチ・デバウンスに関するアプリケーションノート は、物理スイッチがロジック入力で誤トリガーを引き起こす仕組みと、フィルターが役立つ理由について説明しています。そのコンポーネントの例は、ONPOWのスイッチやPLCモジュールの仕様を示すものではありません。.

オシロスコーププローブの隣の室内テストプレート上のONPOW青リングプッシュボタン
安全で適切な低電圧のテストポイントでのみ測定を行い、生データとしての入力状態とコントローラーの状態を比較してください。.

バウンスが実際の不具合であることを確認する

遅延を追加する前に、システムが何を行っているかを確認してください。生のデジタル入力状態、プログラムのエッジ検出ロジック、および出力動作を確認します。1回の押下によって入力側で複数の遷移が発生する場合、接点バウンスや電気的ノイズが関係している可能性があります。生入力は安定しているにもかかわらず機械が複数回動作する場合は、ソフトウェアのロジック、タスクのスケジュール管理、またはコマンドの重複経路に原因がある可能性があります。.

その他の類似した症状(バウンスに似た症状):

  • 電気的干渉: 負荷の切り替え、長い並列配線、シールド不良、またはアースの問題が入力を妨げることがあります。フィルターは配線の原因を修正せずに症状を隠すことがあります。.
  • 緩んだり摩耗した接点: パネルに触れたり振動させたりすると変化する断続的な動作は、端子、コネクタ、またはスイッチの故障を示している可能性があります。.
  • 誤った入力リファレンス: ソーシング/シンキングの不一致、共通の欠落、不適切なプルアップにより、入力が浮いたり逆転したりすることがあります。.
  • アプリケーションロジック: 入力が高い状態をカウントするコードは、電気的な遷移がクリーンでも長押しを何度も登録することがあります。.

設計が許す場合、安全でアクセスしやすい低電圧信号点でオシロスコープや適切なロジック計測器を使用してください。生の接点/入力の動作とコントローラーの解釈された状態を比較します。未知またはメイン電源に参照された回路に接地されたプローブを接続しないでください。適切な定格の絶縁測定器と資格を持つ技術者を使用してください。.

入力に適したデバウンス方法を選択する

デバウンスはソフトウェア、PLCの入力フィルター、またはハードウェアで行うことができます。これらの方法には異なるトレードオフがあります。ファームウェアのフィルターは調整が容易ですが、ハードウェアのフィルターは割り込みやコントローラスキャンの前に動作します。PLCの入力フィルターはすでにモジュールの一部である場合があります。選択した方法は短くても有効な押しを保持し、機械が必要とする応答時間を満たす必要があります。.

方法 フィルタリングが行われる場所 役立つ場合 使用前に確認
ソフトウェアによる状態安定化 アプリケーションコードは、一定期間変更されない状態を受け入れます コントローラプログラムは追加の応答時間を許容できます 押下とリリースのテスト、タスクのタイミング、短押し、繰り返しイベント
PLC/モジュールの入力フィルター 入力ハードウェアまたは設定フィルターは、プログラムがそれらを読む前に遷移をフィルタリングします PLCの入力は、記録された設定可能なフィルターを提供します 正確なモジュールマニュアルを使用してください。フィルター設定が応答や高速入力にどのように影響するかを確認してください
RCプラスシュミットトリガー論理 アナログエッジ整形とヒステリシスは、デジタルロジックの前に信号を整形します ハードウェアフィルターが適切であり、部品の許容差が理解されている 入力閾値、立ち上がり/立ち下がり動作、リーク電流、および最小パルス幅を検証してください
専用インターフェースまたは安全規格に準拠した機能 設計されたモジュールが入力条件を処理します アプリケーションには、資格を持つインターフェースまたは安全規格に準拠したアーキテクチャが必要です 正確なデバイス指示を使用し、完全な機械機能を検証してください

簡単なソフトウェア方法として、コントローラーは候補状態を記録し、繰り返しサンプルが設定された間隔で一貫している場合にのみ受け入れます。状態変化ルーチンは、ボタンが押されたままの間にすべてのスキャンに反応するのではなく、一つのイベントを作成できます。閾値は測定し検証する必要があります。Arduinoの例や他の機械から固定遅延をコピーすると、産業用制御が鈍く感じられたり、短いコマンドを見逃すことがあります。.

ハードウェアのRCフィルターの場合、抵抗とコンデンサーがエッジを整形し、シュミットトリガー入力がヒステリシスを提供します。TIのアプリケーションブリーフはそのようなアプローチの一例を示し、関連するスイッチ動作のための時間定数の選択について議論しています。そこに示されている値は、その回路とロジックファミリーに適用されるものであり、すべてのコントローラー入力に適用されるわけではありません。Microchipの AN1450 遅延/デバウンサーノート これはデバイス固有のロジック実装を示しています。これらの情報源を使用して方法を理解し、その後、設計における実際の入力閾値とコンポーネントの制限を確認してください。.

実測された動作と必要な応答に基づいてフィルターを設定する

デバウンス時間を選択する際には、フォーラムで一般的な数字だからといって選ばないでください。オペレーターまたはプロセスが検出しなければならない最短の正当な押下を確立し、その後、代表的なスイッチやテスト条件で接点の挙動を測定してください。バウンスは押下とリリースのエッジで異なる場合があるため、開放と閉鎖の両方を含めてください。観測された過渡現象を除外しつつ、有効な短いコマンドを認識できるフィルターを選択してください。.

テストは新しいスイッチだけでなく、複数のサンプル、動作温度、取り付け、振動、ケーブル長、入力配線、コントローラーのスキャンまたはサンプル間隔も考慮してください。ベンチで動作するフィルターは、実際のハーネス、モジュール、機械に接続されたときに異なる動作をすることがあります。選択した設定は電気またはソフトウェアのドキュメントに記録し、サービス時に確認できるようにしてください。.

イベントカウントや高速動作の場合、デバウンスが許容できない遅延を生じさせたり、実際のパルスを抑制したりしないか確認してください。人間操作のスタートコマンドと高速エンコーダは同じ信号源ではありません。必要なイベントレートが通常の入力経路を超える場合は、コントローラーの高速入力や専用インターフェースを使用してください。合理的なフィルタリング後もバウンスが続く場合は、遅延を無限に増やすのではなく、物理的なスイッチや配線を点検してください。.

金属試験板の横にあるONPOW青リングプッシュボタンの正面図
スイッチ、入力ハードウェア、アプリケーションロジックは、完全なデバウンステストの別々の部分です。.

ボタンとコントローラーを組み合わせて試運転を行う

パネルスイッチ、接点ブロック、配線、入力モジュール、プログラムは一つのインターフェースを形成します。正確な製品ドキュメントからNO/NC接点の配置を確認し、その接点がコントローラーの電気入力タイプにどのようにマッピングされているかを確認してください。接点ラベルや配線の詳細については、既存の プッシュボタン設置および配線ガイド そして 4ピンプッシュボタン配線記事. 。前面写真やカラーリングは、組み立てられたオペレーターの端子配列を確定しません。.

立ち上げ時に、未処理の入力遷移、フィルタリングされた入力状態、および1回の押下と1回のリリースによる結果のコマンドを記録してください。意図的な短押し、長押し、必要な速度での高速連続押し、電源サイクル後の復帰もテストしてください。各有効なコマンドが一度だけ実行され、コマンドが失われていないことを確認してください。オペレーターに実際の位置で制御を操作させ、応答が明確かつタイムリーであることを確認してください。.

非常停止、安全柵インターロック、その他の安全機能に一般的なソフトウェア遅延を追加しないでください。安全に関わる制御は適切な安全規格に準拠したアーキテクチャと、機械のリスク評価および適用される要件に対する検証が必要です。IEC 60204-1は機械の電気設備をカバーしていますが、デバウンス設定だけでは回路の安全性は保証されません。機械メーカーの承認された設計と資格を持つ安全エンジニアリングプロセスに従ってください。.

よくあるデバウンスのミス

入力を観察せずにフィルタリングを行う。. 最初に、複数の遷移が電気的に存在するか、またはプログラムロジックによって導入されているかを判断してください。.

どこでも大きな固定遅延を使用する。. 長いウィンドウは制御を反応しにくく感じさせたり、有効な短押しを見逃したりすることがあります。測定された動作と必要なイベントタイミングを使用してください。.

押下エッジのみをフィルタリングする。. リリース時のバウンスも追加のイベントを生成することがあります。両方向をテストし、コントローラーの選択した方法を検証してください。.

入力を確認せずにコンデンサを使用する。. 遅いエッジ、リーク、入力閾値、ヒステリシスは、コントローラーが信号を読み取る方法を変更する可能性があります。コンポーネントおよびモジュールのドキュメントに従ってください。.

故障した接点をソフトウェアの問題として扱う。. 緩んだ端子、損傷した接点ブロック、汚染、干渉は、物理的な修理を必要とする場合があります。フィルタリングを増やすことではありません。.

普通のコードで安全回路のデバウンスを行う。. 汎用タイマーは安全認証された機能ではありません。設計された安全装置と検証済みのアーキテクチャを使用してください。.

教育ビデオ

この短いメイカーチュートリアルは、マイクロコントローラーのプッシュボタンのソフトウェアデバウンスを示しています。基本的な「物理的な押し込み1回、論理的なイベント1回」のアイデアを見るのに役立ちますが、そのコントローラーとタイミングは例示のみです。PLCやONPOWプッシュボタンの設定を指定していません。.

Arduinoチュートリアル #15:ロボティカDIYによるプッシュボタンのデバウンス方法

マイクロコントローラーのプッシュボタンデバウンス例を観察する.

よくある質問

すべてのプッシュボタンスイッチにデバウンスが必要ですか?

いいえ。必要性は、スイッチ、入力モジュール、アプリケーションのロジック、および応答要件によって異なります。フィルターを追加する前に、生の入力信号とモジュールのドキュメントを確認してください。.

ボタンを離したときに接点のバウンスが発生することがありますか?

はい。押して離す動作は異なる場合があるため、両方のエッジを検証し、選択したソフトウェアまたはハードウェアの方法が機械が必要とするイベントを処理できることを確認してください。.

PLC入力に適したデバウンスタイムはどれくらいですか?

普遍的な値はありません。モジュールのドキュメントに記載されたフィルター範囲を使用し、代表的なスイッチの動作を測定し、結果として得られる遅延が有効な短いコマンドを隠さないことを確認してください。.

より大きなRCコンデンサは常にデバウンスを改善しますか?

いいえ。より大きな時間定数は応答を遅くし、論理閾値に影響を与え、有効なイベントを抑制する可能性があります。抵抗器/コンデンサの許容差、入力リーク、ヒステリシス、およびコントローラーの指定されたエッジ要件を確認してください。.

非常停止を通常のPLCコードでデバウンスすべきですか?

一般的なデバウンス設定は、検証済みの安全設計の代わりにはなりません。機械のリスク評価によって定義された指定された安全認証済みデバイスとコントローラーアーキテクチャを使用してください。.

参考文献

お問い合わせフォーム