背景
上位機は温度データ取得、産業カメラのプレビューと画像保存、設備状態表示、工程スクリプト実行を担当します。現地フィードバックは、温度曲線の欠落、画像保存周期の不安定、プレビュー遅延、Sub温度設定後にハード側が期待通り変化しない点に集中していました。
問題診断
診断は現地ログ、DB記録、シリアル通信経路、カメラスレッドモデルから行いました。COM5は9600 baudで複数のModbus温度コントローラに接続され、旧ポーリングは広いレジスタ範囲を高頻度で読み、典型応答は約75バイトでした。カメラ経路もGUIイベントループ、DB遅延バッチ、取得状態ロックの影響を受けていました。
修正実装
高頻度温度ポーリングはPV/SP/WorkingSPのレジスタ1から5に縮小し、典型応答を約15バイトにしました。Ramp Rateは独立した低頻度ハード読戻しへ変更。設定値は摂氏として扱い、Sub書込成功は0x06応答の精密一致とSPレジスタ読戻しで確認するようにしました。
カメラ経路調整
カメラ取得はGUIタイマー依存からワーカースレッド自走へ変更しました。原始フレームとプレビューイベントは最大1件の処理中タスクに制限し、QPixmapはGUIスレッド内に限定。JPEG保存は新フレームで起動し、実際の取得時刻を記録します。取得停止と保存スケジュールにはウォッチドッグを追加しました。
検証結果
納品段階では、顧客機とローカルソースの12ファイルSHA-256一致確認、Debugビルドの終了コード0を確認しました。非対話の遠隔セッションでカメラやシリアル資源を占有しないため、SSHからプログラムは起動していません。長時間現地検証は顧客がローカルデスクトップで起動して記録する必要があります。
適用場面
この納品形態は、既存の産業HMI、設備制御ソフト、現地データ取得システムで、間欠障害、スレッド停止、シリアル確認不足、カメラ取得と保存の結合が強い問題に適用できます。本番投入、連続運転、設備安全連動は現地検収基準と顧客記録に基づきます。