Windows IoT Enterpriseで実現するソフトリアルタイム制御|仕組み・設定手順・実機検証データを公開

Windowsを用いた制御は、既存のアプリケーションや周辺機器の資産を活かしやすく、導入後の運用・保守も行いやすいことから、工場などの生産現場でも広く活用されています。
一方で、従来のWindowsはリアルタイム性を前提としておらず、時間制約のある制御を実現するには、専用OSの導入やリアルタイム機能を拡張する外部ソフトウェアを組み合わせたりする必要がありました。導入時には追加費用や工数増大につながり、導入のハードルとなるケースも少なくありません。
こうした課題に対して、Windows IoT Enterpriseでは、“ソフトリアルタイム機能”が標準機能として提供されています。
この機能は、2021年11月に提供が開始された「Windows 10 IoT Enterprise バージョン21H2」から導入されたもので、Windows環境でもリアルタイム応答を確保しやすい設計が可能になりました。
本記事では、生産現場におけるリアルタイム性の重要性を整理したうえで、Windows IoT Enterpriseでソフトリアルタイムを実現する方法や手順、さらに当社製品を用いた実機検証データで判明した効果と注意点を解説します。

目次

ソフトウェアのリアルタイム性とは

生産設備では、制御の遅れが安全性や動作品質に大きく影響するため、処理の遅れを最小化するリアルタイム性が重要になります。リアルタイム性とは「要求された期限までに処理を完了できる性能」であり、平均処理速度だけでなく、負荷集中時に発生しやすい一時的な大遅延(ワーストケース)も想定して設計する必要があります。
そのため、生産現場で安定した周期制御を実現するには、実行環境や設定を整えて処理のばらつきを抑えることが不可欠です。
工場の生産設備では、装置の状態をセンサで監視しながら、モータやバルブなどの動作を制御する場面が多くあります。
例えば、装置の異常を検知したら停止指令を出す、所定のタイミングで搬送や加工を開始するといった処理は、一定以上の遅れが発生すると、安全性や設備の安定稼働に影響します。とくに、生産品質や安全動作に関わる処理では、「どれだけ早いか」よりも「遅れがどれだけ大きくならないか」が重要になります。
そこで重要になるのが、ソフトウェアのリアルタイム性です。
リアルタイム性とは、要求された期限までに処理を完了できる性能を指します。
リアルタイム性を確保するには、平均的な処理時間の速さや稼働の安定性だけでなく、処理の遅れが一時的に大きくなる状況も見込んで設計する必要があります。
装置やOSの負荷が高いタイミングでは処理が集中し、遅れが増える場合があります。そのため、負荷変動があっても処理を期限内に完了できるよう、実行環境や設定を適切に整えることが重要です。
なお、Windowsでソフトリアルタイムを実現する方法については、下記の資料でも詳しく解説しています。

生産現場でリアルタイム処理が求められる理由

工場などの生産現場でリアルタイム処理が重視される主な理由は、作業者の安全確保と設備の安定稼働に直結するためです。
近年の工場や生産設備では、ロボットや各種センサ、IoTなどの技術を活用し、装置の状態を監視しながら自動で制御する仕組みが主流になっています。
こうした設備では、装置の状態変化や異常を検知した際に、停止や切り替えなどの指令を決められた時間内に確実に反映することが求められます。
生産設備の制御に遅れが生じると、装置の動作が意図したタイミングから外れます。例えば、人や物の接近を検知して停止指令を出しても、処理の遅れによって停止が間に合わず、作業者との接触など重大な事故につながるリスクが高まります。
また、処理や負荷が重なる状況で遅延が繰り返し発生すると、制御のばらつき(ジッタ)が大きくなり、装置の動作品質が低下する要因になります。工程によっては、エラー検知や保護動作により設備停止や復帰作業が必要となり、生産性や品質に影響する場合があります。
このようなリスクを低減するために、生産現場ではリアルタイム性が重要になります。

ハードリアルタイムとソフトリアルタイムの違い

リアルタイム処理は、処理を完了するまでの期限をどの程度厳密に扱うか、期限を超過した場合にどのような影響が出るかなどによって、大きくハードリアルタイムとソフトリアルタイムに分類できます。
ハードリアルタイムは「期限を絶対に守らなければならない処理」であり、遅延が装置制御や安全確保に直接影響する用途に適用されます。一方、ソフトリアルタイムは「期限内完了が望ましいが、多少の遅れは許容される処理」であり、品質低下や応答性に影響はあるものの、即座に重大トラブルにはつながりません。

主な違いは下記のとおりです。

以降では、ハードリアルタイムとソフトリアルタイムの考え方を整理したうえで、それぞれの特徴と使い分けのポイントを解説します。

ハードリアルタイムとは

ハードリアルタイムとは、あらかじめ定めた期限までに処理を必ず完了させることが求められるリアルタイム処理を指します。期限を守れない場合、装置の動作や安全確保に重大な影響を及ぼすため、時間制約は厳密に扱われます。

ハードリアルタイムが求められる例として、産業用ロボットアームの制御が挙げられます。ロボットアームは、状態をセンサで取得し、その結果に基づいてモータへ指令を出す処理を一定周期で繰り返します。ここで処理が期限内に完了しない場合、制御のタイミングがずれて軌道が乱れる、回避や停止の判断が遅れるなど、事故につながるリスクが高まります。

ハードリアルタイムは、期限違反を許容しない前提で設計できるため、安全要件を満たしやすい点が特長です。また、設計段階で各処理の所要時間を明確にしやすく、最大遅延した場合の処理時間を見積もったうえで、安全設計やリスク評価を進めやすくなります。

一方で、厳密な時間制約を満たすために構成や設計の自由度が下がり、RTOS(リアルタイムOS)や専用構成が必要になる場合があります。また、追加費用が発生しやすく、導入や開発に専門的なスキルが求められるなど、コストと実装難易度が上がりやすい点が難点です。

RTOS(リアルタイムOS)とは?

RTOS(Real-Time Operating System)とは、決められた時間内に処理を完了させることを重視したOSです。一般的なOSに比べて、重要な処理を高い優先度で実行しやすく、一定周期で動かす設計に適しています。その結果、処理の遅れやばらつきを抑え、時間制約が厳しい制御を実現しやすくなります。
RTOSは、主にリアルタイム性が求められる組み込みシステムで使用されるケースが多く、自動車、医療機器、産業制御システム、航空宇宙など様々な分野で活用されています。

ソフトリアルタイムとは

ソフトリアルタイムとは、一定の時間制約はあるものの、多少の遅れが発生した場合でも許容されるリアルタイム処理を指します。期限に遅れても直ちにシステムが停止するとは限りませんが、遅れが大きくなると品質や装置の動作に影響する可能性があります。

ソフトリアルタイム処理に適した用途の具体例として、ロボットの協調制御が挙げられます。複数のロボットや搬送装置などが互いの干渉を避けつつ連動した動作を行う協調制御では、処理に多少の遅れが生じても、直ちにシステム全体が破綻しないケースが多くあります。

ソフトリアルタイムのメリットは、ある程度の処理の遅れを許容しつつ、最大遅延や遅れのばらつきを抑えることで生産品質を維持できる点にあります。既存のWindows環境と機能を活かして実装できるため、コストを抑えて改善しやすい点も特長です。

一方で、ハードリアルタイムのように期限を絶対に保証することはできないため、安全要件が厳しい用途では注意が必要です。加えて、OS設定の最適化や、リアルタイム処理に影響しうるプロセスを抑制する運用設計などが必要になり、担当者には相応の知識が求められます。そのため、用途に応じて遅延許容範囲を明確にし、適切な検証とチューニングを行うことが重要です。

どちらが最適かを判断するための考え方

ハードリアルタイムとソフトリアルタイムのどちらが最適かは、装置や工程、要件など、複数の要素によって変わります。現場では、「安全性は確保したいがコストは抑えたい」「Windows環境を活かしつつ遅延も安定させたい」など、複数の要件が両立しないケースも多いため、特定の方式を一律に推奨することはできません。そのため、目的と制約を整理したうえで判断することが重要です。

    主な判断基準として、以下の3点があります。
  1. 遅延を許容できる範囲
  2. 導入コストと設計の自由度
  3. 運用の成立性

遅延を許容できる範囲
遅延が安全確保や設備の制御に直結し、期限を外すことが許容できない用途では、時間保証を厳密に扱う設計が必要です。一方、多少の遅延が発生してもシステムが成立し、品質面の低下を抑えることが主目的であれば、ソフトリアルタイムでも要件を満たせる可能性があります。

導入コストと設計の自由度
一般的に、専用のRTOSや専用構成を前提とする場合はコストが高くなりやすく、設計の制約を受けやすくなります。一方で、既存の環境を活かせる場合は、導入コストを抑えながら改善を進めやすい点がメリットです。

運用の成立性
時間制約を満たすためのOS設定やプロセス管理など、実行環境の調整も必要になります。社内で割ける工数を確認し、運用できる体制や知識を有する担当者を確保できるかなどを総合的に判断しましょう。

これらの観点を整理したうえで、「どちらが最適か」という観点から検討を進めると、要件と制約に合った選択がしやすくなります。

Windows環境におけるリアルタイム処理の限界

Windowsは一般用途OSとして、アプリケーションやOSの内部処理、各種サービスを同時に動かしながら全体の効率を最大化するように設計されています。
複数の処理が同じCPUコア上で並行して実行され、状況に応じてOSが優先度を調整しながら割り込ませることで、快適な操作性や汎用性を実現しています。
Windows上でも、用途や条件によってはソフトリアルタイム相当の運用は可能ですが、制御や計測のように一定周期での処理が求められる用途では、CPU負荷が高い場面や割り込みが集中する場面でブレが増えやすく、安定した周期で処理を維持しにくくなります。
そして、実際の生産現場で問題視されやすいのが、平均的な遅延よりも「まれに発生する大きな遅延」です。普段は問題なく稼働していても、特定のタイミングで大きく遅れると、装置の誤動作や取りこぼし、品質不良、停止などのトラブルにつながりかねません。
重要なのは、自社のWindows環境でリアルタイム処理を行えるかどうかではありません。実際の運用を想定した際の遅延要因を抑えて安定稼働できる状態に調整できるかがポイントになります。

Windows IoT Enterpriseのソフトリアルタイム機能とは

Windows IoT Enterpriseは、工場の制御端末など特定用途の業務用端末での利用を前提としたWindowsです。一般的なWindowsと比べて、現場での運用を前提に構成や動作を安定させやすい点が特徴で、用途に応じて更新の影響を受けにくい運用形態を選択できるほか、端末の操作や利用アプリを制限して、意図しない設定変更を防ぐことも可能です。

Windows 10/11 IoT Enterpriseでは、ソフトリアルタイム向けの設定を追加できるようになりました。一定周期の処理に必要な実行環境をWindows上で整えやすくなっています。

    なお、ソフトリアルタイム機能が利用できるバージョンは以下のとおりです。
  • Windows 10:Windows 10 IoT Enterprise バージョン 21H2以降
  • Windows 11:Windows 11 IoT Enterprise LTSC 2024以降

ソフトリアルタイム機能で行うのは、重要な制御タスクが動く「実行場所」を確保し、OSサービスやバックグラウンド処理などの影響を受けにくい環境を作ることです。
具体的には、CPUコアの割り当てを見直し、リアルタイム処理の実行コアを予約・分離することで、余計な処理が入りにくい構成に寄せることができます。これにより、現場で問題になりやすい重大な遅延発生を抑える方向に働きます。
この仕組みにより、既存のWindows IoT Enterprise環境を活かしながら、ソフトリアルタイム運用を検討しやすくなります。
次の章では、ソフトリアルタイム機能を有効にする際に押さえるべき技術的ポイントを整理します。

ソフトリアルタイム機能を実装する手順と技術的ポイント

ここでは、Windows IoT Enterpriseでソフトリアルタイム機能を設定する際の要点を、手順に沿って整理します。具体的な操作手順やコマンドはホワイトペーパーで解説しているため、本章では誤解が生まれやすいポイントを中心に説明します。

    本章で扱う手順は以下のとおりです。
  • 手順1:BIOS設定でCPU動作の変動要因を抑える
  • 手順2:専用ツールでソフトリアルタイム用のCPUコアを設定
  • 手順3:影響するサービスを抑制して設定状態を確認
  • *
    注意:ソフトリアルタイム機能の設定はWindows上から元に戻すことができません。元の状態に戻すにはWindowsリカバリが必要になるため、事前に検証計画と運用への影響を確認したうえで実施してください。

手順1:BIOS設定でCPU動作の変動要因を抑える

BIOSは、OS起動前にCPUや省電力機能などの動作を設定するための基本設定です。
ソフトリアルタイムでは、平均的な処理時間だけでなく、遅延のばらつきを小さくすることが重要です。そこでまず、BIOSでCPU動作が変動しやすい設定を抑え、処理がぶれにくい実行環境を作ります。

設定項目 変更後
Active Efficient-cores 0
Hyper-Threading Disabled
Intel(R)SpeedStep(TM) Disabled
Intel(R)Speed Shift Technology Disabled
C states Disabled

これらを無効化することで、論理コアによる同時実行や省電力制御による性能変動が抑えられ、処理時間がばらつきにくい安定した実行環境を作りやすくなります。

手順2:専用ツールでソフトリアルタイム用のCPUコアを設定

次に、専用ツールを用いて、ソフトリアルタイムで使用するCPUコアを設定します。狙いは、時間制約のある処理が動くコアに余計な処理が割り込まない状態を作ることです。

この手順では、平均的な処理速度を上げることよりも、負荷変動があっても遅延が増えにくい実行環境に整えることを重視しています。

    【確認のポイント】
  • ソフトリアルタイム用に割り当てたコア数と残りコアのバランス
  • 時間制約のある処理が複数ある場合の優先順位と割り当て方針

手順3:影響するサービスを抑制して設定状態を確認

CPUコアを設定しても、リアルタイム用コアでサービスやバックグラウンド処理が動くと、遅延の要因になります。そのため、影響を与えやすいサービスを無効化し、余計な処理が入り込まない状態を作ります。
あわせて、設定が有効になっているか、想定どおりのコアがソフトリアルタイム用として扱われているかを確認しましょう。

    【確認のポイント】
  • 負荷が集中しやすいタイミングの影響が想定内か
  • 遅延の最大値とばらつきが許容範囲に収まるか
  • 必要に応じた対象プロセスの配置と運用方針

BIOS設定から専用ツールの適用、確認観点までを手順として整理しています。ホワイトペーパーでは運用時に注意すべき点を詳しくまとめているため、実施前にご参照ください。

【必読】対応OSと注意点

ここまででソフトリアルタイム機能の概要と設定の考え方を説明しましたが、実運用に移る前に、対応OSと注意点を改めて整理します。
特にOS要件や時間保証の前提を取り違えると、期待した効果が得られない可能性があります。
ソフトリアルタイムは、Windows環境であれば必ず利用できる機能ではありません。前提として、本機能を利用できるOSは、Windows 10 IoT Enterprise バージョン21H2以降、およびWindows 11 IoT Enterprise LTSC 2024以降に限られます。
本記事で解説しているリアルタイムは、あくまで”ソフトリアルタイム”であり、時間制約は扱えるものの、期限を絶対に守ることを保証する方式ではないため、用途の安全要件や許容できる遅延範囲を踏まえて適用を判断してください。
さらに、一度設定を反映した場合、Windows上から元に戻せません。導入時は、検証計画と運用への影響を確認したうえで実施してください。

コンテック製実機検証に基づくリアルタイム性能

ここからは、Windows IoT Enterprise環境で当社製品を用いて実施した実機検証の結果にもとづき、ソフトリアルタイム設定の有無による遅延特性の違いを紹介します。

検証環境の概要

今回の検証で使用した機器と検証環境について紹介します。
検証用PC(VPC)に入出力ボード(DIO/AIO)を接続し、CPU負荷ツールで負荷を与えた状態でも、入出力処理がどの程度の遅れやばらつきで動作するかを確認しました。
検証に使用した機器は以下のとおりです。

用途 名称 備考
検証用PC VPC-3200 Core-i5 Windows 10 IoT Enterprise 入出力ボード用ドライバーインストール済み
デジタル入出力ボード DIO-32DM3-PE DIO-0808TY-USB
アナログ入出力ボード AIO-163202F-PE
ADA16-32/2(PCI)F
AIO-160802AY-USB

DIO検証の結果

一定の条件下でDIOの検証を行った結果、平均的な遅延はほとんど変化しない一方、最大遅延(ワーストケース)が大幅に改善しました。生産現場では、平均値よりも「たまに発生する大きな遅延」が装置のタイミングずれや一時停止の要因になりやすいため、最大遅延の改善は実務上の意味が大きいと言えます。なお、前提条件および検証結果は以下のとおりです。

前提条件 切り替えの時間間隔:500μs
切り替え回数:30,000回
検証結果 DIO-32DM3-PE:最大遅延 942μs→529μs
DIO-0808TY-USB:最大遅延 1148μs→821μs

AIO検証の結果

AIO検証では、ボードごとにサンプリングクロック周期とサンプリング回数を設定したうえで連続サンプリングを実行し、バッファオーバーフローが発生するまでの総サンプリング回数を計測しました。

さらに、サンプリングクロック周期から総サンプリング時間を算出しています。

高負荷状態では、ソフトリアルタイム設定を有効にした方が、バッファオーバーフローが発生するまでの総サンプリング時間が長くなる傾向が確認できました。
これは、負荷が高い状況でもサンプリング処理が途切れにくくなり、処理の遅れやばらつきの影響を受けにくい状態を作りやすいことを示します。
数値の詳細はホワイトペーパーで紹介していますが、代表例として、ソフトリアルタイム設定ありでオーバーフローまでの時間が数倍以上に伸びるケースが確認されています。
また、ソフトリアルタイムは「平均を速くする」ことよりも、負荷がかかった場面での遅れを抑え、処理が乱れにくい実行環境を作る方向で効果が出やすい点も明らかになりました。
制御品質を落としたくない一方で、専用のハードリアルタイム構成まで踏み込めない場合には、ソフトリアルタイム構成が現実的な選択肢になります。

まとめ|ソフトリアルタイムがもたらす開発現場の変化

従来もWindows環境でリアルタイム性を確保することは可能でしたが、RTOSの採用や拡張ソフトウェアを用いた専用構成が必要となり、追加コストや設計・導入の負担が課題でした。

一方、対応OSは限られるものの、Windows IoT Enterpriseではソフトリアルタイム機能が標準搭載され、“Windowsでリアルタイム性を確保する” という選択肢が現実的に扱えるようになりました。実運用では、CPUコアの割り当てやプロセス管理、検証の進め方を適切に設計することで、最大遅延の抑制や高負荷時の安定性向上が期待できます。
コンテックが実施した実機検証でも、DIOでは最大遅延の改善、AIOではバッファオーバーフローまでの時間延長という形で効果が確認できました。
「必要十分なリアルタイム性を、過剰なコストをかけずに確保したい」現場にとって、ソフトリアルタイムは実務上の有力な選択肢となります。Windows環境を活かしながら性能と安定性を両立させる新しい設計アプローチとして、今後も活用の幅はさらに広がっていくでしょう。

  • *
    なお、本検証において使用した産業用コンピュータおよび計測制御ボードは以下のとおりです。

VPC-3200

Intel Core プロセッサシリーズを搭載したBTO 仕様の産業向けコンピュータです。DDR5 メモリ16GB~128GBを搭載し、高い演算能力・描画能力を実現しています。多彩なインターフェイスを装備し、汎用パソコンOSベースの制御装置や情報端末など組み込み用途に幅広くご利用いただけます。

DIO-32DM3-PE

非絶縁LVTTLレベル(動作電圧3.3VDC)の入出力32点を搭載し、16点単位で入力/出力を選択できます。バスマスタ転送に対応し、最大50MHzでのサンプリングまたはジェネレーティングが可能です。

DIO-0808TY2-USB

USB2.0対応のデジタル入出力ターミナルです。非絶縁TTLレベル入力8点と非絶縁オープンコレクタ出力8点を搭載し、USBバスパワー駆動により外部電源を必要としません。

AIO-163202F-PE

高精度アナログ入出力、デジタル入出力、カウンタを搭載し、イベントコントローラによりイベントや外部制御信号を組み合わせた同期制御に対応します。

ADA16-32/2(PCI)F

高精度アナログ入出力、デジタル入出力、カウンタを搭載したPCIバス準拠のマルチファンクションボードです。制御信号を統合管理するハードウェア・イベントコントローラ、大容量データを高速転送するバスマスタ転送機能を搭載、高速・高精度なパソコン計測制御システムが実現します。

AIO-160802AY-USB

USB2.0対応のアナログ入出力ターミナルです。8chの16bitアナログ入力と2chの16bitアナログ出力を搭載し、USBバスパワーで動作します。FIFOまたはRING形式で使用できるバッファメモリを搭載しており、バックグラウンドでのアナログ入出力に対応します。

  • ※
    記載の会社名、製品名は、一般に各社の商標または登録商標です。

技術コラムへ戻る

技術者向けコラムの最新情報をお届けします

myCONTEC会員向けに、計測制御、産業IoT、ネットワーク、産業用PCなど技術コラムの最新情報をメールでお知らせしています。

新規ご登録

今すぐ登録

  • ※
    myCONTEC会員にご登録済みで、メルマガ配信をご希望の方は、ログイン後「会員情報変更」より設定変更ください。