ウォッチドッグタイマとは、マイコンやCPUのプログラムが正常に動作し続けているかを監視し、一定時間内に所定の処理が行われなかった場合に、リセットや安全処理を実行する機能です。英語のWatchdog Timerを略してWDTと呼ばれます。
組込機器では、ノイズ、ソフトウェア不具合、メモリ破損、処理の競合などによってプログラムが停止することがあります。ウォッチドッグタイマを使用すると、制御処理が停止した状態のまま機器が放置されることを防ぎやすくなります。
ハカルプラスでは、マイコン、入出力、通信、制御対象を確認し、監視周期、リセット後の出力状態、異常履歴を含むウォッチドッグ機能を検討します。
基本的な仕組み
ウォッチドッグタイマは、設定された時間を計測する独立したタイマです。プログラムが正常に動作している間は、タイマが満了する前に定期的なクリア処理を行います。
プログラム停止などによってクリア処理が実行されなくなると、タイマが満了し、マイコンをリセットします。このクリア操作は、ウォッチドッグの更新、キック、フィードなどと呼ばれます。
ソフトウェア停止の原因
- 無限ループへの入り込み
- 割込み処理から復帰できない
- メモリ破損や不正アドレスへのアクセス
- タスク間のデッドロック
- 処理負荷増加による応答停止
- 外来ノイズによるCPU誤動作
リセットによって一時的に復旧しても、原因が残っていれば再発するため、発生記録と原因調査が必要です。
内蔵型と外付け型
多くのマイコンにはウォッチドッグタイマが内蔵されています。追加部品が不要で、ソフトウェアから設定できます。
外付けウォッチドッグICは、CPUとは独立した電源・回路で監視できる点が特長です。マイコン内部のクロック停止や、内蔵監視回路まで影響する故障を考慮する場合に使用します。
監視時間の設定
監視時間が短すぎると、正常な処理時間のばらつきや一時的な高負荷でリセットが発生します。長すぎると、制御停止を検出するまでの時間が長くなります。
通常処理、通信、メモリ保存、起動処理などの最大時間を確認し、必要な余裕を持たせます。
更新処理の配置
メインループの先頭で無条件にウォッチドッグを更新すると、その後の重要処理が停止していても監視できない場合があります。
入力処理、制御演算、出力更新、通信など、必要な処理がすべて正常終了した後に更新する構成が有効です。
複数タスクの監視
リアルタイムOSを使用する場合は、一つのタスクだけが正常でも、別のタスクが停止している可能性があります。
各タスクが正常完了フラグを更新し、監視タスクがすべての状態を確認した後にウォッチドッグを更新します。応答が必要なタスクごとに個別タイムアウトを設ける場合もあります。
ウィンドウウォッチドッグ
ウィンドウウォッチドッグは、更新が遅すぎる場合だけでなく、早すぎる場合も異常とする方式です。
異常ループで更新処理だけが高速に繰り返される状態を検出できます。指定された時間範囲内でのみ更新を許可します。
リセット後の動作
ウォッチドッグによるリセット後は、出力端子が一時的に不定状態になったり、初期値へ戻ったりする場合があります。
モーター、ヒーター、バルブなどの出力が危険側へ動かないよう、ハードウェアのプルアップ・プルダウン、出力禁止回路、リレー構成を検討します。
安全側への移行
リセットによって制御が一時停止するため、設備を安全側へ移行させる必要があります。例えば、ヒーターをOFF、モーターを停止、供給ゲートを閉止します。
マイコンが再起動するだけでは安全を確保できない場合は、外部監視回路やリレーで出力を遮断します。
リセット原因の判別
マイコンには、電源投入、低電圧、外部リセット、ウォッチドッグなどのリセット原因を示すレジスタが用意されている場合があります。
起動時に原因を読み取り、不揮発性メモリへ保存します。ウォッチドッグリセット回数が増えている場合は、プログラムやノイズの調査を行います。
連続リセットへの対策
異常原因が残っていると、起動、停止、再起動を繰り返すリセットループになる可能性があります。
一定回数以上のウォッチドッグリセットが発生した場合は、通常動作を開始せず、限定機能や保守モードで起動する方法があります。
データ保存時の注意
不揮発性メモリへの書込み途中でリセットされると、データが破損する可能性があります。書込み中の状態を管理し、チェックサムや二重化データを使用します。
ウォッチドッグ監視を一時的に延長する場合もありますが、無効化したまま戻さない不具合を防ぐ設計が必要です。
デバッグ時の扱い
デバッガでプログラムを一時停止すると、ウォッチドッグタイマだけが動作し続けてリセットされることがあります。
開発時にはデバッグ停止中の動作設定を使用しますが、製品版では監視が有効になっていることを確認します。
定期試験
プログラムで意図的に更新を停止し、ウォッチドッグリセットが発生することを確認します。リセット後の出力、異常表示、履歴保存まで点検します。
外付け監視回路を使用する場合は、マイコンからの監視信号を停止して動作を確認します。
ハカルプラスの対応
ハカルプラスでは、マイコンの処理周期、制御対象、通信処理を確認し、ウォッチドッグタイマの監視時間と更新条件を設計します。
リセット後の安全出力、リセット原因記録、連続再起動制限、外部監視回路まで含めた組込機器の信頼性向上を検討します。
よくある質問
Q. ウォッチドッグタイマがあればソフトウェア不具合は解決しますか?
A. 停止状態から復旧しやすくなりますが、不具合原因そのものを修正する機能ではありません。
Q. ウォッチドッグはどこで更新すればよいですか?
A. 重要な処理がすべて正常終了したことを確認した後で更新するのが有効です。
Q. 内蔵ウォッチドッグと外付けICはどちらがよいですか?
A. 必要な信頼性、監視範囲、コストに応じて選定し、重要設備では併用する場合もあります。
Q. リセット後に自動運転を再開してよいですか?
A. 機械位置や出力状態を確認できない場合があるため、安全な初期状態と再開条件が必要です。
Q. ウォッチドッグによるリセット履歴を残せますか?
A. リセット原因レジスタを読み取り、不揮発性メモリや上位機器へ保存できます。
関連ワード
ブートローダとは、マイコンや組込機器の電源投入直後に動作し、メインプログラムの起動、動作確認、更新処理などを行う小規模なプログラムです。製品出荷後に通信や外部メモリからファームウェアを書き換える機能にも利用されます。
ブートローダを適切に設計すると、機器を分解せずにソフトウェア更新ができ、更新失敗時にも旧プログラムへ戻す構成を実現できます。一方、書換え途中の停電や不正データへの対策が不十分だと、機器が起動できなくなる可能性があります。
ハカルプラスでは、マイコン、メモリ容量、通信方式、保守方法を確認し、安全な起動とファームウェア更新に対応するブートローダを検討します。
電源投入後の動作
マイコンへ電源が入ると、あらかじめ決められたリセットベクタからプログラムを開始します。ブートローダを搭載する場合は、最初にブートローダが起動します。
ブートローダは、更新要求の有無、メインプログラムの正常性、起動条件などを確認し、問題がなければメインプログラムへ制御を移します。
主な役割
- メインプログラムの正常性確認
- ファームウェア更新モードへの移行
- 通信データの受信と書込み
- 書込みデータの検証
- 旧バージョンへの切戻し
- 異常時の保守モード起動
更新モードへの入り方
ブートローダの更新モードへ入る方法には、スイッチ入力、通信コマンド、特定の電源投入手順、メインプログラムからの要求などがあります。
通常運転中に誤って更新モードへ入らないよう、複数条件や認証を組み合わせます。現場保守では、操作しやすさと誤操作防止の両方が必要です。
通信による更新
USB、シリアル通信、Ethernet、CAN、無線通信などを利用し、新しいファームウェアを受信します。
通信速度だけでなく、通信断、パケット欠損、再送、更新時間を考慮します。長距離通信や無線では、途中で接続が切れることを前提に設計します。
外部メモリからの更新
SDカード、USBメモリ、外部フラッシュメモリなどへ更新ファイルを保存し、電源投入時に読み込む方式があります。
通信環境がない現場でも更新できますが、ファイル名、対象機種、バージョン、データ破損を確認する必要があります。
書込みデータの検証
受信したファームウェアが正しいかを、チェックサムやCRCで確認します。機種違いのデータを書き込まないよう、製品識別子、基板バージョン、対象マイコンも照合します。
セキュリティが必要な機器では、電子署名を検証し、正規に作成されたファームウェアだけを受け入れます。
停電対策
ファームウェア書換え中に停電すると、メインプログラムが途中までしか書き込まれず、起動できなくなる可能性があります。
ブートローダ領域を保護し、メインプログラムが不完全でも再び更新モードへ入れる構成とします。更新完了フラグは、全データの書込みと検証が終了した後に設定します。
二重バンク方式
十分なフラッシュメモリ容量がある場合、現在使用中のプログラムと新しいプログラムを別領域へ保存する二重バンク方式を使用できます。
新しいプログラムの書込みと検証が完了してから起動先を切り替えます。新バージョンが正常起動しない場合は、旧バージョンへ戻せます。
ロールバック
新しいファームウェアが起動しても、一定時間内に正常起動完了を記録できない場合は、旧プログラムへ戻す方法があります。
ウォッチドッグリセットの繰返しや、自己診断異常をロールバック条件として使用します。
ブートローダ領域の保護
ブートローダ自身が破損すると更新機能を失うため、通常の書換え処理から保護します。マイコンのメモリ保護機能や書込み禁止設定を利用します。
ブートローダ更新が必要な場合は、専用の製造・保守手順を設けます。
メインプログラムへの移行
メインプログラムへ制御を渡す前に、割込み、スタック、クロック、周辺回路などの状態を整えます。
ブートローダで使用した通信機能や割込みが残っていると、メインプログラムの初期化へ影響する場合があります。
バージョン管理
ブートローダ、メインプログラム、基板の各バージョンを管理します。更新ファイルに対象機種とバージョン情報を含め、誤った組合せを防止します。
更新日時、更新前後のバージョン、成否を不揮発性メモリへ保存すると、保守履歴として利用できます。
セキュリティ
通信経由でプログラムを書き換えられる機器では、不正なファームウェアの導入を防ぐ必要があります。
認証、暗号化、電子署名、更新権限などを使用します。更新用パスワードを製品共通の固定値だけに依存しない設計も重要です。
製造工程での利用
製造時にブートローダだけを書き込み、その後の検査工程で製品ファームウェアを通信書込みする方法があります。
製品ごとの設定値、シリアル番号、校正値を同時に登録する場合は、プログラム領域と設定領域を分けて管理します。
異常時の確認
更新モードへ入れない場合は、起動条件、通信設定、ブートローダ領域、電源を確認します。更新後に起動しない場合は、データ検証、対象機種、ベクタ設定を点検します。
更新途中で停止する場合は、通信タイムアウト、電源低下、メモリ書込みエラーを確認します。
ハカルプラスの対応
ハカルプラスでは、マイコンのメモリ構成、通信方式、現場での更新手順を確認し、ブートローダの起動条件と更新処理を設計します。
停電対策、CRC検証、二重バンク、ロールバック、更新履歴を組み合わせ、保守しやすい組込機器を検討します。
よくある質問
Q. ブートローダがなくても機器は動作しますか?
A. 動作できますが、製品出荷後のファームウェア更新や異常復旧が行いにくくなります。
Q. 更新中に停電すると機器は起動できなくなりますか?
A. 対策がない場合は起こり得ます。ブートローダ保護や二重バンクで復旧できる構成を検討します。
Q. USBメモリから更新できますか?
A. USBホスト機能とファイル読込み処理を備えれば、更新ファイルから書き換えられます。
Q. 古いバージョンへ戻せますか?
A. 旧プログラムを保持する二重バンク方式などを採用すれば、切戻しが可能です。
Q. 不正なファームウェアを防止できますか?
A. 電子署名や認証を用いて、正規の更新データだけを受け入れる構成にできます。
関連ワード
ファームウェア更新とは、マイコンや組込機器に保存されている制御プログラムを書き換え、機能追加、不具合修正、通信仕様変更、セキュリティ対策などを反映する作業です。基板交換を行わずに製品機能を改善できる点が特長です。
更新方法には、保守用端子からの直接書込み、USB・シリアル・Ethernet通信、SDカードやUSBメモリ、無線通信などがあります。更新途中の停電、通信断、誤ったファイルの使用に備えた設計が重要です。
ハカルプラスでは、製品の設置環境、通信機能、保守体制を確認し、安全性と作業性を考慮したファームウェア更新方式を検討します。
ファームウェア更新の目的
- ソフトウェア不具合の修正
- 機能や設定項目の追加
- 通信先やプロトコルへの対応
- センサや部品変更への対応
- セキュリティ上の問題修正
- 操作性や制御性能の改善
更新内容によっては、設定値や通信仕様が変わるため、更新前後の互換性を確認します。
製造時の書込みと現場更新
製造工程では、書込み器を基板へ接続し、マイコンへ直接ファームウェアを書き込む方法が一般的です。
製品出荷後の現場更新では、筐体を開けずに更新できる通信方式や外部メモリ方式が適しています。保守員の技術レベルや現場環境も考慮します。
有線通信による更新
USB、RS-232C、RS-485、Ethernetなどを使用し、パソコンや専用ツールから更新します。
有線通信は比較的安定していますが、接続ケーブル、通信設定、ドライバ、操作手順を整備する必要があります。設備稼働中に誤接続しないよう、保守用ポートの扱いも決めます。
外部メモリによる更新
SDカードやUSBメモリへ更新ファイルを保存し、機器へ挿入して書き換える方法です。パソコンを設備付近へ持ち込めない場合に有効です。
対象機種、ファイル名、バージョンを照合し、別製品用のファイルを誤って使用しないようにします。
遠隔更新
Ethernet、LTE、無線LANなどを利用し、遠隔地からファームウェアを配信する方法です。多数の設置機器を効率的に更新できます。
通信断、不正アクセス、更新タイミング、機器ごとの進捗管理が必要です。更新中に設備を停止できる時間帯を設定します。
更新前の確認
更新を開始する前に、対象機種、現在バージョン、電源状態、通信状態、空きメモリを確認します。
制御中や重要なデータ書込み中には更新を開始せず、機器を安全な停止状態へ移行します。
データの完全性確認
更新ファイルが通信や保存中に破損していないかを、チェックサム、CRC、ハッシュ値などで確認します。
ファイル全体の検証が完了してから書込みを確定します。分割受信する場合は、各ブロックの順序と欠損も確認します。
対象機種の照合
同じ外観の製品でも、基板、マイコン、メモリ容量が異なる場合があります。更新ファイル内に製品ID、基板バージョン、対応ハードウェア情報を持たせます。
一致しない場合は更新を開始せず、画面や更新ツールへ理由を表示します。
停電・通信断への対策
書換え途中で電源や通信が失われると、プログラムが不完全になる可能性があります。
ブートローダ領域を保護し、再起動後に再更新できる構成とします。二重バンク方式では、新しいプログラムを別領域へ書き込み、検証後に起動先を切り替えます。
更新後の確認
新しいファームウェアを起動した後、自己診断、メモリ確認、入出力初期化、設定値読込みを行います。
一定時間以内に正常起動完了が確認できない場合は、旧バージョンへ戻すロールバック機能を使用することがあります。
設定値の引継ぎ
ファームウェア更新後も、校正値、通信設定、ユーザー設定などを保持する必要があります。
設定データの形式が変わる場合は、旧形式から新形式へ変換します。変換できない場合に備え、初期値への復元とバックアップ手順を用意します。
バージョン管理
ファームウェアには一意のバージョン番号を付けます。機能追加、不具合修正、試験版などを区別し、どの製品へどの版を適用したかを管理します。
更新日時、更新前後のバージョン、作業者、更新結果を保存すると、保守履歴として利用できます。
更新ツール
パソコン用更新ツールでは、機器検出、ファイル選択、対象照合、進捗表示、結果保存を行います。
作業者が誤った操作をしにくい画面構成とし、更新中にケーブルを抜かないことなどを明確に表示します。
セキュリティ
遠隔更新やネットワーク接続機器では、正規の更新ファイルであることを確認する必要があります。
電子署名、暗号化通信、機器認証、操作権限を用いて、不正なファームウェアや改ざんデータの導入を防ぎます。
更新失敗時の復旧
更新が失敗した場合は、再更新、旧版起動、保守モードへの移行などを行います。
現場で復旧できない場合に備え、書込み端子や専用治具による直接復旧手段を残すことも重要です。
試験
正常更新だけでなく、通信断、停電、誤ファイル、容量不足、途中キャンセルなどの異常条件を試験します。
更新後は、主要機能、入出力、通信、設定値、校正値が正常であることを確認します。
ハカルプラスの対応
ハカルプラスでは、製造、現地保守、遠隔保守の運用を確認し、適切なファームウェア更新方法を設計します。
ブートローダ、更新ツール、CRC、二重バンク、設定移行、履歴管理を組み合わせ、更新失敗から復旧できる構成を検討します。
よくある質問
Q. ファームウェア更新中も設備を運転できますか?
A. 制御プログラムを書き換えるため、原則として設備を安全に停止してから更新します。
Q. 更新すると設定値は消えますか?
A. 設定領域を分離し、データ形式を適切に管理すれば引き継げます。
Q. 遠隔から更新できますか?
A. 通信機能、認証、停電・通信断対策を備えれば遠隔更新が可能です。
Q. 更新失敗時に旧バージョンへ戻せますか?
A. 二重バンクやバックアップ領域を設ければ、旧版へ戻せる構成にできます。
Q. 誤った製品用のファイルを防止できますか?
A. 製品ID、基板バージョン、対象マイコンを更新前に照合して防止します。
関連ワード
リアルタイムクロックとは、機器の電源が切れている間も、年、月、日、時、分、秒などの日時を継続して保持するための時計回路です。英語のReal-Time Clockを略してRTCと呼ばれます。
組込機器では、計測データ、異常履歴、操作履歴、通信記録へ正しい日時を付けるために使用されます。バックアップ電池やスーパーキャパシタを備えることで、主電源が切れても時計を動かし続けます。
ハカルプラスでは、必要な時刻精度、停電保持時間、通信環境を確認し、RTC、バックアップ電源、時刻補正、履歴保存を含む構成を検討します。
RTCの主な役割
- 計測データへ日時を付与する
- 異常発生・復旧時刻を記録する
- 定時処理やスケジュール運転を行う
- 保守期限や累積運転期間を管理する
- 複数機器の記録時刻をそろえる
日時情報が不正確だと、異常の発生順序や製造実績を正しく追跡できません。
RTCの基本構成
RTCは、低消費電力の時計回路、発振子、日時レジスタ、バックアップ電源などで構成されます。
マイコンに内蔵されている場合と、専用RTC ICを外付けする場合があります。外付けICは、主電源から独立して動作させやすく、高精度補正機能を持つ製品もあります。
水晶発振子
RTCでは一般に32.768kHzの水晶振動子が使用されます。この周波数は2の累乗で分周しやすく、1秒の基準を作りやすいためです。
水晶振動子の精度は温度、負荷容量、基板配線によって変化します。指定された部品と回路定数を使用します。
時刻精度
RTCの時計は完全に正確ではなく、発振周波数の誤差によって少しずつ進んだり遅れたりします。
例えば、誤差が20ppmの場合、理論上は1日あたり約1.7秒ずれる可能性があります。長期間補正しない機器では、月単位・年単位で大きな差になります。
温度による影響
水晶振動子の周波数は温度によって変化します。屋外機器、冷凍設備、発熱の大きい筐体では、周囲温度変化による時刻ずれが大きくなる場合があります。
高い精度が必要な場合は、温度補償型RTCや定期的な時刻同期を使用します。
バックアップ電源
主電源が切れた際にRTCを動作させるため、コイン電池、充電池、スーパーキャパシタなどを使用します。
- コイン電池:長期間保持しやすいが交換が必要
- 充電池:充電して繰り返し使用できる
- スーパーキャパシタ:交換不要にしやすいが保持時間が比較的短い
必要な停電保持時間、保守周期、使用温度から選定します。
バックアップ時間
バックアップ時間は、電池容量、RTC消費電流、自己放電、周囲温度によって変わります。
機器の保管期間や停電期間を考慮し、必要な余裕を持たせます。長期間電源を入れずに保管する製品では、出荷から設置までの期間も含めます。
電池切れの検出
バックアップ電圧が低下すると、停電中に時刻が停止したり初期値へ戻ったりする可能性があります。
電圧低下フラグや電池電圧を監視し、交換時期を画面や通信で通知します。電池交換後は日時設定が必要になる場合があります。
日時の初期設定
製造時、設置時、電池交換時には正しい日時を設定します。タッチパネル、パソコン用ツール、通信コマンドなどを使用します。
存在しない日付や範囲外の値を受け付けないよう、入力値を確認します。年月日の形式や12時間・24時間表示も統一します。
うるう年と月末処理
RTC ICが日付計算へ対応している場合でも、対応年の範囲を確認します。ソフトウェア側で曜日や経過日数を計算する場合は、うるう年を正しく処理します。
2099年まで対応する機器など、製品寿命と時刻管理範囲を確認します。
時刻同期
ネットワークへ接続する機器では、NTPサーバー、上位PLC、産業用コンピュータなどから定期的に時刻を補正できます。
GPS・GNSSを利用すると、インターネットへ接続せず高精度な時刻を取得できます。複数設備の異常発生順序を比較する場合に有効です。
時刻変更時の注意
現在時刻を大きく戻すと、同じ日時の履歴が重複する可能性があります。進める場合は、一定期間のデータが存在しない状態になります。
履歴には通し番号を付ける、時刻変更操作を記録するなど、後から判別できる仕組みを設けます。
タイムゾーンと夏時間
国内専用機器では日本標準時だけを扱うことが多いですが、海外向け製品やクラウド連携ではタイムゾーンを考慮します。
内部ではUTCで保存し、表示時に現地時間へ変換する方法があります。夏時間へ対応する場合は、時刻の重複・欠落に注意します。
データロギングへの利用
温度、圧力、重量、電力などの計測データへRTC時刻を付与し、SDカードや内部メモリへ保存します。
一定周期で記録する場合、処理時間によって記録時刻が徐々にずれないよう、RTCの時刻を基準に次回記録を設定します。
異常履歴への利用
異常発生、確認、復旧の各時刻を記録すると、停止時間や対応時間を集計できます。
複数機器で履歴を比較する場合は、各機器の時計を同期し、時刻精度をそろえることが重要です。
電源切替時の回路設計
主電源とバックアップ電源の切替時にRTC電源が途切れないようにします。逆流、過充電、電池消耗を防ぐ回路も必要です。
充電できないコイン電池へ充電電流を流さないよう、電池種類と回路を一致させます。
異常時の確認
時計がリセットされる場合は、バックアップ電池、電池ホルダ、切替回路、RTC電源を確認します。時刻が大きくずれる場合は、水晶振動子、温度、補正設定を点検します。
通信同期後もずれる場合は、同期周期、タイムゾーン、上位機器側の時刻を確認します。
ハカルプラスの対応
ハカルプラスでは、必要な時刻精度、保持期間、設置環境を確認し、RTC IC、バックアップ電源、時刻設定方法を選定します。
データロギング、異常履歴、NTP・GNSS時刻同期、電池低下警報まで含む組込機器の時刻管理を検討します。
よくある質問
Q. マイコンだけで時刻を管理できますか?
A. 電源が入っている間は可能ですが、停電中も保持するにはRTCとバックアップ電源が必要です。
Q. RTCの時計は少しずつずれますか?
A. 水晶の誤差や温度変化によってずれるため、必要に応じて定期的に時刻同期します。
Q. コイン電池は交換が必要ですか?
A. 使用期間と消費電流に応じて交換が必要です。電圧低下を監視できる構成もあります。
Q. インターネットがなくても時刻同期できますか?
A. 上位PLC、パソコン、GPS・GNSSなどを利用して同期できます。
Q. 時刻を変更した履歴を残せますか?
A. 変更前後の時刻、操作者、変更日時を不揮発性メモリや上位システムへ保存できます。
関連ワード
マイコン制御とは、マイクロコンピュータを製品や装置へ組み込み、センサ入力の処理、演算、表示、通信、データ保存、外部機器の制御などをソフトウェアで実行する技術です。マイコンは、CPU、メモリ、入出力機能、タイマー、通信機能などを小型の半導体へ集約したもので、計測機器、計量機器、表示器、警報器、専用制御装置などに広く使用されています。
マイコンが普及する以前は、判定、タイマー、演算、表示切替などをリレー、トランジスタ、論理回路などで構成していました。処理が複雑になるほど部品や配線が増え、回路変更も難しくなります。マイコンを採用すると、処理の一部をソフトウェアへ置き換えられ、小型化、省電力化、多機能化に加え、通信や履歴保存なども実現しやすくなります。
マイコン制御の仕組み
マイコンは、センサ、スイッチ、接点などから入力を受け取り、あらかじめ書き込まれたプログラムに従って演算・判定し、その結果を表示器、ブザー、リレー、通信回路などへ出力します。
例えば計量機器では、ロードセルの微小な信号をアナログ回路で増幅し、A/D変換器で数値へ変換します。マイコンは、その値から重量を演算し、ゼロ補正、風袋引き、安定判定、上下限判定、警報出力などを実行します。
一般的な組み込みソフトでは、入力確認、演算、表示更新、出力処理を一定周期で繰り返します。高速な計測、正確な時間管理、通信受信などは、タイマーや割り込みを利用して優先的に処理します。
マイコンを構成する主な機能
演算・判定
センサ値を物理量へ換算し、補正、平均化、フィルター処理、積算、最大値・最小値の記録、設定値との比較を行います。センサ断線や計測範囲外などの異常も判定できます。
入力・出力
接点、パルス、電圧、電流、センサ信号などを入力し、ランプ、ブザー、リレー、パルス、アナログ信号などを出力します。外部機器と電圧や信号形式が異なる場合は、増幅、絶縁、保護を行う回路を介して接続します。
表示・操作
液晶やLEDへ計測値、設定値、運転状態、警報内容を表示します。押しボタン、タッチスイッチ、ロータリースイッチなどから操作を受け付け、設定変更や画面切替を行います。
通信
シリアル通信、Modbus、Ethernet、無線通信などを使用し、PLC、パソコン、サーバー、他の計測機器とデータを送受信します。計測値の送信、設定変更、時刻合わせ、遠隔監視、ファームウェア更新などに利用されます。
データ保存
内部の不揮発性メモリ、SDカード、USBメモリなどへ、設定値、計測結果、積算値、警報履歴を保存します。保存件数、書込み周期、停電時のデータ保護を考慮して構成します。
主な用途
- 重量、電力、温度、流量などの計測・演算
- 設定値との比較による警報や接点出力
- 表示器、操作キー、ブザーの制御
- パルス、アナログ信号、センサ信号の入出力
- 計測値、積算値、警報履歴の保存
- PLC、パソコン、サーバーとの通信
- プリンターへの計測・計量結果の出力
マイコン制御は、決められた機能を小型の製品内で完結させたい場合に適しています。同じ基板でも、ソフトウェアや設定を変更することで、演算方法、表示内容、通信データ、警報条件などを調整できる場合があります。
PLC制御との違い
PLCは、工場設備や製造ラインの制御を目的として設計された制御機器です。入出力ユニットを組み合わせやすく、搬送、計量、製造工程などのシーケンス制御や設備改造に適しています。
マイコン制御は、製品内部へ専用の基板とソフトウェアを組み込み、決められた機能を実行する用途に適しています。回路、外形、消費電力、操作方法まで製品専用に設計できるため、小型化や量産に向いています。
実際には、マイコン搭載機器が重量や電力を計測し、測定値をPLCへ送信して設備全体を制御するなど、両者を組み合わせます。
設計上のポイント
ハードウェアとソフトウェアを適切に分担する
信号増幅、絶縁、電源保護、過電流保護、ノイズ除去、安全停止などは、ソフトウェアだけでは確保できません。製品に必要な応答速度、安全性、コストを踏まえ、回路で実現する処理とソフトウェアで実現する処理を分けます。
安全に関わる出力は、マイコンが正常に動作していることだけに依存させず、必要に応じて専用回路、リレー、ヒューズなどを組み合わせます。
処理周期と応答時間を設計する
計測周期、表示更新、通信、データ保存を同時に処理するため、それぞれに必要な応答時間を整理します。重い通信処理やメモリ書込みを待ち処理で実装すると、計測や出力の更新が遅れる場合があります。
優先度の高い計測や保護処理はタイマー割り込みなどで実行し、通信や保存は別の処理へ分けます。処理時間を測定し、最悪条件でも必要周期を守れることを確認します。
メモリ容量と書込み寿命を考慮する
使用するマイコンによって、プログラム容量、RAM、保存領域、通信機能が異なります。将来の機能追加や通信仕様変更も考慮し、一定の余裕を持って選定します。
不揮発性メモリには書込み回数の上限があります。積算値などを短い周期で毎回保存すると寿命を縮めるため、一定時間ごとに保存する、値が変化した場合だけ保存する、複数領域へ分散して書き込むなどの方法を検討します。
電気的ノイズへ対策する
工場では、モーター、インバーター、電磁弁、リレーなどからノイズが発生します。ノイズが回路へ入ると、計測値の乱れ、誤入力、通信異常、マイコンの再起動などにつながります。
基板パターン、接地、シールド、絶縁、電源フィルター、サージ保護を検討し、ソフトウェアでも入力の連続確認や異常値除外を行います。対策後は、実際の使用環境を想定した試験が重要です。
計測値の補正とフィルターを行う
センサ信号には、ばらつきやノイズが含まれます。複数回の測定値を平均する移動平均などで表示を安定させられますが、平均回数を増やすほど応答が遅くなります。
例えば、直近n回の測定値をx1からxnとすると、平均値x̄は次の式で求められます。
x̄=(x1+x2+…+xn)÷n
ノイズ低減と応答速度のどちらを優先するかを用途に応じて決めます。急激な変化を検出する警報処理では、表示用とは別の値を使用する場合もあります。
異常時は安全側へ移行する
ソフトウェアの停止、電源電圧低下、メモリ異常、センサ断線、通信断などが起きても、危険な出力を継続しない設計が必要です。ウォッチドッグタイマーで処理停止を検出し、マイコンを再起動させる方法があります。
再起動時は、出力を一度安全な状態にし、設定値、センサ状態、通信状態を確認してから通常動作へ戻します。設備を自動復帰させるか、作業者の確認を必要とするかは、接続先と安全性に応じて決定します。
通信異常とデータ欠落への対応
PLCや上位システムとの通信が切れた場合、最後に受信した指令を継続するのか、出力を停止するのかを決めます。古い指令を使い続けると危険な用途では、一定時間通信がない場合に出力を安全側へ切り替えます。
データ送信では、同じデータの重複送信や欠落を防ぐため、通番、時刻、チェックサム、応答確認などを使用します。通信復旧後に未送信データを再送する場合は、保存容量と再送順序を設計します。
停電とデータ保存
停電時に設定値や積算値を保持するには、不揮発性メモリへ保存します。ただし、書込み途中に電源が切れると、データが不完全になる可能性があります。
データ本体に加えて識別番号やチェック値を保存し、起動時に正常性を確認する方法があります。複数世代を保存し、最新データが破損している場合に一つ前のデータを使用する構成も検討します。
電源電圧低下を早めに検出し、残された時間で必要データを保存する方法もあります。保存に必要な時間と電源保持時間を確認する必要があります。
ソフトウェアの試験と変更管理
組み込みソフトの試験では、通常操作だけでなく、センサ断線、通信断、メモリ異常、電源の瞬断、設定範囲外、連続操作なども確認します。異常が同時に発生した場合の動作も重要です。
プログラムを変更すると、計測、表示、通信、保存など複数の機能へ影響する可能性があります。ソフトウェアの版、変更内容、対象製品、試験結果を管理し、変更箇所だけでなく関連機能も再確認します。
現地で更新する場合は、更新中の停電、誤ったファイルの書込み、更新失敗からの復旧方法も準備します。更新後は設定値や校正値が正しく引き継がれていることを確認します。
部品変更と既存製品の更新
マイコンやメモリ、表示器、通信部品が生産終了となり、代替部品へ変更する場合があります。端子配置や電気仕様が似ていても、処理速度、周辺機能、起動時間、メモリ構成が異なることがあります。
部品変更時は回路だけでなく、ソフトウェア、製造検査、通信互換性、ノイズ性能まで確認します。既存製品との接続互換性が必要な場合は、通信データ形式や応答時間を維持できるかも検証します。
ハカルプラスの対応
ハカルプラスでは、計測機器や計量機器を中心に、マイコンを搭載した製品の回路・組み込みソフトウェアを設計しています。製品仕様に応じて、マイコン、電源、アナログ入力、接点入出力、表示、操作、通信インターフェースなどを構成します。
重量、電力、温度、パルスなどの計測処理に加え、補正演算、表示、警報出力、プリンター制御、SDカードへの保存、PLCやパソコンとの通信などを組み込むことができます。
通信断、停電、センサ異常、メモリ異常などを考慮したフェイルセーフ動作や、データの欠落・重複を抑える処理も、製品用途を確認して設計します。
既存製品の機能追加、部品生産終了に伴う基板更新、通信仕様変更、ソフトウェア改修についても、処理能力、メモリ容量、回路互換性、既存機器への影響を確認して対応を検討します。
よくある質問
Q. 既存のマイコン製品へ新しい機能を追加できますか?
A. プログラム容量、RAM、処理時間、入出力端子に余裕があれば追加できる場合があります。新しいセンサや通信回路が必要な場合は、基板変更も検討します。
Q. マイコンが動作しなくなった場合はどのように復旧しますか?
A. ウォッチドッグタイマーなどで処理停止を検出し、自動再起動させる方法があります。再起動後は出力を安全状態とし、設定値やセンサ状態を確認してから復帰します。
Q. 停電時に設定値や積算値が壊れることはありますか?
A. 書込み途中に停電すると破損する可能性があります。複数世代保存、チェック値、電圧低下検出などを組み合わせて保護します。
Q. PLCとの通信が切れた場合も運転を続けられますか?
A. 製品用途によって異なります。単独運転を継続する構成と、一定時間通信がなければ出力を停止する構成があり、安全性を考慮して決定します。
Q. 生産終了したマイコンを別品へ置き換えられますか?
A. 置き換えられる場合がありますが、回路、ソフトウェア、処理速度、通信、ノイズ性能の再確認が必要です。必要に応じて基板とソフトを合わせて更新します。