7. 開発編 (CNC)#
重要
目的
工作機械・CNCを扱う技術者が、TwinCAT 3 CNCを使って工作機械制御を実装するために、そのアーキテクチャと実装方法を理解する
対象
工作機械・CNCを扱う技術者
BeckhoffのPLC基礎トレーニングを受講済
BeckhoffのCNCのライセンスを購入し、「TC3_CNCPLCBase.tpzip(標準PLCプロジェクト)」と「Beckhoff.App.Shell.Core.exe(標準HMIアプリケーション)」が配布されていること
一般的なCNCとTwinCAT 3 CNCの違い
現在広く普及しているCNCは、補間演算・軸指令の生成、画面の表示、PLC機能、サーボ制御など、複数の機能をまとめて専用のCNC装置として提供されています。(図 7.1)
図 7.1 一般的なCNCの構成#
一方でBeckhoffが提供するCNCは、産業用PC上で動作するTwinCAT 3のMotion機能の一部として提供されるソフトウェアCNCです。(図 7.2)
TwinCAT 3という統合プラットフォームには、PLC、Motion、HMI、通信などの機能モジュールも含まれています。一般的なCNCとの違いは、CNC機能を専用CNC装置としてではなく、TwinCAT 3の拡張機能の一部として存在している点です。PLCやHMIなどを同じTwinCAT 3上で構成できるため、拡張性のあるCNCを構築することが可能です。
図 7.2 TwinCAT 3 CNCの構成#
以下は、それぞれのCNCの主要な機能の違いをまとめた表です。(表 7.1)
項目 |
一般的なCNC |
TwinCAT 3 CNC |
|---|---|---|
制御機器 |
CNC装置 |
IPC + TwinCAT 3 |
画面 |
標準のCNC画面 |
専用アプリケーション・TwinCAT 3 HMI |
PLC機能 |
CNCの補助機能・PMC |
TwinCAT 3 PLC |
軸・ドライブ制御 |
CNC装置 + サーボアンプ |
TwinCAT 3 CNC + EtherCAT対応ドライブアンプ |
Beckhoffの工作機械制御
前述の通り、Beckhoffが提供するCNCは、TwinCAT 3の機能モジュールの一部であり、ハードウェアとして専用のCNC装置を必要としません。代わりに、産業用PC(IPC)上で動作するTwinCAT 3 Runtimeを使用して、CNC機能を実現します。(図 7.3)
CNCは、NCプログラムに従って補間演算や軸指令の生成を行います。生成された指令が、EtherCATを介してサーボドライブアンプに送信されることで、工作機械の各軸を制御します。また、PLCはEtherCATで接続された入出力デバイスを制御することで周辺機器の制御を、HMIは操作画面の表示と操作の入力処理を担います。さらに、IPC上ではWindowsのアプリケーションを実行できるため、通信機能を介したIoTやクラウドサービスなどの連携も可能です。
図 7.3 Beckhoffの工作機械制御の概要#
上記のCNCによる各軸制御の仕組みを少し掘り下げて解説します。(図 7.4)
CNCは、通常NCプログラムを実行することで、各軸の動作を制御します。CNCは、NCプログラムのGコードの命令に従い、各軸の目標位置・速度・加速度を決定し、周期的な位置の指令としてサーボドライブアンプへ送信します。
サーボドライブアンプは、受信した位置とエンコーダから取得した位置を比較し、サーボモータに入力する電流を計算・出力することで、サーボモータを制御します。サーボモータは、CNCから受信した位置の指令に高応答で追従することが求められます。サーボモータの応答性は、機械特性に応じたサーボ制御の制御器パラメータ(ゲイン)で決定されるため、適切なサーボパラメータ調整(ゲイン調整)を行うことが重要になります。
軸の動作に問題が発生した際、上記のCNCとサーボ制御の役割の境界を理解していると、問題の原因を特定しやすくなります。また、それぞれの機能を拡張させることにより、より高度な制御を実現することも可能です。
図 7.4 CNCによるモータ制御#
TwinCAT 3 CNCのアーキテクチャ
TwinCAT 3 CNCによる工作機械の制御実装において、そのアーキテクチャを理解することは非常に重要です。以降では、工作機械の制御におけるTwinCATの各機能の役割と、CNCとPLCをつなぐHLIの説明をします。
工作機械では、機械を扱う作業者はHMI(画面)を通して機械を操作し段取りを行います。この画面の機能は、TwinCAT 3 HMIや、ライセンス購入時に配布されている「Beckhoff.App.Shell.Core.exe(標準HMIアプリケーション)」が担います。
HMIの操作処理は、ADS通信などを介してPLCの変数を読み書きします。PLCはその変数変化の情報をもとに、HLIを通してCNCに制御命令を渡します。
CNCは命令された制御を実行します。それが軸の制御に関わる命令であれば、前述の通りにEtherCATで接続されたサーボドライブアンプへ位置の指令などを送信し、それを受信したサーボドライブアンプは、必要な電流を出力してサーボモータを回転させます。
ここで重要なのが、PLCとCNCの情報をやり取りしているHLIの存在です。以降では、HLIについて解説します。
図 7.5 TwinCAT 3 CNCのアーキテクチャ#
PLCとCNCの間には共有メモリ領域としてHLI(High Level Interface)が用意されています。PLCがHLI上の変数を読み書きすることで、CNCの制御命令の受け渡しや状態情報の取得を行います。基本的に、HMIやユーザアプリケーションからTwinCAT 3 CNCへ機能コマンドを直接入力したり、CNC内部情報を直接参照したりすることはありません。それらは全てPLCからHLIを介してアクセスします。(図 7.6)
例として、ジョグ動作フローと、座標表示フローにおけるHLIの関わりを以降で解説します。
図 7.6 PLCとCNCをつなぐHLI#
ジョグ動作では、まず作業者がHMIを通して操作入力を行います。操作を受け付けたHMIは、ADSを介してPLCの所定の変数へ書き込みます。PLCはその変数の状態に応じてHLI上のコマンド領域を更新し、CNCへジョグ命令を渡します。命令を受けたCNCが、対象軸のジョグ動作を行います。このフローにおいて、HLIはPLCからCNCへコマンドを渡すインタフェースの役割を担っています。(図 7.7)
図 7.7 ジョグ動作フロー#
座標表示フローでは、まずCNCが軸の位置情報をEtherCATで接続されたサーボドライブから取得します。その情報をHLIを通してPLCに提供し、PLCはその情報を所定の変数に書き込みます。HMIはある周期でその変数の情報を読み取り、それを表示します。このフローにおいて、HLIはCNCが持っている状態情報をPLCへ渡すインタフェースの役割を担っています。(図 7.8)
図 7.8 座標表示フロー#
上記の通り、CNC制御における機能の実行と情報の取得において、PLCとCNCの情報を受け渡すHLIの重要性が理解できたと思います。配布されている「TC3_CNCPLCBase.tpzip(標準PLCプロジェクト)」では、CNCの基本的な機能に関して、HLIへ直接アクセスしなくても扱えるように標準PLC側の変数や処理が用意されています。標準PLC側に用意されていない機能については、TwinCAT CNCのPLCライブラリで用意されているファンクションブロックを使用する、もしくはHLIにアクセスして制御実装を行うことになります。
目次
- 7.1. 導入
- 7.2. 設定
- 7.3. パラメータ
- パラメータの設定方法
- 軸パラメータ
- P-AXIS-00014
- P-AXIS-00234
- P-AXIS-00233
- P-AXIS-00403
- P-AXIS-00177
- P-AXIS-00178
- P-AXIS-00018
- P-AXIS-00015
- P-AXIS-00212
- P-AXIS-00209
- P-AXIS-00008
- P-AXIS-00003
- P-AXIS-00201
- P-AXIS-00199
- P-AXIS-00213
- P-AXIS-00009
- P-AXIS-00001
- P-AXIS-00002
- P-AXIS-00196
- P-AXIS-00195
- P-AXIS-00198
- P-AXIS-00197
- P-AXIS-00004
- P-AXIS-00200
- チャンネルパラメータ