- 補助機能コード信号<F010>をBCDで取得する
- 機能命令DECで補助機能コードBCDとMコードの一致出力を作る
- 一致出力を外部機器の動作条件に埋め込む
- 外部機器の動作完了を完了信号<G004.3>でCNCに返信する
NCプログラム中で当たり前のように使用している”Mコード”。
NCプログラム上でMコードを使用する方法を知っている人は多いと思いますが、新たにMコードを追加する方法についてご存じでしょうか?
そもそもMコードって自分で作れるの?
あんな機能をMコードで使用できたら便利になるけどどうやって追加するんだろう?
そんな人向けに今回はMコードの追加方法について解説します。
必要なもの
FANUC LADDER Ⅲ
FANUC LADDER Ⅲは、FANUCが提供するPMCラダー編集ソフトウェアです。
CNC本体の画面からPMCを編集することもできますが、今回のように編集量が多い場合は、専用ソフトウェアを準備することをオススメします。
内蔵イーサネットポートを利用したオンライン接続を利用することで、パソコンからCNC内部のPMCラダーをリアルタイムに編集することができます。
こちらの記事もご覧いただき活用してください。
シーケンス回路設計の知識
シーケンス回路を最低限理解でしていることを前提として解説をします。
あくまでもMコードの追加方法を知りたい人向けの解説であり、シーケンス回路がわからない人向けの解説ではないことをご留意ください。
PMCプログラム
概要
PMCラダーに新規Mコードを追加するにあたっての大まかな流れは次の通りです。
- CNCから補助機能コード信号<Fn010~013>をバイナリコードで取得しBCDコードに変換する
- 機能命令SUB4 DEC(デコード)で補助機能コード信号に対応するMコードの一致出力を作成する
- Mコードの一致出力信号を動作させたい機器の運転条件に追加する
- Mコードの一致出力信号によって動作させた機器の動作完了で完了信号FIN<Gn004.3>を出力する
各手順について解説していきます。
各手順の解説
CNCから補助機能コード信号<Fn010~013>をバイナリコードで取得しBCDコードに変換する
CNCから出力された補助機能コード信号は、補助機能コード信号<Fn010~Fn013>によりPMC側で取得することができます。
補助機能コード信号はバイナリデータで出力されるため、以降の処理でBCDデータを扱うにあたりデータ形式の変換が必要となります。
機能命令DCNVを使用して補助機能コード信号F010#0~7の8bitバイナリコードを、内部リレーR0000にBCDコードに変換して代入します。
機能命令DCNVに対しての入力信号、パラメータ、出力信号についての詳細は下記のとおりです。
機能命令DCNV<SUB14>
- BYT:データのサイズ指定
=0 1バイト指定(8bit)
=1 2バイト指定(16bit) - CNV:変換形式指定
=0 第一パラメータのバイナリコードをBCDコードに変換
=1 第一パラメータのBCDコードをバイナリコードに変換 - RST:リセット
=0 エラー出力コイルR100.0をリセットしない
=1 エラー出力コイルR100.0をリセットする
※F001.0 リセット指令により適時変換エラーをリセットする - ACT:実行指令
=0 データ変換を実行しない
=1 データ変換を実行する
※常時データ変換を実行する - 第一パラメータ
設定値:F010(補助機能コード信号バイナリコード) - 第二パラメータ
設定値:R0000(補助機能コード信号BCDコード格納用) - エラー出力
=0 正常
=1 データ変換エラー
また、補助機能コード信号の詳細については下記のとおりです。
[区分]出力信号
[機能]補助機能が指令されたことを通知する
[動作]スタート位置待ち合わせ機能が有効の時、待ち合わせ中に軸の移動完了を待つ間にMコードが出力される
機能命令SUB4 DEC(デコード)で補助機能コード信号に対応するMコードの一致出力を作成する
前項で取得した機能コード信号のBCDコードと一致する番号を判別します。
機能命令DECを使用して、補助機能コード信号BCDコードと指定した定数の一致を内部リレーR0145.0に出力します。
今回の例では、CNCから取得した補助機能コード信号がMコード45番であるかどうかを確認しています。第二パラメータ”4511″の上二桁部分で一致確認を行いたいMコード番号を指定してください。
ここで一致の確認がとれれば、CNCが現在実行しようとしているMコード番号をPMC側で取得することができました。
機能命令DEC<SUB4>
- ACT:実行指令
=0 データ変換を実行しない
=1 データ変換を実行する
※Mコード実行ストローブ信号F007.0の入力を受けて一致確認を実行する - 第一パラメータ<コード信号のアドレス>
設定値:R0000(補助機能コード信号BCDコード) - 第二パラメータ<デコード指示>
設定値:4511(上二桁:Mコード番号 下二桁:桁数) - デコード結果出力
=0 不一致
=1 一致
Mコードの一致出力信号を動作させたい機器の運転条件に追加する
デコード結果出力信号R145.0を起動信号として利用し、動作させたい外部機器を運転します。
この部分については、各機械に合わせてPMCラダー回路を設計する必要があります。
今回は解説の便宜上、Mコード信号で直接シリンダを前進させる回路としました。
Mコードの一致出力信号によって動作させた機器の動作完了で完了信号FIN<Gn004.3>を出力する
前項ではMコード信号でシリンダを前進させました。いずれシリンダは前進端まで移動し運転を完了します。なので、動作完了したことをCNCへ返答する必要があります。
CNCがMコードによる動作が完了したことを検知するためには、PMCより完了信号FIN<G004.3>を出力してあげましょう。
完了信号FINを受け取ったCNCは、補助機能コード信号をリセットし、Mコードが記述されたNCプログラム上のブロックの実行を終了します。
[区分]入力信号
[機能]補助機能、主軸機能、工具機能、第2補助機能、外部動作機能が完了したことを示す
以上でMコード指令を追加することができました
あとがき
今回はMコード指令の追加方法について解説しました。
MコードについてPMC側の処理を理解することができれば、ラダー回路の組み方次第で様々な機能を実装することができます。
普段NCプログラムしか触らない人でも、MコードがPMCラダー上でどのように処理されているのか知識として知っておくと技術の引き出しが増えますよ。
コメント