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
npx -y skills add mokouliszt/iec61131-3-motioncontrol-skill --skill iec61131-3-motioncontrol-melsecAssembled 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_REF の stMC_RD77 等のメーカ設定用メンバ)は、三菱電機が内容保護形式
(.mslm)で配布しており、ユーザーは公式から取得して GX Works3 にインポートする
必要がある。
ライブラリ入手先
(三菱電機 FA ダウンロードサイト「サーボシステムコントローラ 制御機器 ダウンロード」)
入手するファイル:
MotionControl_RD77_*.mslm— シンプルモーションユニット用MotionControl_J4GFIO_*.mslm— CC-Link IE Field マスタユニット用
詳細手順は references/library-setup.md を参照。
対応ユニット早見表
| 構成 | ユニット形名(網羅) | 必要ライブラリ | 接続方式 | 最大軸数 |
|---|---|---|---|---|
| シンプルモーション | RD77GF | MotionControl_RD77 | CC-Link IE Field(PN03=0 モーションモード) | 32 |
| シンプルモーション | RD77MS | MotionControl_RD77 | SSCNETIII/H 直結 | 16 |
| CC-Link IE Field マスタ | RJ71GF11-T2 + RnCPU | MotionControl_J4GFIO | CC-Link IE Field(PN03=1 I/Oモード) | 120 |
| CC-Link IE Field マスタ | RJ71EN71 + RnCPU | MotionControl_J4GFIO | CC-Link IE Field(PN03=1 I/Oモード) | 120 |
| CPU内蔵CC-Link IE Field | RnENCPU | MotionControl_J4GFIO | CC-Link IE Field(PN03=1 I/Oモード) | 120 |
| RD77GF を J4GFIO マスタとして使用 | RD77GF | MotionControl_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.md(RD77のみ) |
| 速度制御 | mc-movevelocity.md(RD77のみ) |
| トルク制御 | mc-torquecontrol.md(RD77のみ) |
| 現在位置変更 | mc-setposition.md(RD77のみ) |
| オーバーライド | mc-setoverride.md(RD77のみ) |
| パラメータ読出/書込 | mc-readparameter.md / mc-writeparameter.md(RD77のみ) |
| 現在位置/速度/トルク読出 | 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.md(RD77のみ) |
| インチング運転 | mcv-inch.md(RD77のみ) |
よくあるシナリオ
| シナリオ | 参照すべきファイル |
|---|---|
| ライブラリの入手・取込み | 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段階変換が必須:
jiecc.exe --retro_caps source.txt -t mitsubishi -o output.xmlpython fix-gx-xml.py output.xml(<Task>除去 +MC_*_RD77→MC_*+RD77変換)
fix-gx-xml.py は jiecc-skill の scripts/fix-gx-xml.py に同梱。
重要な共通制約事項(要注意)
すべての FB 共通:
- 割込みプログラム内では使用不可
- FOR-NEXT等の単発実行スコープ内禁止(Execute/Enable OFF処理ができない)
- 入力ラベルは Execute/Enable=ON前に必ず設定(ON時にラッチされる)
- Execute=ON 後は他入力を変更しない(一部の随時実行型FBを除く)
- インデックスレジスタ Z8/Z9 を使用(割込みでは使用禁止)
- MotionControl_J4GFIO 使用時はサーボパラメータ PA19 = 00ABh 必須
- マクロ型/サブルーチン型は CPU ファームウェアバージョン 26 以降必須
- コンパイル時に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
examples/
references/
- common-patterns.md14.1 KB
- error-handling.md12.3 KB
- fbs/common-io/axis-ref-j4gf.md7.8 KB
- fbs/common-io/axis-ref.md3.8 KB
- fbs/common-io/g-stlinkief.md6.3 KB
- fbs/common-io/master-module-ref.md3.5 KB
- fbs/common-io/mc-direction.md4.4 KB
- fbs/common-io/mc-input-ref.md1.3 KB
- fbs/common-io/mc-output-ref.md1.7 KB
- fbs/j4gfio/mc-moveabsolute.md2.6 KB
- fbs/j4gfio/mc-moverelative.md1.5 KB
- fbs/j4gfio/mc-power.md2.8 KB
- fbs/j4gfio/mc-readactualposition.md1.1 KB
- fbs/j4gfio/mc-readaxiserror.md1.2 KB
- fbs/j4gfio/mc-readaxisinfo.md1.3 KB
- fbs/j4gfio/mc-readstatus.md1.5 KB
- fbs/j4gfio/mc-reset.md875 B
- fbs/j4gfio/mc-stop.md943 B
- fbs/j4gfio/mcv-home.md1.3 KB
- fbs/j4gfio/mcv-readservoparameter.md1.3 KB
- fbs/j4gfio/mcv-writeservoparameter.md1.3 KB
- fbs/rd77/mc-moveabsolute.md4.9 KB
- fbs/rd77/mc-moveadditive.md2.5 KB
- fbs/rd77/mc-moverelative.md1.7 KB
- fbs/rd77/mc-movevelocity.md3.9 KB
- fbs/rd77/mc-power.md5.9 KB
- fbs/rd77/mc-readactualposition.md1.3 KB
- fbs/rd77/mc-readactualtorque.md1015 B
- fbs/rd77/mc-readactualvelocity.md1.1 KB
- fbs/rd77/mc-readaxiserror.md1.9 KB
- fbs/rd77/mc-readaxisinfo.md1.7 KB
- fbs/rd77/mc-readdigitalinput.md1.3 KB
- fbs/rd77/mc-readdigitaloutput.md1.2 KB
- fbs/rd77/mc-readparameter.md1.8 KB
- fbs/rd77/mc-readstatus.md2.0 KB
19 more files not listed here. See all 59 in the repository.