Technology
μC3
(μC3:マイクロシースリー)
μC3(マイクロ・シー・スリー)は、イーフォース株式会社が提供する組込み機器向けのリアルタイムOS(RTOS)です。μITRON仕様を基に設計されており、マイコンを搭載した計測機器、制御機器、通信機器などで利用されます。
一般的なパソコン用OSとは異なり、限られたCPU性能やメモリ容量の中で、複数の処理を優先順位に従って実行し、必要な処理を決められた時間内に完了させることを重視します。
ハカルプラスでは、一部の計量制御盤製品にμC3を採用し、重量計測、入出力制御、通信、表示、異常監視、データ保存などを組み合わせた組込みソフトウェアを開発しています。
リアルタイムOSの役割
リアルタイムOSは、CPUの演算速度を単純に高めるものではありません。複数の処理をタスクとして分割し、重要度や処理周期に応じて実行順序を管理するためのOSです。
計量制御機器では、重量値の取得、演算、表示更新、通信、警報監視、実績保存などを並行して処理します。通信や保存に時間がかかった場合でも、計量や制御に関係する処理を優先して実行できるように設計します。
μITRON仕様との関係
μITRONは、日本で策定された組込みシステム向けリアルタイムOSの仕様です。特定のOS製品名ではなく、タスク管理、同期、通信、時間管理などの基本機能とインターフェースを定めています。
μC3はμITRON仕様を基にしたOSであり、μITRON系の設計方法や開発経験を活用しやすいことが特長です。
ただし、対応する仕様、追加機能、設定方法、開発ツールはOS製品ごとに異なります。別のμITRON系OSから移行する場合は、APIや動作の違いを確認します。
μC3の主な機能
タスク管理
処理を複数のタスクへ分け、各タスクの実行状態と優先順位を管理します。
例えば、重量値の取得や出力制御を高い優先順位にし、画面更新や履歴保存を低い優先順位にすることで、制御の応答性を確保します。
タスク間の同期・通信
セマフォ、イベントフラグ、データキューなどを使用し、複数タスクの実行順序やデータの受け渡しを管理します。
計測タスクで取得した重量値を、表示、通信、保存の各タスクへ安全に渡すといった処理に利用します。
時間管理
周期処理、一定時間の待機、通信応答のタイムアウトなどを管理します。センサの定周期読込み、表示更新、一定時間ごとの保存などに使用します。
割込み処理との連携
タイマー、通信受信、外部入力などの割込みを受け、必要なタスクを起動します。
割込み処理では必要最小限の処理だけを行い、演算、通信解析、ファイル保存などの時間がかかる処理はタスク側で実行します。
タスク構成の例
計量制御機器では、機能と処理周期に応じて次のようなタスクへ分割できます。
- 重量信号の取得・演算
- 計量シーケンスの制御
- 接点入力・出力の監視
- 表示器・操作画面の更新
- PLC・上位システムとの通信
- 設定値・補正値の管理
- 警報・異常状態の監視
- 実績データの保存
通信処理や記録媒体への書込みが遅れた場合でも、計量周期や出力制御へ影響しないように、タスク間の役割と優先順位を決めます。
ミドルウェアとの組合せ
μC3単体ですべての機能を実現するのではなく、用途に応じてミドルウェアやデバイスドライバーを組み合わせます。
- TCP/IPなどのネットワーク通信
- シリアル通信・USB通信
- ファイルシステム
- SDカード・USBメモリへの保存
- Webサーバー機能
- 表示器・センサ・入出力機器の制御
マイコン、コンパイラ、OS、ミドルウェアの対応状況を確認し、処理速度、RAM、ROM、ストレージ容量を考慮して構成します。
開発時に重要な設計項目
優先順位の設定
優先順位が不適切だと、重要な処理が遅れたり、低優先度タスクが長時間実行されなかったりします。必要な応答時間、周期、処理時間を整理して決定します。
共有データの排他制御
複数のタスクが同じデータを同時に読み書きすると、途中の値を参照するなどの不整合が発生する可能性があります。セマフォなどを利用して排他制御を行います。
スタック容量の管理
各タスクのスタック容量が不足すると、他のメモリ領域を破壊し、原因を特定しにくい異常動作につながります。
実機で最大使用量を確認し、割込みや関数呼出しの深さも考慮して余裕を確保します。
処理時間の確認
高優先度タスクが長時間CPUを占有すると、他の処理が実行できません。処理時間を測定し、必要に応じて演算や通信処理を分割します。
異常発生時の設計
組込み機器では、通信停止、センサ異常、記録媒体のエラー、メモリ不足、タスク停止などを想定します。
- 通信タイムアウト後に再接続する
- 異常値を制御に使用しない
- 保存失敗時に警報を出力する
- ウォッチドッグで動作停止を検出する
- 必要に応じてタスクや装置を再起動する
- 安全に関係する出力を安全側へ移行する
タスクだけを再起動するか、装置全体を再起動するかは、異常の影響範囲と復旧後の状態整合性を考慮して決定します。
ハカルプラスのμC3対応
ハカルプラスでは、一部の計量制御盤製品にμC3を採用し、計量、制御、通信、表示、記録を組み合わせた組込みソフトウェアを開発しています。
タスク構成や優先順位の設計だけでなく、重量信号処理、割込み、入出力、PLC通信、記録媒体、異常監視、ウォッチドッグまで含めて構築します。
OS単体ではなく、マイコン、回路、計量センサ、通信インターフェース、表示器などを含め、製品全体が安定して動作するように設計・評価します。
よくある質問
Q. μC3を採用すれば処理が高速になりますか?
A. CPU自体が高速になるわけではありません。処理をタスクへ分け、重要な処理を優先することで、必要な応答時間を確保しやすくなります。
Q. 優先順位を高く設定すれば処理遅れを防げますか?
A. 高優先度タスクの処理が長すぎると、他のタスクが実行できなくなります。優先順位だけでなく、各処理の実行時間も管理する必要があります。
Q. 通信やSDカードへの保存中も計量処理を継続できますか?
A. 計量、通信、保存を別タスクに分け、優先順位やデータ受渡しを適切に設計すれば、保存処理による計量への影響を抑えられます。
Q. タスクが停止した場合は自動復旧できますか?
A. ウォッチドッグや監視タスクで異常を検出し、タスク再起動や装置再起動を行う構成を検討できます。復旧後のデータと出力状態も考慮します。
Q. 別のμITRON系OSからμC3へ移行できますか?
A. 移行できる場合がありますが、API、コンフィグレーション、割込み、ドライバー、ミドルウェアの違いを確認し、実機で再評価する必要があります。
関連ワード
同じカテゴリの『ハカル技術辞典』を見る