agentsclimarketplace

Iec61131 3 motioncontrol melsec

Skill mokouliszt/iec61131-3-motioncontrol-skill/skills/iec61131-3-motioncontrol-melsec

三菱電機 MELSEC iQ-R シリーズの **PLCopen Motion Control FBライブラリ** を使った STコードを書くためのSkill。シンプルモーションユニット(RD77GF, RD77MS)と、 CC-Link IE フィールドネットワーク マスタユニット(RnENCPU, RJ71GF11-T2, RJ71EN71)+ MR-J4-GFサーボの構成に対応。 対象ライブラリ: - **MotionControl_RD77** (RD77GF, RD77MS 用、26FB) - **MotionControl_J4GFIO** (RJ71GF11-T2, RJ71EN71, RnENCPU, RD77GF 用、12FB) 本Skillは「STコードを書く」ところまでを担当。FBそのものは三菱公式から ダウンロードする内容保護形式のライブラリファイル(.mslm)に同梱されており、 本Skillは生成しない。STコードからエンジニアリングツール用XMLへの変換は jiecc-skill に移譲する。 ## 起動する依頼パターン ### 1. RD77 / J4GFIO のSTコード作成依頼 - 「RD77GFで軸を動かしたい」「RD77MSで原点復帰させて」 - 「シンプルモーションでPLCopen FBを使って位置決め」 - 「RJ71GF11-T2 + MR-J4-GF でサーボ制御」 - 「RnENCPU でCC-Link IE Field 経由でモータ動かす」 - 「PLCopen の MC_Power, MC_MoveAbsolute を呼び出すSTを書いて」 ### 2. PLCopen Motion Control FB の使い方の質問 - 「MC_Power と MC_MoveAbsolute の違い」「Execute型 vs Enable型」 - 「AXIS_REF と AXIS_REF_J4GF の違い」「MasterModule の値」 - 「PLCopen 状態遷移(Disabled / Standstill / DiscreteMotion 等)」 - 「軸エラーの読出しと復旧(MC_ReadAxisError, MC_Reset)」 ### 3. ユニット選定・構成相談 - 「RD77GF と RD77MS の違い」「RJ71GF11-T2 と RJ71EN71 の使い分け」 - 「シンプルモーションユニットを使うならどのライブラリ?」 - 「CC-Link IE Field マスタユニットで使えるFBは?」 - 「RD77GF + J4GFIO 併用時の注意点」 ### 4. ライブラリ取込み・設定の質問 - 「MotionControl_RD77.mslm のダウンロード先」 - 「ライブラリの登録手順」「マクロ型 / サブルーチン型」 - 「G_stLinkIEF のグローバルラベル設定」 - 「サーボパラメータ PA19 を 00ABh に設定する理由」 ### 5. エラー対応 - 「ErrorID 1100 とは」「1101 / 1200 / 1203 / 1207 のエラー」 - 「MC_Reset の使い方」「軸エラー復旧シーケンス」 - 「サーボアラームと FB エラーの違い」 ## 起動してはいけない依頼パターン - **RD78G(H) / モーションCPU の依頼** — 別ライブラリ(MotionControl_RD78)であり、 本Skillの対象外 - **MR-J4-A / MR-J4-B 系(CC-Link IE 非対応)の依頼** — SSCNETIII/H 直結や アナログ・パルス列指令は対象外(RD77MS 経由でのSSCNETIII/H は対象内) - **iQ Monozukuri 製品単独の依頼** — 本ライブラリと組み合わせる場合のみ対応 - **オムロン・キーエンス・CODESYSの PLCopen FB** — 本Skillは三菱電機専用 ## 暗黙の連携 本Skillで生成したSTコードを GX Works3 用 XMLに変換したい場合、ユーザーが 「XMLにして」「GX Works3 にインポートしたい」と依頼すれば、 [jiecc-skill](https://github.com/mokouliszt/jiecc-skill) に自然に引き継がれる。 ST言語そのものの仕様(データ型・制御構造・標準POU)に関する質問は、 [iec61131-3-st-skill](https://github.com/mokouliszt/iec61131-3-st-skill) を併用すること。From its SKILL.md

Install
npx -y skills add mokouliszt/iec61131-3-motioncontrol-skill --skill iec61131-3-motioncontrol-melsec

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

  • 0 stars0 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.

SKILL.md

16.1 KB, ~4.3k tokens by cl100k_base, as published. Nobody here has run it

IEC 61131-3 Motion Control (Mitsubishi MELSEC) Skill

三菱電機 MELSEC iQ-R シリーズの PLCopen Motion Control FBライブラリ (MotionControl_RD77, MotionControl_J4GFIO)を使った ST言語プログラム作成を 支援するSkill。

参考資料: 三菱電機公式マニュアル「PLCopen Motion Control FBリファレンス」 (BCN-B62005-756-G)


★必読★ FB本体は本Skillでは生成しない

本Skillで生成するのは 「FBを呼び出して使う」ST コード のみ。

FB本体・ローカルラベル・グローバルラベル(G_stLinkIEF 等)・構造体本体 (AXIS_REFstMC_RD77 等のメーカ設定用メンバ)は、三菱電機が内容保護形式 (.mslm)で配布しており、ユーザーは公式から取得して GX Works3 にインポートする 必要がある。

ライブラリ入手先

https://www.mitsubishielectric.co.jp/fa/download/software/detailsearch.page?mode=lib&kisyu=/ssc&shiryoid=0000000094&lang=1&select=3&softid=3&infostatus=2_2_7&viewradio=0

(三菱電機 FA ダウンロードサイト「サーボシステムコントローラ 制御機器 ダウンロード」)

入手するファイル:

  • MotionControl_RD77_*.mslm — シンプルモーションユニット用
  • MotionControl_J4GFIO_*.mslm — CC-Link IE Field マスタユニット用

詳細手順は references/library-setup.md を参照。


対応ユニット早見表

構成ユニット形名(網羅)必要ライブラリ接続方式最大軸数
シンプルモーションRD77GFMotionControl_RD77CC-Link IE Field(PN03=0 モーションモード)32
シンプルモーションRD77MSMotionControl_RD77SSCNETIII/H 直結16
CC-Link IE Field マスタRJ71GF11-T2 + RnCPUMotionControl_J4GFIOCC-Link IE Field(PN03=1 I/Oモード)120
CC-Link IE Field マスタRJ71EN71 + RnCPUMotionControl_J4GFIOCC-Link IE Field(PN03=1 I/Oモード)120
CPU内蔵CC-Link IE FieldRnENCPUMotionControl_J4GFIOCC-Link IE Field(PN03=1 I/Oモード)120
RD77GF を J4GFIO マスタとして使用RD77GFMotionControl_J4GFIO(軸番号重複不可、RD77GF + J4GFIO 併用)CC-Link IE Field(J4GFIO側 120)

⚠️ RJ71GF11-T2, RJ71EN71 は単体では動作せず、必ず RnCPU との組合せで使用。 RnENCPU は CPU 内蔵の CC-Link IE Field 機能を使う。


ファイル構成

iec61131-3-motioncontrol-melsec/
├── SKILL.md                              (このファイル)
├── references/
│   ├── overview.md                         全体概要・PLCopen 状態遷移・ライブラリ概要
│   ├── library-setup.md                    ★ライブラリ入手・登録・設定手順
│   ├── error-handling.md                   エラーコード一覧・復旧パターン
│   ├── common-patterns.md                  典型的な実装パターン
│   ├── units/                              ユニット別解説(形名省略なし)
│   │   ├── rd77ms.md                         RD77MS(シンプルモーション・SSCNETIII/H)
│   │   ├── rd77gf.md                         RD77GF(シンプルモーション・CC-Link IE Field)
│   │   ├── rj71gf11-t2.md                    RJ71GF11-T2(マスタ)+ RnCPU
│   │   ├── rj71en71.md                       RJ71EN71(マスタ)+ RnCPU
│   │   └── rnencpu.md                        RnENCPU(CPU内蔵マスタ)
│   └── fbs/
│       ├── common-io/                      共通の入出力構造体・グローバルラベル
│       │   ├── axis-ref.md                   AXIS_REF(RD77用)
│       │   ├── axis-ref-j4gf.md              AXIS_REF_J4GF(J4GFIO用)
│       │   ├── mc-input-ref.md               MC_INPUT_REF_DI16
│       │   ├── mc-output-ref.md              MC_OUTPUT_REF_DO16
│       │   ├── mc-direction.md               MC_DIRECTION(方向選択)
│       │   ├── master-module-ref.md          MASTER_MODULE_REF(マスタ選択)
│       │   └── g-stlinkief.md                G_stLinkIEF グローバルラベル
│       ├── rd77/                           MotionControl_RD77 全26FB
│       │   ├── mc-power.md
│       │   ├── mcv-home.md
│       │   ├── mc-stop.md
│       │   ├── mc-moveabsolute.md
│       │   ├── mc-moverelative.md
│       │   ├── mc-moveadditive.md
│       │   ├── mc-movevelocity.md
│       │   ├── mc-torquecontrol.md
│       │   ├── mc-setposition.md
│       │   ├── mc-setoverride.md
│       │   ├── mc-readparameter.md
│       │   ├── mc-writeparameter.md
│       │   ├── mc-readactualposition.md
│       │   ├── mc-readactualvelocity.md
│       │   ├── mc-readactualtorque.md
│       │   ├── mc-readstatus.md
│       │   ├── mc-readaxisinfo.md
│       │   ├── mc-readaxiserror.md
│       │   ├── mc-reset.md
│       │   ├── mc-readdigitalinput.md        +DI16
│       │   ├── mc-readdigitaloutput.md       +DO16
│       │   ├── mc-writedigitaloutput.md      +DO16
│       │   ├── mcv-readservoparameter.md     +RD77GF(RD77GF専用)
│       │   ├── mcv-writeservoparameter.md    +RD77GF(RD77GF専用)
│       │   ├── mcv-jog.md
│       │   └── mcv-inch.md
│       └── j4gfio/                         MotionControl_J4GFIO 全12FB
│           ├── mc-power.md
│           ├── mcv-home.md
│           ├── mc-stop.md
│           ├── mc-moveabsolute.md
│           ├── mc-moverelative.md
│           ├── mc-readactualposition.md
│           ├── mc-readstatus.md
│           ├── mc-readaxisinfo.md
│           ├── mc-readaxiserror.md
│           ├── mc-reset.md
│           ├── mcv-readservoparameter.md
│           └── mcv-writeservoparameter.md
└── examples/                             実用パターン集
    ├── basic-positioning-rd77ms.txt
    ├── basic-positioning-rd77gf.txt
    ├── basic-positioning-j4gfio.txt
    ├── multi-axis-sequence.txt
    └── error-recovery.txt

使い方ガイド

ユニット形名から探す

質問 / 依頼参照すべきファイル
RD77MS で軸制御したいreferences/units/rd77ms.md
RD77GF で軸制御したいreferences/units/rd77gf.md
RJ71GF11-T2 マスタを使いたいreferences/units/rj71gf11-t2.md
RJ71EN71 マスタを使いたいreferences/units/rj71en71.md
RnENCPU を使いたいreferences/units/rnencpu.md

FB機能から探す

やりたいこと参照すべきFB
軸を運転可状態にmc-power.md
原点復帰mcv-home.md
強制停止mc-stop.md
絶対値位置決めmc-moveabsolute.md
相対値位置決めmc-moverelative.md
目標位置変更(移動中の補正)mc-moveadditive.mdRD77のみ
速度制御mc-movevelocity.mdRD77のみ
トルク制御mc-torquecontrol.mdRD77のみ
現在位置変更mc-setposition.mdRD77のみ
オーバーライドmc-setoverride.mdRD77のみ
パラメータ読出/書込mc-readparameter.md / mc-writeparameter.mdRD77のみ
現在位置/速度/トルク読出mc-readactualposition.md
ステータス読出mc-readstatus.md
軸情報・軸エラー読出mc-readaxisinfo.md / mc-readaxiserror.md
エラーリセットmc-reset.md
デジタル入出力読出/書込mc-readdigitalinput.md 等(RD77 のみ
サーボパラメータ読出/書込mcv-readservoparameter.md / mcv-writeservoparameter.md
JOG運転mcv-jog.mdRD77のみ
インチング運転mcv-inch.mdRD77のみ

よくあるシナリオ

シナリオ参照すべきファイル
ライブラリの入手・取込みreferences/library-setup.md
エラーコード調査references/error-handling.md
PLCopen 状態遷移を理解したいreferences/overview.md
典型的な実装例を見たいreferences/common-patterns.md または examples/*.txt

ライブラリの選択フローチャート

ユーザーが使いたい構成は?
│
├─ シンプルモーションユニット
│   ├─ RD77MS(SSCNETIII/H 直結)
│   │   → MotionControl_RD77 のみ使用
│   │     references/units/rd77ms.md
│   │
│   └─ RD77GF(CC-Link IE Field 接続)
│       ├─ MR-J4-GF を「モーションモード」(PN03=0) で使用
│       │   → MotionControl_RD77 を使用
│       │     references/units/rd77gf.md
│       │
│       └─ MR-J4-GF を「I/Oモード」(PN03=1) で使用、
│            または併用
│           → MotionControl_J4GFIO を使用
│             references/units/rd77gf.md(J4GFIO併用節)
│
└─ CC-Link IE Field マスタユニット + RnCPU/RnENCPU
    ├─ RJ71GF11-T2 + RnCPU
    │   → MotionControl_J4GFIO
    │     references/units/rj71gf11-t2.md
    │
    ├─ RJ71EN71 + RnCPU
    │   → MotionControl_J4GFIO
    │     references/units/rj71en71.md
    │
    └─ RnENCPU(CPU内蔵CC-Link IE Field)
        → MotionControl_J4GFIO
          references/units/rnencpu.md

ST 言語の最小コード例(MC_Power の呼出し)

//{retro_caps}
program MainProgram
    var
        // 軸情報(FB本体に同梱の AXIS_REF 構造体を使用)
        Axis1: AXIS_REF;
        // FBインスタンス(FB本体は MotionControl_RD77.mslm から)
        FB_Power: MC_Power_RD77;
        // 入出力
        bEnable: BOOL;
        bStatus: BOOL;
        bError: BOOL;
        wErrorID: WORD;
    end_var
    //
    //{st}
    // 軸番号 / ユニット先頭I/O番号 を初回設定
    // (Enable=ON 前に必ず設定すること)
    Axis1.AxisNo := 1;
    Axis1.StartIO := 16#0010;     // 例: ユニット先頭I/O = 0010
    //
    // FB呼出し
    FB_Power(
        Axis             := Axis1,
        Enable           := bEnable,
        NotOperatePlcRdy := false,
        Status           => bStatus,
        Error            => bError,
        ErrorID          => wErrorID
    );
    //{end}
end_program

このSTテキストを GX Works3 にインポートするには、jiecc-skill による IEC 61131-10 XML 変換が必要。 GX Works3 向けは 2段階変換が必須

  1. jiecc.exe --retro_caps source.txt -t mitsubishi -o output.xml
  2. python fix-gx-xml.py output.xml<Task> 除去 + MC_*_RD77MC_*+RD77 変換)

fix-gx-xml.py は jiecc-skill の scripts/fix-gx-xml.py に同梱。


重要な共通制約事項(要注意)

すべての FB 共通:

  1. 割込みプログラム内では使用不可
  2. FOR-NEXT等の単発実行スコープ内禁止(Execute/Enable OFF処理ができない)
  3. 入力ラベルは Execute/Enable=ON前に必ず設定(ON時にラッチされる)
  4. Execute=ON 後は他入力を変更しない(一部の随時実行型FBを除く)
  5. インデックスレジスタ Z8/Z9 を使用(割込みでは使用禁止)
  6. MotionControl_J4GFIO 使用時はサーボパラメータ PA19 = 00ABh 必須
  7. マクロ型/サブルーチン型は CPU ファームウェアバージョン 26 以降必須
  8. コンパイル時に2重コイル警告が出ることがあるが動作上問題なし

詳細は references/overview.md を参照。


出典・著作権

本Skillは、三菱電機株式会社「PLCopen Motion Control FBリファレンス (BCN-B62005-756-G)」を主たる参考資料として、ライブラリの使用方法を 日本語で体系化したもの。同文書はフリーで配布されている。

ライブラリファイル(.mslm)そのものは三菱電機の著作物であり、本Skillには 含まれない。利用者は公式サイトから直接ダウンロードすること。

商標:

  • MELSEC, MELSERVO, MELSOFT, GX Works3 は三菱電機株式会社の登録商標または商標
  • CC-Link IE は CC-Link協会の登録商標
  • PLCopen は PLCopen 協会の登録商標

What ships with it: 59 files

229.0 KB alongside SKILL.md

19 more files not listed here. See all 59 in the repository.

Keep looking

Skills are one crate of 326,499. 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.