ELECTRONICS · PYTHON · MAKER

電子工作とPythonの技術ノート

作ったコードを検証し、仕組みをわかりやすく解説

技術ノート · 2026-10-17

設備の稼働・停止を記録するCSVの設計

timestamp,status形式で失敗しにくいデータを作る方法

情報表示・学習目的の解説です。安全上重要な設備の制御や保証には使用しないでください。

なぜイベントログにするのか

設備の「いまの状態」だけでは、前後の稼働時間は計算できません。状態が変化した時刻と新しい状態を1行ずつ記録すると、隣接する時刻の差をその状態の継続時間として扱えます。周期的な測定より記録量を抑えられる一方、途中でイベントを取り逃した場合は復元できない点に注意が必要です。

たとえば9:00にRUNNING、9:30にSTOPPEDと記録されているとき、9:00〜9:30の30分間をRUNNINGとして扱います。

入力仕様を明示する

CSVの列名は timestamp,status とし、状態は RUNNING / STOPPED / UNKNOWN に統一します。時刻はISO 8601形式で、タイムゾーンを含めます。ファイルの文字コードはUTF-8を基本とし、Excel由来のBOM付きUTF-8も読み込めるようにします。

同じ時刻の行が複数あると区間が0秒になるため、順序の正しさと重複のチェックが必要です。

現場で気を付けたいこと

設備側の電源断・通信断・センサ故障を「停止」と決めつけると、稼働率を実際より低く報告する可能性があります。信頼できない期間はUNKNOWNを使用し、後からログ欠落の原因を調査できるようにしましょう。

この設計は情報表示のためのもので、安全制御・法定記録・PLCへの指令には使用できません。

確認用メモ・例

timestamp,status
2026-10-15T09:00:00+09:00,RUNNING
2026-10-15T09:30:00+09:00,STOPPED
2026-10-15T10:00:00+09:00,UNKNOWN

一次資料

記事の説明と、個別環境で動作保証されることは異なります。実機の仕様・状態を確認して使ってください。

← 記事一覧へ戻る