agentsclimarketplace

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

Install
npx -y skills add mokouliszt/iQRSimpCPUCommSkill --skill melsec-iqr-simple-cpu-comm-csv

Assembled 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 専用 のため上記を強制する。

根本原則

  1. GX Works3 が出力する CSV と完全バイト一致 を目標とする ── UTF-16LE+BOM/タブ区切り/CRLF/全セル "..." 囲み。手書きで編集して壊さないこと。
  2. 生成前に必ず validate で検証する ── デバイス番号・点数・ポート規則・パターン制約は機器種別ごとに異なり、エラーがあると GX Works3 がインポートを拒否する。
  3. このスキルは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_wait0
initial_comm"Disable"

設定行で省略されたキーのデフォルト:

キーデフォルト
target.tcp_udp"UDP"
target.cpu_no0 (指定なし)
target.option_hex""
timeout_ms1000
retry_count3
error_monitor_sec30 (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
30SLMP対応機器(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 ~ 655341~4999, 5010~65534
26 (FX3)1025~5548, 5552~655341~4999, 5010~65534
30 (SLMP)1~4999, 5010~655341~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 で決まる:

patternsrc(転送元)dst(転送先)
Read (読出)交信相手自局
Write (書込)自局交信相手

タイマ/積算タイマ/カウンタの 接点・コイル(TS/TC/STS/STC/CS/CC) は方向制約あり:

  • 交信相手側に置けるのは Read時のみ(接点は読出専用)
  • 自局側に置けるのは Write時のみ

CPUユニット側の事前設定(CSVには現れないが必要)

CSVをインポートしただけでは動作しない。実機側で以下も必要(PDF p.221, 223参照):

  1. ユニットパラメータ「応用設定」→「シンプルCPU通信設定」→「シンプルCPU通信使用有無」を 使用する に設定
  2. 自局の自ノード設定(IPアドレス、サブネットマスク、デフォルトゲートウェイ)
  3. 交信相手機器側の事前設定(PDF p.223 表参照、相手機器ごとに異なる)
  4. 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

references/

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.