1. 概要
シーメンス S7-1200 シリーズ PLC は、CM1241 RS485 通信モジュールを介して Modbus RTU のマスター/スレーブ機能をサポートします。本記事はシーメンス公式技術文書に基づき、S7-1200 の Modbus アドレスマッピングルールを詳しく説明します。
2. Modbus アドレス種別
| Modbus アドレス領域 | 機能コード | 読み書き属性 | 対応する S7-1200 メモリ領域 |
| 0xxxx(コイル) | 01/05/15 | 読み/書き | Q 出力ビット / M ビット |
| 1xxxx(離散入力) | 02 | 読み取り専用 | I 入力ビット |
| 3xxxx(入力レジスタ) | 04 | 読み取り専用 | IW アナログ入力 |
| 4xxxx(保持レジスタ) | 03/06/16 | 読み/書き | MW / DBD データブロック |
3. S7-1200 Modbus アドレスマッピング表
3.1 I 入力領域 → 1xxxx 離散入力
| Modbus アドレス | S7-1200 アドレス | 説明 |
| 10001 | I0.0 | 入力ビット第 0 ビット |
| 10002 | I0.1 | 入力ビット第 1 ビット |
| ... | ... | 以下同様 |
3.2 Q 出力領域 → 0xxxx コイル
| Modbus アドレス | S7-1200 アドレス | 説明 |
| 00001 | Q0.0 | 出力ビット第 0 ビット |
| 00002 | Q0.1 | 出力ビット第 1 ビット |
| ... | ... | 以下同様 |
3.3 M メモリ領域 / DB ブロック → 4xxxx 保持レジスタ
| Modbus アドレス | S7-1200 アドレス | 説明 |
| 40001 | MW0 | メモリワード第 0 個 |
| 40002 | MW2 | メモリワード第 1 個 |
| ... | ... | または DB ブロック内のデータ |
4. Modbus 命令
S7-1200 は以下の Modbus 命令を使用します。
- MB_COMM_LOAD:ポート初期化
- MB_MASTER:Modbus マスター
- MB_SLAVE:Modbus スレーブ
5. よくある問題とトラブルシューティング
- CM1241 モジュールが正しく装着されているか確認する
- 通信パラメータの設定(ボーレート、パリティ)を確認する
- データブロックの「最適化ブロックアクセスなし」属性に注意する
- MB_COMM_LOAD 命令が正しく実行されているか確認する
6. まとめ
シーメンス S7-1200 の Modbus アドレスマッピングルールは以下のとおりです。
- 0xxxx コイル → Q 出力ビット / M ビット
- 1xxxx 離散入力 → I 入力ビット
- 4xxxx 保持レジスタ → MW メモリワード / DB ブロックデータ
发表回复