Melsec iqr simple cpu comm csv
Skill mokouliszt/iQRSimpCPUCommSkill/skills/melsec-iqr-simple-cpu-comm-csv
MELSEC iQ-Rシリーズ(三菱電機シーケンサ)のCPUユニット内蔵Ethernetポート部「シンプルCPU通信機能」の設定CSVファイルを生成・検証・解析する。GX Works3 が "シンプルCPU通信設定" 画面でインポート/エクスポートする UTF-16LE BOM付タブ区切りCSV(バイト一致レベル)を生成する。ユーザが「シンプルCPU通信」「Simple CPU Communication」「内蔵Ethernet」「GX Works3 のCSVインポート/エクスポート」「機器種別」「定期交信」「要求時交信」「実行間隔」「通信開始待ち時間」「初回交信設定」「異常監視時間」「交信相手IPアドレス」「対象号機」「シンプルCPU通信診断」などに言及した場合、または iQ-R から iQ-R/Q/L/iQ-F/iQ-L/A/AnS/FX3/SLMP対応機器 とのEthernet経由デバイス送受信パラメータの設定ファイルを作成・編集・検証したい場合は必ずこのSkillを参照すること。デバイスそのものの分類体系・命名規則は姉妹Skill `melsec-iqr-device-overview`、個別デバイスの数値スペックは `melsec-iqr-device-specifications` を併用すること。From its SKILL.md
npx -y skills add mokouliszt/iQRSimpCPUCommSkill --skill melsec-iqr-simple-cpu-comm-csvAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 3 commands, including `python3 scripts/generate_csv.py generate <config.json> <out.csv>` and 2 more.
SKILL.md
12.7 KB, ~4.5k tokens by cl100k_base, as published. Nobody here has run it
MELSEC iQ-R シンプルCPU通信 設定CSV ジェネレータ
このSkillは、MELSEC iQ-RシリーズCPUユニットの シンプルCPU通信機能 (内蔵Ethernetポート部)の設定を、GX Works3 と完全互換の CSVファイル として生成・検証・逆解析する。
出典: MELSEC iQ-R Ethernetユーザーズマニュアル(応用編) 1.15節 (p.220-242)。
このSkillの守備範囲
| 扱う | 扱わない |
|---|---|
| シンプルCPU通信設定 (1.15節) のCSV生成・検証・解析 | 他のEthernet通信機能(MELSOFT接続、SLMP通信、ソケット通信、CC-Link IEFB Basic等) |
| 機器種別 16/17/18/19/20/22/23/25/26/30 の交信相手対応 | 安全CPU通信(RnSF/RnPSF)の安全デバイス通信 |
ヘッダー部 (ファイルバージョン/対象ユニット/自局IPアドレス/IPアドレス入力形式/デバイス割付方法/通信開始待ち時間/初回交信設定) | 自局CPU の Ethernet 自ノード設定/二重化設定(自ノード設定/B系IPアドレス等は別途設定) |
| 設定No.1~64 の各カラム(通信パターン/交信設定/実行間隔/IP/ポート/対象号機/ビット・ワードデバイス/タイムアウト/リトライ/異常監視時間/コメント) | リモートパスワード設定/セキュリティ設定 |
| デバイス種別の機器種別ごとの可否・範囲(PDF p.224-228 完全反映) | エンジニアリングツールGUIの操作手順 |
| ビット先頭16倍数チェック・1設定512ワード上限・全体8192ワード上限 | エラーコードCFB4H 等の異常応答コード解析(マニュアル参照) |
⚠️ iQ-Rプロジェクトの固定制約(重要)
GX Works3 のシンプルCPU通信設定画面で iQ-Rプロジェクト時に 編集不可(グレーアウト) な項目があり、それらに値を入れた CSV をインポートすると GX Works3 が該当行を破棄してデフォルト値の空行に置き換える。本スクリプトはこれらを違反した時点でバリデーションエラーで停止する。
| 項目 | iQ-R での値 | 備考 |
|---|---|---|
IPアドレス入力形式 (header.ip_format) | "DEC" 固定 | 10進数のみ。HEX は GUI で選択不可 |
オプション(16進数) (settings[].target.option_hex) | "" 固定 | GUI で編集不可。SLMP 含めて全機器種別で空欄必須 |
これは MELSEC iQ-R Ethernetマニュアル本文には明記されていない、GX Works3 GUI実装上の制約。 他CPU(QnUDV等)では HEX 指定可能と推測されるが、本スキルは iQ-R 専用 のため上記を強制する。
根本原則
- GX Works3 が出力する CSV と完全バイト一致 を目標とする ── UTF-16LE+BOM/タブ区切り/CRLF/全セル
"..."囲み。手書きで編集して壊さないこと。 - 生成前に必ず
validateで検証する ── デバイス番号・点数・ポート規則・パターン制約は機器種別ごとに異なり、エラーがあると GX Works3 がインポートを拒否する。 - このスキルはCSV専用 ── ユニットパラメータ書込みやCPUリセット等の実機操作は別途エンジニアリングツールで行う必要がある。
ディレクトリ構成
melsec-iqr-simple-cpu-comm-csv/
├── SKILL.md ← 本ファイル
├── scripts/
│ ├── generate_csv.py ← メインCLI(generate / validate / parse)
│ └── device_ranges.json ← 機器種別ごとのデバイス範囲データ
├── examples/
│ └── example_config.json ← 添付サンプルと同等のCSVを再現する設定例
└── references/
├── csv_format.md ← CSVフォーマット仕様(バイト構造・カラム並び・基数)
└── validation_rules.md ← 全バリデーション規則の一覧
使い方
CLI
# JSON設定からCSVを生成(生成前に自動検証)
python3 scripts/generate_csv.py generate <config.json> <out.csv>
# JSONを検証のみ(CSVは書かない)
python3 scripts/generate_csv.py validate <config.json>
# 既存CSVをJSON設定にデコード(編集ベース作成や差分確認に有用)
python3 scripts/generate_csv.py parse <in.csv> [<out.json>]
parse → 編集 → generate のラウンドトリップはバイト一致を保つ。既存CSVを起点に差分修正したい場合に推奨。
最小JSON設定
{
"header": {
"target_unit": "R04CPU",
"local_ip": "192.168.3.39"
},
"settings": [
{
"no": 1,
"pattern": "Read",
"schedule": "periodic",
"interval": 100,
"target": {
"device_type": "iQ-R",
"ip": "192.168.3.40"
},
"word_device": {
"src": {"type": "D", "start": 0, "end": 99},
"dst": {"type": "D", "start": 0, "end": 99}
}
}
]
}
ヘッダーで省略されたキーは妥当なデフォルトが入る:
| キー | デフォルト |
|---|---|
file_version | "1" |
title | "" |
ip_format | "DEC" |
device_assignment | "Start/End" |
comm_start_wait | 0 |
initial_comm | "Disable" |
設定行で省略されたキーのデフォルト:
| キー | デフォルト |
|---|---|
target.tcp_udp | "UDP" |
target.cpu_no | 0 (指定なし) |
target.option_hex | "" |
timeout_ms | 1000 |
retry_count | 3 |
error_monitor_sec | 30 (periodic時) / 不要 (request時) |
comment | "" |
完全な設定例は examples/example_config.json 参照。これは添付の simpcomsample.csv をバイト一致で再現する。
機器種別コードの早見表
PDF p.230 のCSV格納値マッピング。device_type には数値・別名文字列どちらでも指定可。
| コード | 機器種別 | 別名 |
|---|---|---|
| 16 | 三菱iQ-R(内蔵Ethernet) | iQ-R, R |
| 17 | 三菱Q(内蔵Ethernet) | Q |
| 18 | 三菱L(内蔵Ethernet) | L |
| 19 | 三菱iQ-F(内蔵Ethernet) | iQ-F |
| 20 | 三菱iQ-L(内蔵Ethernet) | iQ-L |
| 22 | 三菱Q(Ethernetユニット) | Q-EU |
| 23 | 三菱L(Ethernetユニット) | L-EU |
| 25 | 三菱A/AnS(Ethernetユニット) | A, AnS |
| 26 | 三菱FX3(Ethernetブロック・アダプタ) | FX3 |
| 30 | SLMP対応機器(QnA互換3Eフレーム) | SLMP |
ポート番号規則の早見表
PDF p.222 の表に基づく。コード 16-23 は port / local_port の指定不可(CSV上は空欄必須)。
| 機器種別 | port (相手) | local_port (自局) |
|---|---|---|
| 16, 17, 18, 19, 20, 22, 23 | 空欄必須 | 空欄必須 |
| 25 (A/AnS) | 256 ~ 65534 | 1~4999, 5010~65534 |
| 26 (FX3) | 1025~5548, 5552~65534 | 1~4999, 5010~65534 |
| 30 (SLMP) | 1~4999, 5010~65534 | 1~4999, 5010~65534 |
注意: PDF p.222 の表は 自局ポート番号 列がセル結合されており、A/AnS / FX3 / SLMP の3行で同じ値(1~4999, 5010~65534)を共有している。port (相手側) は機器種別ごとに異なる。
SLMP の port は 5000~5009 の隙間がNG で、ここを指定すると GX Works3 がインポート時に行を破棄する。
ビットデバイスの絶対制約 ⚠️
PDF p.224 が明示する 絶対制約:
- ビットデバイスの先頭は
0または16の倍数(M5は不可、M0/M16/M32はOK) - ビットデバイスの点数は
16の倍数、最小 16、最大 8192 - ワードデバイスの点数は最大 512
- 1設定の点数 ≤ 512ワード(ビット n 点 = n/16 ワード換算)
- 全64設定の合計 ≤ 8192ワード
これらは生成時にハードフェイルする。
通信パターンとデバイス側の対応関係
「自局」と「交信相手」のどちらが転送元・転送先になるかは pattern で決まる:
| pattern | src(転送元) | dst(転送先) |
|---|---|---|
Read (読出) | 交信相手 | 自局 |
Write (書込) | 自局 | 交信相手 |
タイマ/積算タイマ/カウンタの 接点・コイル(TS/TC/STS/STC/CS/CC) は方向制約あり:
- 交信相手側に置けるのは Read時のみ(接点は読出専用)
- 自局側に置けるのは Write時のみ
CPUユニット側の事前設定(CSVには現れないが必要)
CSVをインポートしただけでは動作しない。実機側で以下も必要(PDF p.221, 223参照):
- ユニットパラメータ「応用設定」→「シンプルCPU通信設定」→「シンプルCPU通信使用有無」を 使用する に設定
- 自局の自ノード設定(IPアドレス、サブネットマスク、デフォルトゲートウェイ)
- 交信相手機器側の事前設定(PDF p.223 表参照、相手機器ごとに異なる)
- CPUユニットへ書込み後、リセットまたは電源OFF→ON で通信開始
リモートパスワードが設定された交信相手にはシンプルCPU通信は実行できない(PDF p.241)。
二重化システム(プロセスCPU)の場合
PDF p.236-240 参照。
- A系・B系で異なるIPアドレス(
自ノード設定のIPアドレス(A系) と二重化設定のB系IPアドレス)を持つ - 交信相手が 三菱FX3 / 三菱A/AnS の場合、A系用とB系用で 異なるポート番号 を設定する必要あり(同IPに対し同ポート不可)
- そのため、同一交信相手に対し設定No.1(A系用)と設定No.2(B系用)を別々に作る
このスキルは単体ではA系/B系を意識しないので、二重化用CSVを作る場合は2件の設定として記述する。
詳細仕様への参照
- バイトレベルのCSV構造・カラム並び・基数規則 →
references/csv_format.md - 全バリデーション規則の網羅的列挙 →
references/validation_rules.md - 機器種別ごとのデバイス範囲(プログラムから参照) →
scripts/device_ranges.json
デバイスの 概念的な知識(分類体系・グローバル/ローカル区分・ラッチ・インデックス修飾など)が必要な場合は姉妹Skill melsec-iqr-device-overview を、個別デバイスの数値スペック(点数・範囲・基数)の補強情報が必要な場合は melsec-iqr-device-specifications を併用すること。
トラブルシューティング
| 症状 | 確認ポイント |
|---|---|
| GX Works3 でインポート時にエラー | エンコードがUTF-16LE+BOMか、行区切りCRLFか、全セル " 囲みか |
| インポート後パラメータ書込みできない | 「応用設定→シンプルCPU通信設定→使用有無」が「使用する」になっているか |
| 通信が開始しない | CPUのリセット/電源OFF→ON済みか、相手機器の事前設定(p.223)が済んでいるか |
エラーコードCFB4H が格納される | 交信相手 (FX3 / A/AnS) からの異常応答 — 異常応答コードバッファメモリ参照 |
| 実行間隔が設定値より長くなる | 他通信機能との同時実行で遅延 — TCPに切替えるか実行間隔に余裕を持たせる (PDF p.241) |
| 初回交信が始まらない | 初回交信設定が Disable で交信相手未起動だった可能性 — Enable に変更 |
What ships with it: 7 files
74.9 KB alongside SKILL.md, 1 of them executable
examples/
references/
- csv_format.md7.3 KB
- validation_rules.md9.2 KB
scripts/
- device_ranges.json15.7 KB
- generate_csv.pyruns38.3 KB