Address Map Editor 操作説明書
PLC やマイコンのメモリマップ(アドレスマップ)を機器・ブロック単位で設計し、容量の枯渇を防ぎながら、仕様書・PLC ソフトへの貼り付け・ソースコードまでを同じデータから作るためのツールです。
1. 概要
装置の制御設計では、どの信号をどのデバイス(アドレス)に割り付けるかを最初に決めます。Address Map Editor は、この割り付け表を「機器(Device / Node)」と「その中のブロック(Module / Block)」の 2 階層で管理し、PLC の機種ごとに決まったデバイスの上限を超えないかを常に確認しながら設計できるツールです。
ブラウザだけで動き、外部のライブラリやサーバーは使いません。入力したデータはこの端末のブラウザの中にだけ自動保存され、どこにも送信されません。
2. チュートリアル(最初のマップを作る)
- 「PLC 設定…」でメーカーと機種を選びます。デバイスの範囲(例: 三菱 Q シリーズの
D0〜D12287)と番号の進み方(10 進 / 16 進)が自動で入ります。
- そのまま表に書き始めて構いません(既定の入れ物は「未分類」です)。装置やユニットで分けたいときは、左のツリーで「機器を追加」「ブロック追加」を押すか、System Diagram Editor から構成を受け取ります。あとから「選択行を新しいブロックにまとめる」で整理することもできます。
- 表にそのまま名前を打ち込みます。Enter で下へ、Tab で右へ進み、いちばん下で Enter を押すと行が増えます(型と方向は上の行から引き継ぎます)。Excel の一覧や PLC のデバイスコメントは「取込…」に貼り付けます。
- 「アドレス割付…」(Ctrl+R)で、BOOL は M デバイス、数値は D デバイス、のように割り付け先を決めて一気に割り付けます。
- 右の「使用量」タブで、デバイスごとの使用率を確認します。上限を超えた場合は赤く表示され、チェックにも出ます。
- 「デバイス別コピー…」(Ctrl+L)で D デバイス・M デバイスごとの一覧を作り、GX Works などにそのまま貼り付けます。
3. 機器とブロックの階層
左のツリーは「プロジェクト → 機器 → ブロック」の 3 段です。機器は装置やユニットの大まかな単位(盤・ロボット・コンベアなど)、ブロックはその中の機能単位(指令・状態・パラメータなど)に使います。ツリーの項目をクリックすると、変数一覧にその範囲の変数だけが表示され、機器やプロジェクト全体を選んだときはブロックごとの見出し行が入ります。
ブロックはツリー上でドラッグして別の機器へ移せます。変数の行を選んでツリーのブロックへドロップすると、その変数だけを移動できます。ツリーの各行には、そのまとまりが使っているデバイスの範囲(例: D100〜D131 / M0〜M15)が表示され、上限を超えている場合は赤く示されます。
4. PLC 機種とデバイス範囲
「PLC 設定…」では、三菱電機(MELSEC-Q / iQ-R)、オムロン(NJ / NX)、キーエンス(KV-8000)、マイコン(バイトアドレス)、IEC 61131-3(%M)から選べます。選ぶと、その機種で使えるデバイスの一覧(コード・名前・種類・進み方・範囲)が表に入ります。
表の値はそのまま編集できます。実機のパラメータでデバイス点数を変更している場合や、設計ルールで使用範囲を限定したい場合は、範囲を書き換えてください。変更内容はプロジェクトの JSON に一緒に保存されます。デバイスの種類は、ビット(M0 など 1 点 1 ビット)、ワード(D0 など 1 点 16 ビット)、ch.bit(キーエンスの R100 = ch1 の bit0)、バイト(マイコン)から選びます。
5. エリアを確保して表を作る(Ctrl+B)
「この範囲は押さえておく」と決まっているときは、エリア確保が早道です。デバイス・型・開始アドレス・点数(または終了アドレス)を指定すると、その分の行がまとめて作られ、アドレスがあらかじめ入った表になります。1 件ずつ「追加」を押す必要はありません。
- 型ごとにエリアを分けられます。「BOOL は M0〜M255」「WORD は D100〜D163」のようにエリアを分けて作ると、ブロック(=エリア)ごとに表が分かれ、BOOL と WORD が 1 列に混ざりません。
- ワードデバイスに BOOL のエリアを取るときは「1 語を 16 ビットに分ける」を選べます(
D200.0〜D200.F の 16 行が作られます)。
- 名前は「アドレスをそのまま」「接頭辞+連番」「空のまま」から選べます。
- エリアの末尾に行を足すと、続きのアドレスが自動で入ります(貼り付けで行が増えたときも同じです)。
作ったエリアは左のツリーに M エリア(BOOL) M0〜M255(BOOL) のように出て、表の見出し行にも「確保: 〜」と表示されます。上限を超える指定はエラーで知らせます。
6. Excel・仕様書の表から流し込む
確保したエリアに中身を入れるときは、Excel や仕様書の表をそのまま貼り付けられます。
- 1 列だけ貼る: 名前の列の先頭セルを選んで Ctrl+V。上から順に埋まります(アドレスはそのまま)。行が足りなければ自動で増え、エリアなら続きのアドレスも入ります。
- デバイス+コメントの表を貼る:
M0 起動要求 のようにデバイスが入った表を貼ると、同じアドレスの行を探して上書きします。新しいアドレスの行だけが追加されます。
- 見出し付きの表を貼る: 「名前・型・方向・アドレス・初期値・コメント」などの見出しがあれば、列の並び順に関係なく判定します(「取込…」ダイアログでも同じで、「同じアドレスの行があれば上書きする」を選べます)。
7. アドレス割付(新規・シフト・移動)
アドレスに関する操作は「アドレス割付…」(Ctrl+R)の 1 つにまとまっています。ダイアログの上で方法を選びます。
- 新しく割り付ける: 対象(選択中のブロック / 選択行 / 未設定のみ / すべて)に、BOOL の割り付け先・数値の割り付け先をそれぞれ決めて順に振ります。開始アドレスの既定は「そのデバイスで使っている続き」です(前の空きを詰めたいときはチェックを入れます)。
- 先頭アドレスだけ変える(シフト): ブロックの中の並びはそのままで、先頭だけをずらします。
- 別のデバイスへ丸ごと移す: ブロックの変数をまとめて別のデバイスの空きに詰め直します。「空きを探す」で空いている先頭が入ります。
表の中で Ctrl+D を押すと、1 つ上のセルの値が入ります。アドレス列では「続きのアドレス」を振るので、数行だけ手早く埋めたいときに便利です。32 ビット以上の型を境界にそろえておくと、C 言語の構造体に写したときに詰め物が入らず、実機のメモリと一致させやすくなります。
8. 使用量の確認と枯渇対策
右の「使用量」タブには、デバイス領域ごとに使用率のゲージが並びます。70% を超えると黄色、上限を超えると赤で表示され、下にそのデバイスを使っているブロックの一覧が出ます。ブロックのチップを別のデバイスのゲージへドラッグ&ドロップすると、そのブロックの変数をまとめてその領域の空きに移せます。上限を超えるアドレスを手で入力した場合や、自動割付で入りきらなかった場合はエラーとして表示され、割り付けは行われません。
9. PLC からの取り込み
「取込…」は、見出し付きの Excel 表のほか、PLC のプログラミングツールが書き出すデバイスコメントをそのまま受け付けます。GX Works2 / GX Works3("D100","起動要求" の形式)、KV STUDIO、Sysmac Studio / CX-Programmer の変数表(Name, Data Type, AT, Comment)に対応し、先頭列がデバイスの形をしていれば自動で判定します。デバイスの種類から型(ビットデバイス = BOOL、ワードデバイス = WORD)も自動で補います。取り込み先のブロックは、ダイアログ上部で選べます。
10. デバイス別コピーと出力
「デバイス別コピー…」(Ctrl+L)は、D デバイス・M デバイスのようにデバイス領域ごとに変数を抽出してアドレス順に並べた一覧を作ります。形式は「デバイスコメント」「グローバルラベル」「詳細」から選べ、ワンクリックで TSV としてクリップボードにコピーできるので、GX Works のデバイスコメント編集画面やラベル編集画面にそのまま貼り付けられます。このほか、出力メニューから Markdown(機器・ブロックごとの章立てと使用量サマリ付き)や CSV を書き出せます。
11. コード生成
「コード生成…」(Ctrl+G)では 3 つの形式を作れます。C / C++ 構造体ヘッダは、機器・ブロックごとに構造体を作り、すき間は予約領域、BOOL はビットフィールドにまとめます(#pragma pack(push,1) と大きさの検査付き)。C アドレス定義は #define で番地とビットを並べた軽い形式です。IEC 61131-3 グローバル変数は VAR_GLOBAL … END_VAR の形式で、機器・ブロックごとにコメントで区切って出力します。
12. ショートカットキー
| キー | 動作 |
| Enter(最終行) | 新しい行を足して、そのまま入力を続ける |
| Ins / Ctrl+Delete | 変数の追加 / 選択行の削除 |
| F2 / 文字キー | セル(ツリーでは名前)の編集 |
| Ctrl+D / Ctrl+Shift+D | 上のセルの値を入れる(アドレス列は続きを振る) / 行の複製 |
| Alt+↑↓ | 行の並べ替え |
| Ctrl+C / Ctrl+V | TSV でコピー / 貼り付け |
| Ctrl+R | アドレス割付(シフト・移動もここ) |
| Ctrl+L / Ctrl+G | デバイス別コピー / コード生成 |
| Ctrl+S / Ctrl+O | 保存 / 開く |
| Ctrl+Z / Ctrl+Y | 元に戻す / やり直し |
| F1 | 操作一覧 |
13. 他のツールとの連携
このツールは 4 つの設計ツールの 2 番目です。ツールバー右の行き来ボタンで、データを持ったまま前後へ移動できます。
- System Diagram Editor: 機器・ブロック・通信のつながりを決める(「← 構成図」で開くと、この一覧の機器・ブロックを渡します)
- Address Map Editor(このツール): 変数とアドレスを割り付ける
- Timing Chart Editor: 変数の時間的な動きと因果関係を決める(「タイミングチャートへ →」。行を選んでいればその変数だけを渡します)
- Flowchart Editor: 因果関係からプログラムの流れに落とす
保存する JSON は 4 つのツール共通のスキーマ(devices / variables / triggers)です。構成図から受け取った機器・ブロックは、変数を入れる箱としてそのまま使えます(今ある変数は消えません)。階層を使わずにフラットなまま書き始めても構いません(既定の入れ物は「未分類」です)。
不具合の報告・機能の要望は yk.builds.space@gmail.com までお寄せください。再現手順と、可能であれば保存した JSON を添えていただけると調査が早くなります。