本記事では、RENESASのModbus RTUソリューションを例に、Modbus RTUの通信プロセス全体について解説します。
(画像提供:RENESAS)
バス全体のトポロジ
1台のマスターデバイス(PLC/Raspberry Pi)と、複数のスレーブデバイス(温湿度トランスミッタおよびその他のフィールドデバイス)で構成されます。このシステムではRS485半二重差動バスを採用しています。標準的なリクエスト/レスポンス通信メカニズムに従い、マスターデバイスのみが能動的にコマンドを送信でき、スレーブデバイスは受動的に応答することしかできません。
Modbus UARTシリアルポートの基本パラメータ

(画像提供:RENESAS)
1. ボーレート: 19200bps
2. データ長
- Modbus ASCII:7 bits
- Modbus RTU:8ビット(重要な違いです!RTUは完全なバイナリバイトを送信します)
3. パリティ: 偶数パリティ(産業用温湿度トランスミッタで最も一般的に使用されています。実際の用途ではパリティなしも広く採用されています)
4. ストップビット: 1 bit
5. フロー制御: ハードウェアフロー制御なし
技術的なヒント: マスターおよびすべてのスレーブデバイスのシリアルポートパラメータは、完全に一致している必要があります。一致していない場合、正常な通信を確立できません。
Modbus RTUは、シリアルポートのタイミングに基づいてフレームの境界を識別し、ボーレートによってフレーム認識のための重要な時間閾値が直接決定されます。
通信プロセス全体(スレーブRTUモード)
1. アイドル状態: RS485インターフェースは、デフォルトで受信状態(P31がローレベル)になります。マスターは1秒タイマによって送信を開始し、スレーブはバス状態を継続的に監視します。
2. 送信フェーズ: マスターまたはスレーブがP31ピンをハイレベルにし、UARTはCRCチェックサム付きのRTUバイナリフレームを出力します。
3. 受信フェーズ: P31ピンをローレベルにして、受信状態に切り替えます。UARTはデータをバイト単位でキャッシュし、TAU0モジュールは文字間隔をリアルタイムで監視します。
4. フレーム終了判定: バスのアイドル時間が3.5文字分に達すると、システムはデータ受信を終了し、解析のためにデータをメインループへ転送します。
5. 検証およびアプリケーション処理: CRCチェック、アドレス検証、ファンクションコード検証を行い、ローカルレジスタの読み書きを行い、対応する応答フレームを生成します。
6. ログ出力: すべての送受信フレーム、エラーレコード、およびコールバックイベントは、独立したUARTA0インターフェースを介してデバッグログとして出力されます。
(RENESASのModbus RTU アプリケーションノートより抜粋)
関連製品
その他の資料
関連技術トピック
- 単純な産業用制御プロジェクトにModbus、CAN、EtherCATが必要なのはなぜですか?
- モーション制御にはCANだけでは不十分で、完全なCANopenアーキテクチャが必須なのはなぜですか?
- CANopenモーション制御の安全手順の基礎
- EtherCATはどのようにして低遅延を実現するのか?
- EtherCAT低遅延通信:物理層リファレンス回路
- Modbus RTUの動作原理:マスタースレーブアーキテクチャとポーリング方式
- Modbus RTUの通信プロセス
