agentsclimarketplace

Melsec iqr simple cpu comm csv

Skill mokouliszt/iQRSimpCPUCommSkill/skills/melsec-iqr-simple-cpu-comm-csv

MELSEC iQ-RシリーズのシンプルCPU通信設定のCSVを扱えるようにするAgentSkill

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.

One thing 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.

What its author says it does

Copied from the file, not written here

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` を併用すること。

SKILL.md

12.7 KB, 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 に変更

Keep looking

Skills are one crate of 328,083. 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.