ブートローダとは、マイコンや組込機器の電源投入直後に動作し、メインプログラムの起動、動作確認、更新処理などを行う小規模なプログラムです。製品出荷後に通信や外部メモリからファームウェアを書き換える機能にも利用されます。
ブートローダを適切に設計すると、機器を分解せずにソフトウェア更新ができ、更新失敗時にも旧プログラムへ戻す構成を実現できます。一方、書換え途中の停電や不正データへの対策が不十分だと、機器が起動できなくなる可能性があります。
ハカルプラスでは、マイコン、メモリ容量、通信方式、保守方法を確認し、安全な起動とファームウェア更新に対応するブートローダを検討します。
電源投入後の動作
マイコンへ電源が入ると、あらかじめ決められたリセットベクタからプログラムを開始します。ブートローダを搭載する場合は、最初にブートローダが起動します。
ブートローダは、更新要求の有無、メインプログラムの正常性、起動条件などを確認し、問題がなければメインプログラムへ制御を移します。
主な役割
- メインプログラムの正常性確認
- ファームウェア更新モードへの移行
- 通信データの受信と書込み
- 書込みデータの検証
- 旧バージョンへの切戻し
- 異常時の保守モード起動
更新モードへの入り方
ブートローダの更新モードへ入る方法には、スイッチ入力、通信コマンド、特定の電源投入手順、メインプログラムからの要求などがあります。
通常運転中に誤って更新モードへ入らないよう、複数条件や認証を組み合わせます。現場保守では、操作しやすさと誤操作防止の両方が必要です。
通信による更新
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. 変更前後の時刻、操作者、変更日時を不揮発性メモリや上位システムへ保存できます。
関連ワード
不揮発性メモリとは、機器の電源を切っても保存したデータが失われない記憶媒体です。組込機器では、設定値、校正値、積算値、異常履歴、製品情報など、再起動後も保持する必要があるデータの保存に使用されます。
代表的な不揮発性メモリには、フラッシュメモリ、EEPROM、FRAM、MRAMなどがあります。種類によって、書換え可能回数、保存容量、書込み速度、消費電力、データ保持期間が異なります。
ハカルプラスでは、保存するデータ量、更新頻度、停電時の動作、製品寿命を確認し、適切な不揮発性メモリと保存方式を検討します。
不揮発性メモリの主な用途
- 機器の設定値や動作条件
- ロードセルなどの校正値
- 積算流量、積算電力量、累積運転時間
- 異常履歴や操作履歴
- 製造番号、製品ID、基板バージョン
- ファームウェア更新用データ
電源投入時には、不揮発性メモリから必要なデータを読み出し、制御処理へ反映します。
フラッシュメモリ
フラッシュメモリは、大容量のデータを比較的低コストで保存できる記憶媒体です。マイコン内蔵フラッシュ、外付けシリアルフラッシュ、SDカード、USBメモリなどに利用されています。
一般に、データを書き換える前に一定単位で消去する必要があります。1バイトだけ変更したい場合でも、セクタやページ単位の処理が必要になることがあります。
EEPROM
EEPROMは、比較的小容量の設定値や校正値の保存に適しています。フラッシュメモリより細かい単位で書き換えられる製品が多く、設定変更の保存に使用されます。
ただし、書換え可能回数には上限があります。頻繁に更新する積算値などを毎回書き込むと、製品寿命より早く書換え限界へ達する可能性があります。
FRAMとMRAM
FRAMやMRAMは、一般的なフラッシュメモリやEEPROMより書込み速度が速く、書換え可能回数が多い不揮発性メモリです。
頻繁に更新する積算値や履歴に適していますが、容量、価格、入手性を確認する必要があります。製品の長期供給性も選定条件となります。
書換え寿命
不揮発性メモリには、同じ場所を書き換えられる回数の上限があります。例えば、1秒ごとに同じアドレスへ積算値を書き込むと、短期間で寿命へ達する場合があります。
書込み頻度を減らす、複数の領域を順番に使用する、書換え耐久性の高いメモリを選ぶなどの対策が必要です。
ウェアレベリング
ウェアレベリングとは、同じ領域へ書込みが集中しないよう、複数のメモリ領域へ書込み位置を分散する方法です。
最新データの位置を管理し、順番に別領域へ保存します。全領域を使い切ったら、古い領域を消去して再利用します。
停電時のデータ保存
運転中の積算値や工程状態を停電時に保存する場合、電源電圧低下を検出し、電源が完全に失われる前に書込みを完了させます。
コンデンサやバックアップ電源で必要な保持時間を確保します。停電検出から書込み完了までに必要な時間を実測し、余裕を持たせます。
定期保存
停電直前だけに保存を行うと、電源回路故障や急激な電圧低下では間に合わない場合があります。
一定時間ごと、一定量変化するごと、工程完了ごとに定期保存し、停電時には最新差分だけを書き込む構成が有効です。
データ破損への対策
書込み途中に電源が失われると、一部のデータだけが更新され、内容が不整合になる可能性があります。
チェックサムやCRCを付加し、読み出し時にデータが正常か確認します。二つの領域へ交互に保存し、更新完了フラグがある方を採用する方法もあります。
二重化保存
同じデータを二つ以上の領域へ保存すると、一方が破損してももう一方から復旧できます。
単純に同じデータを同時に書き込むと、停電時に両方が破損する可能性があります。旧データを残したまま新データを書き、検証後に有効データを切り替えます。
データ形式とバージョン管理
ファームウェア更新によって設定項目やデータ構造が変わる場合があります。不揮発性メモリへ保存するデータにバージョン番号を持たせ、旧形式から新形式へ変換します。
変換できない場合は、安全な初期値へ戻し、校正値や重要設定を別領域から復元できる構成を検討します。
初期値の扱い
製造直後やメモリ異常時には、保存データが存在しない場合があります。その際に使用する初期値をあらかじめ定めます。
初期値で設備を自動運転すると危険な場合は、設定未完了として運転を禁止し、作業者へ設定操作を求めます。
校正値の保護
ロードセルやセンサの校正値は、誤って消去・変更すると計測精度へ影響します。通常設定とは別の領域へ保存し、変更権限を制限します。
校正日時、校正者、旧値、新値も保存すると、保守履歴として利用できます。
積算値の保存
積算流量、運転時間、生産数量などは頻繁に変化します。毎回保存するのではなく、一定量増加した場合や一定時間ごとに保存します。
停電後に少量の差が失われても問題ないか、完全保持が必要かによって保存周期を決めます。
異常履歴の保存
異常履歴は、循環バッファとして古いデータから上書きする方法があります。保存件数、1件あたりのデータ量、想定発生頻度から必要容量を決めます。
異常が短時間に大量発生した場合でも、最初の異常を失わないように設計します。
書込み中の排他制御
複数の処理が同時にメモリへアクセスすると、データ破損や処理競合が起こる可能性があります。
書込み中は他の処理を待たせる、キューへ保存要求をまとめるなど、アクセスを管理します。リアルタイム制御へ影響しないよう、書込み時間も確認します。
メモリ異常の検出
読出しエラー、CRC不一致、書込み失敗、容量不足などを監視します。異常を検出した場合は、バックアップデータへ切り替える、初期値へ戻す、運転を禁止するなどの処理を行います。
重要データが失われた状態で自動運転を続けないようにします。
ハカルプラスの対応
ハカルプラスでは、保存容量、更新頻度、製品寿命を確認し、フラッシュ、EEPROM、FRAMなどを選定します。
ウェアレベリング、二重化、CRC、停電保存、データ移行を組み合わせ、設定値や履歴を安定して保持できる組込ソフトを検討します。
よくある質問
Q. 不揮発性メモリは何回でも書き換えられますか?
A. 種類ごとに書換え可能回数の上限があるため、更新頻度に応じた設計が必要です。
Q. 電源が突然切れてもデータは残りますか?
A. 書込み完了済みのデータは保持されますが、書込み途中のデータは破損する可能性があります。
Q. 積算値を毎秒保存できますか?
A. メモリ寿命へ影響するため、保存周期、ウェアレベリング、耐久性の高いメモリを検討します。
Q. ファームウェア更新後も設定値を引き継げますか?
A. データ形式とバージョンを管理し、旧形式から変換できる構成にすれば引き継げます。
Q. データ破損を検出できますか?
A. CRC、チェックサム、二重化保存などを使用して検出・復旧できます。
関連ワード
データロギングとは、温度、圧力、重量、電流、設備状態、異常情報などを、一定周期または特定条件で記録・保存する機能です。設備の運転状況、品質、故障原因、エネルギー使用量などを後から確認するために使用されます。
データは、マイコン内部の不揮発性メモリ、SDカード、USBメモリ、産業用コンピュータ、サーバーなどへ保存します。保存周期、保存期間、記録項目、データ形式をあらかじめ設計する必要があります。
ハカルプラスでは、記録目的、データ量、保存期間、閲覧方法を確認し、組込機器から上位システムまで含むデータロギング構成を検討します。
データロギングの主な目的
- 設備の運転状態を把握する
- 製品品質と製造条件を関連付ける
- 異常発生時の原因を調査する
- 消費電力や原料使用量を分析する
- 保守時期や部品劣化を予測する
- トレーサビリティを確保する
目的によって必要な記録周期と精度が大きく異なります。
記録するデータ
計測値だけでなく、設備状態や設定値も合わせて保存すると分析しやすくなります。
- 温度、圧力、流量、重量、電力
- モーター運転、バルブ開閉、工程ステップ
- 目標値、設定値、補正値
- 警報、異常、インターロック
- 品種、配合番号、ロット番号
- 作業者、操作時刻、設定変更
周期記録
一定時間ごとにデータを保存する方法です。1秒、1分、10分など、対象の変化速度に合わせて周期を設定します。
周期を短くすると細かな変化を確認できますが、データ量と書込み回数が増えます。温度のように変化が遅い値へ必要以上に短い周期を設定しても、保存効率が低下します。
イベント記録
異常発生、設備起動、設定変更、計量完了など、特定の事象が発生したときだけ記録する方法です。
通常時のデータ量を抑えながら、重要な出来事を確実に保存できます。周期記録と組み合わせることも一般的です。
変化時記録
前回値から一定量以上変化した場合に記録します。設備状態やゆっくり変化する計測値の保存量を減らす方法です。
長時間変化しない場合でも、機器が正常に動作していることを示すため、一定時間ごとの記録を併用します。
保存周期の決め方
記録周期は、設備の応答速度、異常の継続時間、分析目的から決めます。
瞬間的な電圧低下や高速振動を記録する場合は、ミリ秒以下の高速サンプリングが必要になることがあります。一方、月間の電力使用量管理では、数分または数十分単位でも十分な場合があります。
保存容量の計算
必要容量は、1件あたりのデータ量、記録周期、保存期間から概算します。
例えば、1件100バイトのデータを1秒ごとに30日間保存すると、約259MB必要です。ファイル管理情報や予備容量も加えて選定します。
記録時刻
データには正しい日時を付与します。RTC、PLC時計、産業用コンピュータ、NTP、GNSSなどを利用します。
複数機器のデータを比較する場合は、時計を同期し、時刻ずれを抑えることが重要です。
リングバッファ
保存容量が一杯になった場合に、最も古いデータから順番に上書きする方式をリングバッファと呼びます。
一定期間の最新データだけを保持する用途に適しています。重要な異常データまで上書きしないよう、異常履歴を別領域へ保存する場合があります。
内部メモリへの保存
マイコン内蔵フラッシュや外付け不揮発性メモリへ保存する方法は、構成を小型化しやすく、取り外し媒体を必要としません。
容量と書換え寿命に制限があるため、短期間の履歴や設定変更記録に適しています。
SDカードへの保存
SDカードは比較的大容量で、CSVなどのファイルとして保存しやすい媒体です。カードを取り出し、パソコンでデータを確認できます。
電源断時のファイル破損、カード寿命、接点不良、不正な抜取りを考慮します。書込み中にカードを抜かないよう表示やロック機構を設けます。
USBメモリへの出力
設備内部に保存したデータをUSBメモリへコピーする方法があります。常時保存媒体として使う場合と、保守時のデータ搬出だけに使う場合があります。
未対応のファイルシステムや大容量媒体を接続した場合の動作も確認します。
CSV形式
CSV形式は、日時や計測値をカンマ区切りで保存する一般的な形式です。表計算ソフトで開きやすく、設備ごとのデータ確認に適しています。
項目名、単位、文字コード、小数点、日時形式を統一します。途中で項目数を変更する場合は、ファイルバージョンを管理します。
データベースへの保存
複数設備のデータを長期間保存し、検索・集計する場合は、産業用コンピュータやサーバーのデータベースを利用します。
設備番号、品種、ロット、期間などで検索し、グラフや帳票へ展開できます。ネットワーク障害時に備え、設備側へ一時保存領域を設けます。
通信断時のバッファリング
上位システムへリアルタイム送信する場合でも、通信が途切れる可能性があります。
送信できなかったデータを設備側のバッファへ保存し、通信復旧後に古い順から再送します。重複送信を識別するため、通し番号や時刻を持たせます。
異常前後のデータ保存
異常発生時だけでなく、その直前の状態が原因調査に重要です。通常時のデータをリングバッファへ保持し、異常発生時に前後一定期間を固定保存する方法があります。
モーター電流、圧力、重量、工程ステップなどを保存すると、異常の進行を確認できます。
データの信頼性
書込み途中の停電、媒体故障、通信エラーによってデータが欠落・破損する可能性があります。
CRC、ファイル確定処理、二重化、定期バックアップを行います。重要データでは、保存成功を確認してから元データを削除します。
個人情報とセキュリティ
作業者名、操作履歴、製造情報などを保存する場合は、閲覧権限と持出し方法を管理します。
USBメモリやSDカードへの出力を制限し、必要に応じて暗号化やアクセス認証を使用します。
異常時の確認
データが保存されない場合は、媒体容量、書込み保護、ファイルシステム、時刻設定を確認します。データが途中で途切れる場合は、停電、媒体接触、通信断を点検します。
記録周期が不規則な場合は、処理負荷、書込み時間、時計補正の影響を確認します。
ハカルプラスの対応
ハカルプラスでは、記録項目、周期、保存期間、データ利用方法を整理し、保存容量と媒体を選定します。
組込メモリ、SDカード、USBメモリ、産業用コンピュータ、データベースを組み合わせ、CSV出力、異常前後記録、上位連携まで含む構成を検討します。
よくある質問
Q. 記録周期は短いほどよいですか?
A. 細かな変化を確認できますが、データ量と書込み負荷が増えるため、目的に合った周期を設定します。
Q. SDカードへ何年分保存できますか?
A. 1件あたりのデータ量、記録周期、カード容量から算出します。
Q. 通信が切れてもデータを残せますか?
A. 設備側へ一時保存し、通信復旧後に再送する構成にできます。
Q. 異常発生前のデータも確認できますか?
A. 通常時のデータをリングバッファへ保持し、異常前後を保存できます。
Q. CSV形式で出力できますか?
A. 日時、項目名、単位を付けたCSVファイルとして保存・出力できます。
関連ワード
リングバッファとは、あらかじめ確保した一定容量の記憶領域を循環して使用し、容量が一杯になると最も古いデータから順番に上書きするデータ管理方式です。循環バッファ、サーキュラーバッファとも呼ばれます。
組込機器では、通信データの一時保存、計測値の履歴、異常発生前のデータ保持、ログ管理などに使用されます。限られたメモリ容量で、常に最新の一定期間分のデータを保持できる点が特長です。
ハカルプラスでは、データ発生周期、必要保持時間、通信速度、異常時の保存要件を確認し、リングバッファの容量と処理方法を検討します。
基本的な仕組み
リングバッファには、データを書き込む位置と、データを読み出す位置を管理する指標があります。一般に、書込み位置をライトポインタ、読出し位置をリードポインタと呼びます。
書込み位置が領域の最後へ達すると、先頭へ戻って書込みを続けます。円形につながっているように扱うため、リングバッファと呼ばれます。
主な用途
- シリアル通信の受信データ
- 送信待ちデータの一時保存
- センサ計測値の最新履歴
- 異常発生前後の波形保存
- 異常履歴や操作履歴
- 音声データや連続サンプリングデータ
通信受信での利用
シリアル通信では、データが受信されるタイミングと、プログラムがデータを処理するタイミングが一致しない場合があります。
受信割込みでデータをリングバッファへ格納し、メイン処理で順番に読み出すことで、受信処理と解析処理を分離できます。
送信処理での利用
送信したいデータをリングバッファへ追加し、通信機能が送信可能になった順に取り出します。
複数の処理から送信要求が発生しても、送信順序を保ちやすくなります。送信完了前に同じ領域を上書きしないよう管理します。
計測データの保持
温度、圧力、重量、電流などを一定周期でリングバッファへ保存すると、直近数秒または数分のデータを常に保持できます。
異常が発生した時点で上書きを停止する、または異常後も一定期間記録を続けることで、発生前後の変化を確認できます。
異常前データの保存
異常発生後の値だけでは、原因を特定できない場合があります。リングバッファへ通常時のデータを常時保存し、異常発生時に内容を不揮発性メモリへ移します。
例えば、異常前10秒と異常後5秒を保存することで、圧力、モーター電流、工程ステップの変化を追跡できます。
バッファ容量の決め方
必要容量は、1件あたりのデータ量、保存周期、保持時間から求めます。
1件20バイトのデータを10ミリ秒周期で10秒分保持する場合、必要件数は1,000件、容量は約20,000バイトです。管理情報や余裕も加えます。
バッファが空の状態
読出し位置と書込み位置が同じ場合、バッファが空なのか満杯なのかを区別できない設計があります。
保存件数を別に管理する、1領域を未使用にする、満杯フラグを持つなどの方法で区別します。
バッファ満杯時の動作
満杯時に古いデータを上書きするか、新しいデータを破棄するかを用途に応じて決めます。
- 最新データ重視:古いデータを上書きする
- 既存データ重視:新しいデータを破棄する
- 重要用途:満杯を異常として通知する
通信コマンドではデータ欠落を避けるため新規受信を異常とし、計測履歴では古い値を上書きする場合があります。
オーバーフロー
データの書込み速度が読出し速度を上回り続けると、未処理データを上書きするオーバーフローが発生します。
バッファ容量を増やすだけでなく、処理速度、通信速度、優先順位を見直します。オーバーフロー回数を記録すると、処理能力不足を把握できます。
アンダーフロー
バッファが空の状態で読出しを行うことをアンダーフローと呼びます。読出し前に保存件数や空フラグを確認します。
音声や連続出力では、アンダーフローによって出力が途切れるため、一定量のデータをためてから処理を開始します。
割込み処理との連携
割込み処理とメイン処理が同じリングバッファへアクセスする場合、ポインタ更新の途中で割込みが発生するとデータ不整合が起こる可能性があります。
更新処理を短くする、割込み禁止区間を設ける、原子的に更新できる型を使用するなどの対策を行います。
複数タスクでの利用
リアルタイムOS上で複数タスクが同じバッファを使用する場合は、ミューテックス、セマフォ、メッセージキューなどで排他制御を行います。
一つの書込み側と一つの読出し側だけであれば、ロックを減らした構成にできる場合もあります。
可変長データ
通信フレームや文字列など、長さが一定でないデータを保存する場合は、データ長を一緒に保存します。
領域末尾でデータが分割されることを考慮し、二回に分けて読書きするか、連続領域へコピーしてから処理します。
データの時刻管理
計測データを保存する場合は、各データへ時刻を付けるか、先頭時刻と一定周期から各時刻を計算します。
サンプリング周期が変動する場合や欠測がある場合は、個別に時刻や通し番号を持たせます。
不揮発性メモリとの組み合わせ
RAM上のリングバッファは高速に書き込めますが、停電すると内容が失われます。
異常発生時や一定時間ごとに不揮発性メモリ、SDカード、上位システムへ転送します。書込み負荷とデータ保持のバランスを取ります。
初期化と再起動
電源投入時には、リードポインタ、ライトポインタ、保存件数を正しく初期化します。不揮発性メモリ上でリングバッファを構成する場合は、前回の管理情報が正常か確認します。
管理情報が破損している場合に備え、領域を走査して最新位置を復元する方法もあります。
異常時の確認
通信データが欠ける場合は、オーバーフロー回数、受信頻度、処理時間を確認します。順序が乱れる場合は、ポインタ更新や排他制御を点検します。
異常前データが残らない場合は、上書き停止条件、保存件数、異常後記録時間を確認します。
ハカルプラスの対応
ハカルプラスでは、通信速度、サンプリング周期、必要保持時間を確認し、リングバッファの容量とデータ構造を設計します。
割込み処理、通信再送、異常前後保存、不揮発性メモリへの転送を組み合わせ、限られたメモリを有効に利用する組込ソフトを検討します。
よくある質問
Q. リングバッファは容量が一杯になるとどうなりますか?
A. 設計により、古いデータを上書きする、新しいデータを破棄する、異常を出すなどの動作を選びます。
Q. 通信データの取りこぼしを防げますか?
A. 受信割込みで一時保存し、後で処理することで取りこぼしを減らせます。
Q. 異常発生前のデータを残せますか?
A. 通常時から最新データを循環保存し、異常時に上書きを停止または固定保存します。
Q. 停電してもリングバッファの内容は残りますか?
A. RAM上のデータは失われるため、必要なデータは不揮発性メモリへ保存します。
Q. バッファ容量はどのように決めますか?
A. 1件あたりのデータ量、発生周期、保持時間、処理遅延から算出します。
関連ワード
PWM出力制御とは、出力を高速にON・OFFし、一定周期内におけるON時間の割合を変えることで、モーター速度、LED明るさ、ヒーター出力などを調整する制御です。PWMはPulse Width Modulationの略で、パルス幅変調と呼ばれます。
出力電圧そのものを連続的に変えなくても、負荷へ供給される平均電力を調整できる点が特長です。マイコンのタイマ機能や専用PWM回路を使用して生成します。
ハカルプラスでは、負荷の種類、必要な出力範囲、応答速度、ノイズ条件を確認し、周波数、デューティ比、駆動回路を含むPWM出力制御を検討します。
PWMの基本
PWM信号は、一定周期でONとOFFを繰り返すデジタル信号です。1周期のうちONしている時間の割合をデューティ比と呼びます。
デューティ比が0%なら常時OFF、50%なら周期の半分がON、100%なら常時ONです。
デューティ比=ON時間÷周期×100
平均電圧と平均電力
負荷がPWMの高速なON・OFFを平均化する場合、デューティ比に応じた平均電圧または平均電力として働きます。
例えば、24V電源をデューティ比50%で駆動すると、単純な平均値は約12V相当になります。ただし、モーターやヒーターの実際の応答は負荷特性によって異なります。
PWM周波数
1秒間にPWM周期を何回繰り返すかをPWM周波数と呼びます。周波数が低いと負荷の脈動やちらつきが目立ち、高いとスイッチング損失やノイズが増える傾向があります。
負荷、駆動素子、必要な分解能、マイコンタイマの能力から周波数を決めます。
モーター速度制御
直流モーターへPWM電圧を加えると、デューティ比に応じて平均電圧が変化し、回転速度を調整できます。
低デューティ比では始動トルクが不足し、モーターが回転しない場合があります。最低デューティ比、始動時のブースト、過電流保護を設定します。
LED調光
LEDを高速に点滅させると、人の目には平均的な明るさとして見えます。デューティ比を変えることで調光できます。
周波数が低いとちらつきが見えるほか、カメラ撮影時に縞や明暗が出る場合があります。使用環境に合わせて周波数を選定します。
ヒーター制御
ヒーターは熱応答が遅いため、比較的低い周波数の時間比例制御でも平均出力を調整できます。
機械式接触器を高速に開閉すると寿命が短くなるため、SSRやサイリスタを使用します。負荷容量と放熱を確認します。
ソレノイドやバルブ制御
ソレノイドへ初期は大きな電流を流し、動作後はPWMで保持電流を下げる方法があります。
消費電力と発熱を減らせますが、保持力不足による復帰や振動が起こらないよう、最低保持デューティ比を確認します。
PWM分解能
デューティ比を何段階で設定できるかを分解能と呼びます。8ビットなら256段階、10ビットなら1,024段階で設定できます。
周波数を高くすると、同じタイマクロックでは1周期あたりのカウント数が減り、分解能が低下する場合があります。
タイマによる生成
マイコンのタイマ・カウンタ機能を使用し、周期値と比較値を設定してPWMを生成します。ハードウェアで出力されるため、CPU処理の影響を受けにくい点が特長です。
複数チャンネルを使用する場合は、共通タイマによる周波数制約や端子割当を確認します。
出力回路
マイコン端子だけでは大きな電流を流せないため、MOSFET、トランジスタ、ゲートドライバなどを使用します。
負荷電流、電源電圧、スイッチング周波数、発熱を考慮して選定します。誘導負荷では、逆起電力を吸収するダイオードやサージ保護素子を設けます。
ハイサイドとローサイド駆動
負荷の0V側をスイッチする方式をローサイド駆動、電源側をスイッチする方式をハイサイド駆動と呼びます。
負荷の接地条件、安全性、配線構成によって選択します。ハイサイド駆動では、ゲート電圧を生成する専用ドライバが必要になる場合があります。
デッドタイム
Hブリッジやインバーター回路では、上下のスイッチング素子が同時にONすると短絡します。
一方をOFFしてから他方をONするまでに短い待ち時間を設けます。これをデッドタイムと呼びます。短すぎると短絡し、長すぎると出力波形がひずみます。
ノイズ対策
PWMは高速に電流を切り替えるため、電磁ノイズや電源電圧変動を発生させます。
- 電流ループを短くする
- 電源へバイパスコンデンサを配置する
- ゲート抵抗で立上り速度を調整する
- 信号線と動力線を分離する
- 必要に応じてフィルタやシールドを設ける
アナログ出力への変換
PWM信号をローパスフィルタへ通すと、デューティ比に応じたアナログ電圧へ変換できます。
簡易的な電圧指令に利用できますが、負荷変動、リップル、応答速度、精度を確認します。高精度が必要な場合はD/A変換器を使用します。
出力異常の検出
PWM指令を出していても、MOSFET故障、配線断線、負荷短絡によって実際の出力が異なる場合があります。
電流、電圧、回転速度、温度などをフィードバックし、指令と実動作の一致を確認します。
停止時の出力状態
マイコンリセット時や起動途中にPWM端子が不定状態となると、負荷が意図せず動作する可能性があります。
プルダウン抵抗、出力許可信号、ハードウェア遮断回路を設け、初期化完了までは安全側を維持します。
異常時の確認
出力が変化しない場合は、タイマ設定、端子設定、デューティ比、駆動回路、電源を確認します。低出力で負荷が動かない場合は、最低動作電圧や始動トルクを点検します。
ノイズや発熱が大きい場合は、周波数、MOSFET選定、ゲート抵抗、放熱を見直します。
ハカルプラスの対応
ハカルプラスでは、モーター、LED、ヒーター、ソレノイドなどの負荷特性を確認し、PWM周波数とデューティ比を設計します。
マイコンタイマ、MOSFET駆動、電流監視、サージ対策、フェールセーフを組み合わせた出力制御を検討します。
よくある質問
Q. PWMはアナログ出力ですか?
A. 信号自体はデジタルのON・OFFですが、デューティ比によって平均的な出力を調整できます。
Q. PWM周波数は高いほどよいですか?
A. ちらつきや脈動は減りますが、スイッチング損失とノイズが増えるため、負荷に合わせて設定します。
Q. 直流モーターの速度を制御できますか?
A. PWMのデューティ比を変えることで速度を調整できます。
Q. マイコン端子からヒーターを直接駆動できますか?
A. 出力電流が不足するため、MOSFET、SSR、サイリスタなどの駆動回路が必要です。
Q. PWMからアナログ電圧を作れますか?
A. ローパスフィルタを使用して平均化できますが、精度と応答速度を確認します。
関連ワード
リレー出力制御とは、PLC、マイコン、制御装置からリレーを駆動し、モーター、電磁弁、警報灯、外部機器などの電源や信号をON・OFFする制御です。リレー接点によって制御回路と負荷回路を電気的に分離でき、交流・直流のさまざまな負荷を扱えます。
リレーは構造が分かりやすく、無電圧接点として外部機器へ信号を渡せる点が特長です。一方、機械接点には寿命、動作時間、チャタリング、接点溶着があるため、負荷条件と開閉頻度に応じた選定が必要です。
ハカルプラスでは、負荷電圧、電流、開閉頻度、必要な絶縁を確認し、リレー、駆動回路、サージ対策、異常監視を含む出力制御を検討します。
リレーの基本構造
電磁リレーは、コイルへ電流を流すことで磁力を発生させ、可動接点を切り替えます。コイル側と接点側は電気的に分離されています。
制御装置は低電圧のコイルを駆動し、接点側で別電源の負荷を開閉します。
a接点・b接点・c接点
- a接点:コイル非通電時に開き、通電時に閉じる
- b接点:コイル非通電時に閉じ、通電時に開く
- c接点:共通端子がa接点側とb接点側を切り替える
停電時や故障時にどちらの状態が安全かを考慮して接点を選びます。
主な用途
- 電磁弁や小型接触器の駆動
- 警報灯、ブザー、表示器の制御
- 外部設備への運転・異常接点出力
- 異なる電圧回路間の信号受渡し
- 複数回路の同時切替
無電圧接点出力
リレー接点自体は電圧を供給せず、外部回路から与えられた電流を開閉します。このため、接点出力は無電圧接点やドライ接点と呼ばれます。
外部機器側の電圧と電流がリレー接点定格内であることを確認します。
接点定格
リレーには、開閉できる最大電圧、最大電流、最大負荷容量が定められています。
定格電流以内でも、負荷の種類によって接点への負担は異なります。抵抗負荷、誘導負荷、ランプ負荷、コンデンサ負荷の開閉特性を確認します。
突入電流
ランプ、電源装置、コンデンサ入力機器、モーターなどは、起動時に定常電流より大きな突入電流が流れる場合があります。
定常電流だけでリレーを選ぶと、接点溶着や寿命低下が起こる可能性があります。突入電流に対応するリレーや中継接触器を使用します。
誘導負荷の開閉
電磁弁、接触器コイル、リレーコイルなどの誘導負荷をOFFすると、逆起電力によるサージが発生します。
直流負荷ではフライホイールダイオード、交流負荷ではバリスタやRCスナバを使用し、接点アークとノイズを低減します。
リレーコイルの駆動
マイコン端子から直接リレーコイルを駆動できない場合は、トランジスタやMOSFETを使用します。
コイル電流、駆動電圧、トランジスタの定格を確認します。直流コイルには逆起電力吸収ダイオードを設けます。
コイル電圧
リレーコイルにはDC5V、DC12V、DC24V、AC100Vなどがあります。制御電源に合わせて選定します。
電圧が低すぎると接点が完全に切り替わらず、高すぎるとコイルが過熱します。電源変動と周囲温度を確認します。
動作時間と復帰時間
リレーはコイルへ通電してから接点が切り替わるまでに数ミリ秒から数十ミリ秒かかります。OFF後にも復帰時間があります。
高速なパルス出力や短時間信号には適さない場合があります。高速開閉にはトランジスタ出力や半導体リレーを検討します。
接点チャタリング
リレー接点が切り替わる際、短時間にON・OFFを繰り返すチャタリングが発生します。
外部機器が高速に入力を読み取る場合、複数回の信号として認識する可能性があります。入力側でフィルタやデバウンス処理を行います。
接点寿命
リレー寿命には、機械的寿命と電気的寿命があります。無負荷での開閉回数より、実負荷を開閉する電気的寿命の方が短くなるのが一般的です。
開閉頻度、負荷電流、サージ対策、周囲温度によって寿命が変わります。
頻繁な開閉への対応
秒単位以下で頻繁にON・OFFする用途では、機械式リレーの寿命が問題になる可能性があります。
SSR、トランジスタ、MOSFETなどの無接点出力を検討します。ただし、漏れ電流、発熱、故障時短絡など、半導体出力特有の注意点があります。
接点溶着
過大電流やアークによって接点が溶着すると、コイルをOFFしても負荷が停止しない可能性があります。
重要な停止機能では、リレー出力だけに依存せず、接触器の補助接点、二重遮断、安全リレーなどを使用します。
出力状態の確認
PLCやマイコンがリレー駆動信号を出していても、接点が実際に切り替わっているとは限りません。
重要な出力では、負荷側の補助接点、電流、圧力、位置センサなどを入力し、実動作を確認します。
停電時の状態
電源が失われると、一般的なリレーはコイル非通電状態へ戻ります。a接点は開き、b接点は閉じます。
停電時に負荷を停止するか、警報を出すか、バルブを開閉するかを考慮して接点を選びます。
出力の初期状態
制御装置の起動中やプログラム更新中に、リレーが一時的にONしないようにします。
出力初期値、リセット回路、駆動トランジスタのプルダウン抵抗を設け、制御開始までは安全側を維持します。
自己保持回路
リレー接点を利用し、起動ボタンを離した後もコイル通電を維持する回路を自己保持回路と呼びます。
停止ボタン、異常接点、非常停止接点を直列に入れ、いずれかが開けば自己保持を解除します。PLC制御でも同様の保持処理を行います。
異常時の確認
リレーが動作しない場合は、コイル電圧、駆動トランジスタ、出力信号、コイル断線を確認します。動作音がしても負荷が動かない場合は、接点摩耗、配線、外部電源を点検します。
リレーが戻らない場合は、接点溶着、コイル残留電圧、機械的固着を確認します。
保守と交換
開閉回数や使用期間に応じてリレーを交換します。プラグイン式リレーでは、ソケットの接触不良や端子緩みも確認します。
交換時には、コイル電圧、接点構成、接点定格、端子配置が同じかを確認します。
ハカルプラスの対応
ハカルプラスでは、負荷電圧、電流、突入電流、開閉頻度を確認し、適切なリレーと駆動回路を選定します。
サージ吸収、出力フィードバック、接点寿命管理、異常履歴を組み合わせ、制御盤や組込機器のリレー出力制御を検討します。
よくある質問
Q. リレー出力は交流と直流の両方を開閉できますか?
A. 接点定格内であれば可能ですが、交流・直流で許容電圧や電流が異なる場合があります。
Q. マイコンからリレーを直接駆動できますか?
A. 多くの場合は電流が不足するため、トランジスタやMOSFETを介して駆動します。
Q. リレーを高速にON・OFFできますか?
A. 機械動作と接点寿命の制約があるため、高速用途には半導体出力が適しています。
Q. コイルへダイオードを付ける理由は何ですか?
A. コイルOFF時の逆起電力を吸収し、駆動回路と周辺機器を保護するためです。
Q. リレー接点が溶着したことを検出できますか?
A. 補助接点、負荷電流、機械位置などを監視し、出力指令との不一致を検出できます。
関連ワード
オープンコレクタ出力とは、出力トランジスタのコレクタ端子を外部へ開放し、外部電源とプルアップ抵抗を使ってON・OFF信号を作る出力方式です。マイコン、センサ、計測器、PLCなどから、外部機器へパルス信号、警報信号、状態信号を出力する用途で使用されます。
出力がONになると、トランジスタが導通して出力端子を0V側へ引き込みます。出力がOFFになるとトランジスタは非導通となり、外部のプルアップ電源によって出力端子が高い電圧になります。
ハカルプラスでは、接続先の入力電圧、必要電流、信号周波数、絶縁の要否を確認し、オープンコレクタ出力回路と保護回路を検討します。
基本的な動作
オープンコレクタ出力では、出力回路自身が高い電圧を出力するのではなく、外部から供給された電流を0V側へ流します。
- 出力OFF:トランジスタが非導通となり、プルアップによってHighになる
- 出力ON:トランジスタが導通し、出力端子がLowになる
このため、論理上は出力ONのとき端子電圧が低くなる負論理として扱われる場合があります。
プルアップ抵抗
オープンコレクタ出力を電圧信号として使用するには、出力端子と外部電源の間にプルアップ抵抗を接続します。
抵抗値が小さいほどON時の電流が大きくなり、信号の立上りは速くなりやすくなります。一方、出力トランジスタの許容電流を超える可能性があります。
抵抗値が大きすぎると消費電流は減りますが、配線容量の影響で信号の立上りが遅くなり、高速パルスを正しく伝送できない場合があります。
シンク出力
オープンコレクタ出力は、一般に電流を0V側へ吸い込むシンク出力です。接続先の入力回路は、電源側から電流を供給するソース入力である必要があります。
NPNトランジスタを使うオープンコレクタ出力は、産業用センサや計測器で広く利用されています。接続時には、接続先PLCの入力方式と共通端子の極性を確認します。
PNPオープンコレクタとの違い
一般的なオープンコレクタ出力はNPN型ですが、PNPトランジスタによって電源側へ電流を供給する方式もあります。
- NPN出力:ON時に0V側へ電流を流す
- PNP出力:ON時にプラス側から電流を供給する
接続先の入力回路と方式が一致していない場合、信号を正しく検出できません。
無電圧接点との違い
リレー接点による無電圧出力は、接点が電気的に絶縁され、交流・直流の両方を扱える場合があります。
オープンコレクタ出力は半導体出力であり、極性と最大電圧が決まっています。一方、接点摩耗がなく、高速なON・OFFや長寿命が期待できます。
主な用途
- 流量計や電力量計のパルス出力
- 警報・運転状態の接点相当出力
- PLCやカウンタへの計数信号
- LEDや小型負荷の駆動
- 複数機器を接続する論理信号
高速パルスとして使用する場合は、出力トランジスタの応答速度、配線容量、入力回路の応答周波数を確認します。
出力電圧と出力電流
接続できる外部電源電圧と、ON時に流せる最大電流は出力回路ごとに定められています。
外部電源が出力トランジスタの耐圧を超えると故障する可能性があります。また、負荷電流が定格を超えると発熱や破損につながります。
定常電流だけでなく、負荷の突入電流も確認します。
ON時の残留電圧
トランジスタがONになっても、出力端子が完全な0Vになるわけではなく、わずかな残留電圧が発生します。
接続先入力のLow判定電圧より十分に低いことを確認します。負荷電流が大きいほど残留電圧が増える場合があります。
OFF時の漏れ電流
半導体出力では、OFF状態でも微小な漏れ電流が流れる場合があります。
入力抵抗が大きい機器へ接続すると、漏れ電流によって入力がOFFにならないことがあります。必要に応じて出力端子と0Vの間に抵抗を追加し、漏れ電流による電圧上昇を抑えます。
誘導負荷の駆動
電磁弁、リレーコイル、接触器コイルなどの誘導負荷をOFFすると、逆起電力が発生します。
直流負荷では、負荷と並列にフライホイールダイオードを接続し、出力トランジスタを保護します。高速な復帰が必要な場合は、ツェナーダイオードやバリスタを検討します。
外部電源の共通化
非絶縁のオープンコレクタ出力では、出力機器と接続先の0Vを共通にする必要があります。
0Vが共通でないと、信号電流の戻り経路がなく、正常に動作しません。一方、設備間の接地電位差が大きい場合は、共通化によってノイズや故障が発生する可能性があります。
絶縁出力
設備間の電位差やノイズを遮断したい場合は、フォトカプラなどで絶縁したオープンコレクタ出力を使用します。
絶縁出力でも、外部側にはプルアップ電源が必要です。絶縁耐圧、最大電圧、応答速度を確認します。
ワイヤードOR
複数のオープンコレクタ出力を一つの信号線へ接続し、いずれか一つがONになると信号をLowにする構成が可能です。これをワイヤードORと呼ぶ場合があります。
複数機器の異常信号をまとめる用途などに利用できます。ただし、どの機器が出力したかを個別に判別できないため、用途を限定します。
パルス出力での注意点
高速パルスでは、配線長、プルアップ抵抗、入力容量によって波形がなまり、パルス幅が変化することがあります。
オシロスコープで出力波形を確認し、High・Low電圧、立上り時間、立下り時間が接続先の仕様を満たしているか確認します。
出力短絡保護
出力端子を誤って電源へ直結すると、トランジスタへ過大電流が流れる可能性があります。
電流制限抵抗、過電流保護素子、保護機能付きドライバICなどを使用します。短絡保護がない出力では、配線作業時に電源を切ります。
異常時の確認
出力がLowにならない場合は、トランジスタ駆動信号、0V共通、配線、出力素子を確認します。出力がHighにならない場合は、プルアップ電源、抵抗値、負荷短絡を点検します。
パルスが欠ける場合は、出力周波数、プルアップ抵抗、配線容量、接続先入力の応答速度を確認します。
保守と更新
出力端子の緩み、配線の断線、外部電源電圧を点検します。接続先機器の更新時には、NPN・PNP方式、入力電圧、必要電流を再確認します。
リレー出力からオープンコレクタ出力へ変更する場合は、極性、漏れ電流、絶縁の有無に注意します。
ハカルプラスの対応
ハカルプラスでは、PLC、カウンタ、センサ、外部機器の入出力仕様を確認し、NPN・PNP方式、プルアップ条件、絶縁の要否を検討します。
パルス出力、警報出力、誘導負荷駆動、過電流保護、サージ対策まで含むオープンコレクタ出力回路に対応できる場合があります。
よくある質問
Q. オープンコレクタ出力だけで電圧信号を出せますか?
A. 外部電源とプルアップ抵抗が必要です。出力回路自身は主に0V側へ電流を流します。
Q. リレー接点と同じように使えますか?
A. ON・OFF信号には使えますが、極性、最大電圧、漏れ電流、絶縁の有無が異なります。
Q. NPN出力をPNP入力へ接続できますか?
A. 入出力方式が合わない場合は正常に動作しないため、変換回路や適合する入力が必要です。
Q. オープンコレクタ出力でリレーを駆動できますか?
A. 出力定格内であれば可能ですが、コイルの逆起電力対策が必要です。
Q. 高速パルスを出力できますか?
A. 出力素子、プルアップ抵抗、配線容量、接続先の応答速度が対応していれば可能です。
関連ワード
ウォッチドッグタイマとは、マイコンやCPUのプログラムが正常に動作し続けているかを監視し、一定時間内に所定の処理が行われなかった場合に、リセットや安全処理を実行する機能です。英語のWatchdog Timerを略してWDTと呼ばれます。
組込機器では、ノイズ、ソフトウェア不具合、メモリ破損、処理の競合などによってプログラムが停止することがあります。ウォッチドッグタイマを使用すると、制御処理が停止した状態のまま機器が放置されることを防ぎやすくなります。
ハカルプラスでは、マイコン、入出力、通信、制御対象を確認し、監視周期、リセット後の出力状態、異常履歴を含むウォッチドッグ機能を検討します。
基本的な仕組み
ウォッチドッグタイマは、設定された時間を計測する独立したタイマです。プログラムが正常に動作している間は、タイマが満了する前に定期的なクリア処理を行います。
プログラム停止などによってクリア処理が実行されなくなると、タイマが満了し、マイコンをリセットします。このクリア操作は、ウォッチドッグの更新、キック、フィードなどと呼ばれます。
ソフトウェア停止の原因
- 無限ループへの入り込み
- 割込み処理から復帰できない
- メモリ破損や不正アドレスへのアクセス
- タスク間のデッドロック
- 処理負荷増加による応答停止
- 外来ノイズによるCPU誤動作
リセットによって一時的に復旧しても、原因が残っていれば再発するため、発生記録と原因調査が必要です。
内蔵型と外付け型
多くのマイコンにはウォッチドッグタイマが内蔵されています。追加部品が不要で、ソフトウェアから設定できます。
外付けウォッチドッグICは、CPUとは独立した電源・回路で監視できる点が特長です。マイコン内部のクロック停止や、内蔵監視回路まで影響する故障を考慮する場合に使用します。
監視時間の設定
監視時間が短すぎると、正常な処理時間のばらつきや一時的な高負荷でリセットが発生します。長すぎると、制御停止を検出するまでの時間が長くなります。
通常処理、通信、メモリ保存、起動処理などの最大時間を確認し、必要な余裕を持たせます。
更新処理の配置
メインループの先頭で無条件にウォッチドッグを更新すると、その後の重要処理が停止していても監視できない場合があります。
入力処理、制御演算、出力更新、通信など、必要な処理がすべて正常終了した後に更新する構成が有効です。
複数タスクの監視
リアルタイムOSを使用する場合は、一つのタスクだけが正常でも、別のタスクが停止している可能性があります。
各タスクが正常完了フラグを更新し、監視タスクがすべての状態を確認した後にウォッチドッグを更新します。応答が必要なタスクごとに個別タイムアウトを設ける場合もあります。
ウィンドウウォッチドッグ
ウィンドウウォッチドッグは、更新が遅すぎる場合だけでなく、早すぎる場合も異常とする方式です。
異常ループで更新処理だけが高速に繰り返される状態を検出できます。指定された時間範囲内でのみ更新を許可します。
リセット後の動作
ウォッチドッグによるリセット後は、出力端子が一時的に不定状態になったり、初期値へ戻ったりする場合があります。
モーター、ヒーター、バルブなどの出力が危険側へ動かないよう、ハードウェアのプルアップ・プルダウン、出力禁止回路、リレー構成を検討します。
安全側への移行
リセットによって制御が一時停止するため、設備を安全側へ移行させる必要があります。例えば、ヒーターをOFF、モーターを停止、供給ゲートを閉止します。
マイコンが再起動するだけでは安全を確保できない場合は、外部監視回路やリレーで出力を遮断します。
リセット原因の判別
マイコンには、電源投入、低電圧、外部リセット、ウォッチドッグなどのリセット原因を示すレジスタが用意されている場合があります。
起動時に原因を読み取り、不揮発性メモリへ保存します。ウォッチドッグリセット回数が増えている場合は、プログラムやノイズの調査を行います。
連続リセットへの対策
異常原因が残っていると、起動、停止、再起動を繰り返すリセットループになる可能性があります。
一定回数以上のウォッチドッグリセットが発生した場合は、通常動作を開始せず、限定機能や保守モードで起動する方法があります。
データ保存時の注意
不揮発性メモリへの書込み途中でリセットされると、データが破損する可能性があります。書込み中の状態を管理し、チェックサムや二重化データを使用します。
ウォッチドッグ監視を一時的に延長する場合もありますが、無効化したまま戻さない不具合を防ぐ設計が必要です。
デバッグ時の扱い
デバッガでプログラムを一時停止すると、ウォッチドッグタイマだけが動作し続けてリセットされることがあります。
開発時にはデバッグ停止中の動作設定を使用しますが、製品版では監視が有効になっていることを確認します。
定期試験
プログラムで意図的に更新を停止し、ウォッチドッグリセットが発生することを確認します。リセット後の出力、異常表示、履歴保存まで点検します。
外付け監視回路を使用する場合は、マイコンからの監視信号を停止して動作を確認します。
ハカルプラスの対応
ハカルプラスでは、マイコンの処理周期、制御対象、通信処理を確認し、ウォッチドッグタイマの監視時間と更新条件を設計します。
リセット後の安全出力、リセット原因記録、連続再起動制限、外部監視回路まで含めた組込機器の信頼性向上を検討します。
よくある質問
Q. ウォッチドッグタイマがあればソフトウェア不具合は解決しますか?
A. 停止状態から復旧しやすくなりますが、不具合原因そのものを修正する機能ではありません。
Q. ウォッチドッグはどこで更新すればよいですか?
A. 重要な処理がすべて正常終了したことを確認した後で更新するのが有効です。
Q. 内蔵ウォッチドッグと外付けICはどちらがよいですか?
A. 必要な信頼性、監視範囲、コストに応じて選定し、重要設備では併用する場合もあります。
Q. リセット後に自動運転を再開してよいですか?
A. 機械位置や出力状態を確認できない場合があるため、安全な初期状態と再開条件が必要です。
Q. ウォッチドッグによるリセット履歴を残せますか?
A. リセット原因レジスタを読み取り、不揮発性メモリや上位機器へ保存できます。