目次
MP STUDIO 2 · Modbus 機器テーブル
機器テーブルは、機器がModbus RTU マスターとして、インバーター・温度調節器・他のPLCなどの相手機器(スレーブ)の値を読み書きする内容を、相手機器ごとの表にまとめる機能です(V1.1.0以降)。同じ相手機器の連続したアドレスは1回の通信にまとめて読み出し、書き込みは値が変わったときだけ送信します。ラダーのMBTRIGファンクションで、必要なタイミングでだけ送信させることもできます(V1.2.0以降)。
機器テーブルを開く
設定 → Modbus RTU マスターを選択すると開きます。新規プロジェクトと、機器テーブルがあるプロジェクトでは、機器テーブルウィンドウが開きます。従来のMP STUDIOで作成した一覧だけがあるプロジェクト(同梱のModbusサンプルなど)ではModbus RTU マスターの一覧ウィンドウが開き、そのウィンドウのテーブルへ移すで機器テーブルに変換できます(下記)。
通信ポートウィンドウでModbus RTU Masterに設定したポートがある場合は、そのウィンドウのModbus 機器テーブルを開くボタンからも開けます。
ウィンドウの構成
上段
| 項目 | 説明 |
|---|---|
| ポート | 機器テーブルで使う通信ポート(通信ポート1~通信ポート3)を選びます。ポートごとに、登録した相手機器の数もあわせて表示されます。 |
| 速度 | そのポートの通信設定です。押すと通信ポートウィンドウが開きます。 |
| 1 周 | ポーリングする読み出し・書き込みを1周するのにかかる予想時間です。 |
| RAM・フラッシュ | 機器テーブルが機器で使うメモリです。「旧方式 約 N KB」は、同じ内容を従来の一覧方式で入れた場合のサイズです。 |
OKを押すと、選んだポートがModbus RTU Masterに変わり、そのポートのダウンロードの使用がオフになります。まだMasterではないポートを選ぶと、ウィンドウの上部にこの案内が表示されます。
相手機器
左側の一覧で+ 機器を追加を押して相手機器を追加し、複製・機器を削除でコピーまたは削除します。相手機器を選ぶと、右上に設定が表示されます。
| 項目 | 既定値 | 説明 |
|---|---|---|
| 名前 | 機器 N | 表示用の名前です。 |
| 局番 | 空いている番号 | 0~247。同じポートで重複しないようにする必要があります。0はブロードキャスト(書き込みのみ)です。 |
| 応答待ち(ms) | 100 | 20~60000。応答を待つ時間です。 |
| リトライ(回) | 2 | 0~10。応答がないときに再送信する回数です。 |
| 再確認間隔(秒) | 5 | 1~3600。リトライしても応答がない相手機器はスキップし、この間隔ごとに再確認します。 |
| ワード順 | 下位ワード先頭 (CDAB) | 2ワード(32ビット)値のワード・バイトの順序です。 |
| 一度に読む最大 | 自動 | 1回の通信で読み出す最大の個数です。空欄にすると、機種に合わせて決まります。 |
| 追加待ち(ms) | 0 | 0~10000。通信と通信の間に追加で待つ時間です。 |
| 状態ワード | 空欄(使わない) | 相手機器の状態を受け取るワードアドレスです。自動を押すと、空いているDワードを選びます。 |
状態ワードには、ビット0 = 接続中、ビット1 = スキップ中、上位バイト = 最後のエラーが入ります。0の場合は未接続の状態です。
行
相手機器とやり取りする値を1行ずつ入力します。
| 列 | 説明 |
|---|---|
| 方向 | 読み出し・書き込み。機能によって決まります。 |
| 機能 | FC01~FC06、FC15、FC16から選びます。 |
| 機器アドレス | 相手機器のアドレス(0~65535)です。 |
| 個数 | 1の場合は値1つ、2以上の場合はPLC アドレスから連続する範囲です。 |
| PLC アドレス | 値をやり取りする機器のメモリです(例: D10)。 |
| 型 | PLC アドレスによって決まるデータ型です。 |
| 説明 | メモです。 |
| トリガー | 空欄にするとポーリングします。1~255を入力すると、ラダーのMBTRIGが呼び出したときだけ送信します(下記)。 |
| フレーム | この行が含まれる通信の番号です。下の実際に送信するフレーム一覧の番号と同じです。 |
+ 行を追加で行を追加します。Excelで「機能 · 機器アドレス · 個数 · PLC アドレス · 説明 · (トリガー)」の順にコピーして行を貼り付け(Excel)を押すか、表でCtrl+Vを押すと、複数の行を一度に入力できます。Enterで次の行へ移動し、Ctrl+Deleteで行を削除します。
ウィンドウ下部の実際に送信するフレームには、機器が実際に送信する通信が順に表示され、いちばん下には「値 N 個なら旧方式 N 回 → テーブル M 回」のように、従来の一覧方式と比べた通信回数が表示されます。OKを押すと適用されます。ファイルに残すには、プロジェクトを保存する必要があります。
読み出しと書き込み
- 読み出し: 同じ相手機器・同じ機能の連続した機器アドレスは、1回の通信にまとめて読み出します。図1の#1は、アドレス5と6を一度に読み出します。PLC側のアドレスは連続していなくてもかまいません。途中の空いているアドレスを含めて読み出すことはせず、一度に読む最大を超える場合は分割して読み出します。
- 順序: 相手機器とは、1台ずつ順に通信します。
- 書き込み: 開始時にすべての書き込み値を1回送信し、その後は値が変わったときだけ送信します。書き込みだけの相手機器には、約5秒ごとに再送信します。
- 応答がないとき: リトライの回数だけ再送信し、それでも応答がない場合は、その相手機器をスキップして再確認間隔ごとに再確認します。
トリガー送信(MBTRIG)
トリガー番号を付けた行は、ラダーのMBTRIGファンクションが呼び出したときだけ送信します。ボタンを押したときだけ設定値を送信したり、必要なときだけ値を読み出したりする場合に使用します。
- 送信する行のトリガー列に番号(1~255)を入力します。ウィンドウの下部にトリガー番号の表が表示されます。
- 送信の完了をラダーで知りたい場合は、トリガー番号の表の完了欄にビットアドレス(例:
M100)を入力します。 - OKを押します。
- ラダーに
MBTRIGファンクションを挿入し、同じ番号を入力します。ファンクションパネルのSerialport分類にあるMBTRIG: Send Modbus Triggerを選ぶか、ファンクションの挿入ウィンドウ(Ctrl+E)にMBTRIG 1のように入力します。
MBTRIGの入力がOFFからONに変わるたびに、その番号の行を1回送信します。入力をONにしたままでは繰り返しません。電源投入時にすでにONになっている入力では、1回送信します。- 読み出し行と書き込み行のどちらにも使えます。書き込み行は、値が変わっていなくても送信時点の値を送信します。
- 同じ番号の行はまとめて送信され、アドレスが連続していれば1回の通信にまとめられます。1つのポートの複数の相手機器に同じ番号を使えますが、別のポートで同じ番号は使えません。
- 送信前に複数回呼び出された場合は1回だけ送信し、送信中に呼び出された場合は、送信が終わった後にもう1回送信します。
- 完了欄は、送信が終わると成功・失敗に関係なく1スキャンの間ONになります。失敗の理由は、その相手機器の状態ワードで確認します。
- トリガー番号がある行は、開始時に自動では送信されません。番号がない行は、これまでどおりポーリングします。
MBTRIGの番号は1~255の定数で、機器テーブルにある番号である必要があります。そうでない場合はセルが赤く表示され、コンパイルされません。ラダーにMBTRIGがない番号の行は、トリガー番号の表に「ラダーに MBTRIG 1 がないため送信されません」と表示されます。
旧リストをテーブルへ移す
従来のModbus RTU マスターの一覧があるプロジェクトでは、一覧ウィンドウの左下にあるテーブルへ移すを押すと、機器テーブルに変換されます。一覧は空になって機器テーブルウィンドウが開き、「旧リスト 4 行を機器 1 台のテーブルに移しました」のように結果が表示されます。2ワード値の行は、FC16の行になります。
- 読み取れない行がある場合や、すでに機器テーブルがある場合は移しません。
- 移すとコンパイル結果が変わります。編集 → 元に戻す(
Ctrl+Z)で元に戻せます。 - 機器テーブルと従来の一覧を同時に使うことはできません。
モニタリング中の相手機器の状態
モニタリング中に機器テーブルウィンドウを開くと、状態ワードを設定した相手機器のカードに状態が表示されます。状態は、選択したポートの相手機器のものだけを読み出します。
| 表示 | 意味 |
|---|---|
| ● 接続中 | 正常に応答しています。 |
| ▲ 接続中 · エラー | 応答はありますが、エラーがあります(例: 例外応答01~06、CRCエラーなど)。 |
| ⏸ スキップ中 | 応答がないため、スキップしています。再確認間隔ごとに再確認します。 |
| ✕ 未接続 | 接続されていません。 |
灰色の○は、機器のプログラムがこのプロジェクトと異なる場合や、PLCが応答しない場合など、表示された状態を信頼できないときの表示で、その理由もあわせて表示されます。―は、状態ワードを設定していない相手機器です。
シミュレーション
シミュレーションすると、機器テーブルの相手機器が仮想のModbusスレーブとして動作し、シミュレーションバーに仮想機器 N 台と表示されます。機器テーブルウィンドウの仮想機器の値タブで読み出し値を変更したり書き込み値を確認したりでき、応答なしをオンにすると、その相手機器が応答しない状況を試せます。
- 仮想機器の値は保存されません。
MBTRIGと完了欄もシミュレーションされます。例外応答とCRCエラーはシミュレーションされません。- 問題がある機器テーブルと従来の一覧は、シミュレーションされません。
確認事項
- 機器テーブルで使うポートはModbus RTU Masterで、このチャンネルをダウンロードに使うがオフになっている必要があります。機器テーブルでOKを押すと、この設定に変わります。
- 機器のRAMが不足するとコンパイルされません。相手機器や行を減らすか、メモリ領域のサイズを小さくしてください。
- 受信先のアドレスが機器の時計(RTC)ブロックと重なると、受信した値が時刻で上書きされるという警告が表示されます。
- 機器テーブルはプロジェクトファイル(
.mpx)に保存されます。トリガーを使ったファイルは、V1.1.0では開けません。




