Modbus RTU (シリアル)
Modbus RTU は Modbus の シリアル (RS-485 / RS-232) 方式です。インバータ、電力量計、環境センサなど、シリアルインタフェースしか持たない機器は RTU でのみ通信します。
このゲートウェイは TCP/IP ベース であるため、シリアルを直接扱わず、Modbus RTU-over-TCP ゲートウェイ (RS-485 → イーサネット変換器) を経由して通信します。
TCP ゲートウェイが必須
PlantPulse Edge 自体は RS-485 ポートを持ちません。シリアル機器を接続するには、次のいずれかが必要です。
- Modbus ゲートウェイ (変換器) — Moxa MGate、Advantech EKI、USR-TCP232、ICP DAS tGW など
- PLC のシリアルモジュール — PLC が RTU シリアルを受け取り、Modbus TCP として再公開
RTU と TCP の違い
| 項目 | Modbus TCP | Modbus RTU |
|---|---|---|
| 物理層 | イーサネット | RS-485 / RS-232 |
| 伝送単位 | TCP segment | シリアル frame |
| スレーブ識別 | IP + (Unit ID) | Unit ID |
| ゲートウェイ経由のマッピング | 直接 | TCP IP 1個 + Unit ID 複数 |
| 応答速度 | 高速 | ボーレートの制限 (通常 9600~115200 bps) |
→ 1本の RS-485 ライン(= 1台の変換器 IP)に複数のスレーブがぶら下がっている 構成が最も一般的です。各スレーブは Unit ID の異なる別々の接続 として登録してください。
登録フォームの入力値
| 入力欄 | 何を入力するか | 例 |
|---|---|---|
| IP アドレス | RTU-over-TCP ゲートウェイの IP | 192.168.0.55 |
| ポート | ゲートウェイの TCP ポート | 502 (または 8899、4001 など変換器ごと) |
| Unit ID (slave-id) | シリアルスレーブアドレス (1~247) | 1 |
| 応答タイムアウト (request-timeout) | 応答待ち時間 (ms) | 5000 (シリアルは TCP より長めに) |
Unit ID が肝心
Modbus TCP と異なり、RTU は 同じ IP の背後に複数のスレーブ がぶら下がっています。Unit ID を間違えると「別の設備の値」が入ってきます。各スレーブのマニュアル / DIP スイッチ設定を確認してください。
変換器側の設定チェックリスト
| 項目 | 推奨値 |
|---|---|
| モード | Transparent / Modbus TCP-RTU gateway |
| ボーレート | スレーブと同一 (9600 / 19200 / 38400 など) |
| データビット / ストップビット / パリティ | スレーブと同一 (通常 8N1) |
| RTU response timeout | 1000~3000 ms |
| Inter-frame delay | 自動または 5~10 ms |
タグの PLC アドレス表記
タグアドレスの形式は Modbus TCP と同一 です (Modbus TCP ページ参照)。
| 表記 | 意味 |
|---|---|
holding-register:1 | Holding Register 1 (16-bit) |
holding-register:1:REAL | Holding Register 1~2 (32-bit float) |
coil:1 | Coil 1 (1 ビット) |
input-register:1 | Input Register 1 (16-bit、読み取り専用) |
5桁 / 6桁表記 (40001、400001) もそのまま受け付けます。
| 5桁 | 意味 |
|---|---|
1xxxx | Discrete Input |
0xxxx | Coil |
3xxxx | Input Register |
4xxxx | Holding Register |
データ形式のマッチング
Modbus TCP の表をそのまま適用してください。RTU だからといって別の形式が必要になることはありません。
よくある問題と対処
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「Read timeout」 | RTU のボーレート / パリティ mismatch | 変換器とスレーブのシリアルパラメータを同一に |
| 1台のスレーブだけ応答し、残りが「Slave not present」 | RS-485 終端抵抗 / 配線 / Unit ID 衝突 | ライン終端の終端抵抗 (120Ω)、Unit ID の重複を点検 |
| すべてのスレーブが無応答 | 変換器のモードが「TCP server」になっていない | 変換器設定で Modbus TCP-RTU gateway モードに |
| 断続的な timeout | シリアル衝突 (multiple master) | RS-485 master は1台のみ |
| 32-bit 実数が化ける | byte/word 順序 (Modbus TCP と同じ問題) | :UDINT_LSWORD_FIRST などの変形を試す |
次のステップ
- Modbus TCP のアドレス / 形式の表をそのまま使用
- 高度な設定 — REST API の Modbus 例 (RTU も同じ呼び出し)