← プロジェクト一覧
組み込み2026
産業機器向けMODBUS通信モジュール
産業計測機器メーカー
STM32ベースの機器がRS-485で流量計とデータをやり取りするMODBUS RTU通信モジュールです。Slaveを先に納品し、追加契約でMasterまで開発しました。
- 成果物
- ファームウェアモジュール単体試験技術文書
- 技術
- C11STM32FreeRTOSRS-485Unity
課題
機器にMODBUS通信機能が必要でした。上位システムに機器の値を提供するSlaveと、接続された超音波流量計の値を直接読み取るMasterの両方が必要でした。
制約
- FreeRTOS上で、通信タスクのスタック512バイト以内で動作する必要がありました。
- DMAを使わず割り込みだけで、9,600bpsのフレーム境界を正確に切り出す必要がありました。
- 実機と接続する前に、プロトコルの動作を検証する方法が必要でした。
解決策
- 1
プロトコルのロジックをハードウェアとRTOSに依存しない純粋なCに分け、PCで先にテストしてから機器に載せました。
- 2
受信割り込みがバイトを集め、回線のアイドル時点でフレームを確定する構成で、フレーム境界を守りました。
- 3
Masterにはタイムアウト・リトライ、周期ポーリング、連続失敗時のオフライン判定を入れました。
- 4
実際の流量計と接続し、文書の例とは異なるレジスタアドレスの規則を見つけて修正しました。