実際の現場の事情が分からないので、念のため遊びを持たせておいた、ということです。必要だから、というより、そうしとけば安全だろう、という感じです。機械の稼働開始が7時30分とかになることもある、というのは書かれていたので分かったのですが、それが7時前、たとえば6時50とかになる可能性については、あるともないとも分からなかったので、もしそういうことがあったとしても、プログラムが一貫性を持って動作するようにしておいた、ということです。仮に、グラフの表示を7時からでなく6時からにしたい、ということがあったとしても、データ処理の部分は書き換えなくてすみますしね。遊びを持たせただけなので、0:00じゃなくても、6:00でも3:00でも良かったのです。プログラムがやることなので、0:00でも6:00でも一瞬で終わることで同じだから、という理由と、24時を回っても稼働していた時のことを考えたら、0:00からにしといたほうが良いのでは、と何となく思って0:00にしたのです。24時前に機械が停止することがあるということは書かれていたので分かっていたのですが、24時以降も機械が動いている可能性については書かれていなかったので、もし24時以降動いていてもプログラムがエラーになったりしないよう、一貫性を持って動作するようにということは何となく考えていました。考えてなかったので、コメントをいただいて気がついたのですが、24時以降も動いていたら、今のプログラムだとデータの整合性がとれなくなり出ますね。0:00以降、機械が停止するまでのデータがダブって作成されてしまう。なった場合に、具体的にどのような動作になるか、つまりプログラム停止など大きな不具合として現れるか、それとも無視できるような小さな不具合で終わるか、それとも目に見えるような影響は一切出ずに終わるか、は検証してみないと分かりません。(ただデータがダブったとしても、それはグラフ表示のための一時的なデータで、記録されるわけではないので、データそのものに関しては、そんなに深刻にならなくてもいいかのなとは思います。私はプログラムがひとつなのか分かれているのかを(プログラムの正確な理解のために)知りたかっただけで、ひとつにするようアドバイスはしたつもりはありませんでした。個人的には、ひとつにせず分けておいた方がいいのではないかなあ...、と思います。グラフ表示のプログラムでもし何か不具合があってエラーが出たら、データの記録プログラムも巻き添えを食って停止してしまうからです。グラフ表示のプログラムは記録されているデータを表示しているだけなので、停止しても再起動すればいいだけですが、データの記録はリアルタイムなので、いったん停止してしまったら、その間のデータは後で取り直すわけにはいかないので...。そんなに神経質にならなくていい、もし仮にそういうことがあって記録が一部欠けることがあっても構わない、ということであれば、ひとつにしてもいいかなと思います。(あるいは、グラフ表示でエラーが出ても止まらないように作る、というのも一つの考え方かもしれませんね。12:51あれ、よく見たら前とプログラム変わってますね。60)]+['24:00']}),は先に回答をしていただいた方のプログラムを試していて上手くいってなかったものをそのままコピーしていました。エラーが発生したのはその行ではありません。StringIOを外した所、エラーはなくなりましたが、グラフ表示がなく、繰り返し処理がされていない状況です。グラフ表示を関数にしてみましたが、おそらくコピーしただけなので行ずれて何かが機能していないのかもしれません。ここまでやっていただいたので自分で理解して可能な限り粘ってます。現場の状況ですが、工場の受注が減少傾向にあり、過去は夜勤をやっていたのですが、現在は夜勤を一切やっていません。人がいる中での稼働は遅くとも23時30までです。無人稼働もありますが、管理者が稼働状況の大画面表示(稼働状況の可視化)を目指しているので、人がいない時間帯はグラフ表示が必要ないので7時~24時としています。記録が欠けることは可能な限り防ぎたいです。工場で機械稼働率を計測していて、稼働状況の記録プログラムは停止したことがないです。質問文中に貼られているコードは、いま現在実際に現場でエラーなく動いているコードで、グラフ表示がうまくいっていないのは、テスト用の別のコードですよね。してもうまくいかないようであれば、そのうまくいかない方のコードを質問文中に追加していただければ、私の手元でも試してみます。発生して、プログラムが停止することがわかりました。詳細は省きますが、これはデータ補完の開始を6:00や7:00にした場合でも、発生します。ひとつ問題があって、稼働時間や機械稼働率の計算にも影響があることがわかりました。これは00:00を回ってから機械が稼働していた場合、それをその日の機械の稼働開始と誤って認識してしまうことによるものです。前者の解決方法はすぐ見つかったのですが、後者の方がちょっと厄介です。上の私の認識で間違っていないかどうかを、確認したいです(24時以降に機械が無人稼働していたら、その稼働状態がファイルに記録されて、プロットプログラムがリアルタイムにそれを読み込む、という認識で間違いないかどうか)。その認識で間違っていなければ、現在現場で動いているプログラムでも、稼働時間や機械稼働率の計算の問題は発生しているのではないかと思います(ただ現在稼働中のプログラムでは誤差は小さいと思います)。ラズベリーパイって使ったことがないので、実際の様子の想像がつかなくて...。03:481質問分に貼っているコードは実際に工場で使用しています。上手くいかないのはテスト用です。2無人稼働もファイルに追記しています。質問分の時数オーバーで割愛していました。無人稼働は必ず人がいない時間帯になるのでグラフ表示なしで考えています。3多少は誤差は発生していますが、それは光センサーの誤差だと思っていました。稼働率の計算は計測プログラムだけで大丈夫です。グラフは稼働している時間帯、停止している時間帯が見えれば大丈夫です。グラフの方は稼働率は見えなくてOKです。