開発編 (CNC)

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)

_images/develop_cnc_001.png

図 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を構築することが可能です。

_images/develop_cnc_002.png

図 7.2 TwinCAT 3 CNCの構成#

以下は、それぞれのCNCの主要な機能の違いをまとめた表です。(表 7.1)

表 7.1 CNC項目別対比表#

項目

一般的な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やクラウドサービスなどの連携も可能です。

_images/develop_cnc_003.png

図 7.3 Beckhoffの工作機械制御の概要#

上記のCNCによる各軸制御の仕組みを少し掘り下げて解説します。(図 7.4)
CNCは、通常NCプログラムを実行することで、各軸の動作を制御します。CNCは、NCプログラムのGコードの命令に従い、各軸の目標位置・速度・加速度を決定し、周期的な位置の指令としてサーボドライブアンプへ送信します。
サーボドライブアンプは、受信した位置とエンコーダから取得した位置を比較し、サーボモータに入力する電流を計算・出力することで、サーボモータを制御します。サーボモータは、CNCから受信した位置の指令に高応答で追従することが求められます。サーボモータの応答性は、機械特性に応じたサーボ制御の制御器パラメータ(ゲイン)で決定されるため、適切なサーボパラメータ調整(ゲイン調整)を行うことが重要になります。
軸の動作に問題が発生した際、上記のCNCとサーボ制御の役割の境界を理解していると、問題の原因を特定しやすくなります。また、それぞれの機能を拡張させることにより、より高度な制御を実現することも可能です。

_images/develop_cnc_004.png

図 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について解説します。

_images/develop_cnc_005.png

図 7.5 TwinCAT 3 CNCのアーキテクチャ#

PLCとCNCの間には共有メモリ領域としてHLI(High Level Interface)が用意されています。PLCがHLI上の変数を読み書きすることで、CNCの制御命令の受け渡しや状態情報の取得を行います。基本的に、HMIやユーザアプリケーションからTwinCAT 3 CNCへ機能コマンドを直接入力したり、CNC内部情報を直接参照したりすることはありません。それらは全てPLCからHLIを介してアクセスします。(図 7.6)
例として、ジョグ動作フローと、座標表示フローにおけるHLIの関わりを以降で解説します。

_images/develop_cnc_006.png

図 7.6 PLCとCNCをつなぐHLI#

ジョグ動作では、まず作業者がHMIを通して操作入力を行います。操作を受け付けたHMIは、ADSを介してPLCの所定の変数へ書き込みます。PLCはその変数の状態に応じてHLI上のコマンド領域を更新し、CNCへジョグ命令を渡します。命令を受けたCNCが、対象軸のジョグ動作を行います。このフローにおいて、HLIはPLCからCNCへコマンドを渡すインタフェースの役割を担っています。(図 7.7)

_images/develop_cnc_007.png

図 7.7 ジョグ動作フロー#

座標表示フローでは、まずCNCが軸の位置情報をEtherCATで接続されたサーボドライブから取得します。その情報をHLIを通してPLCに提供し、PLCはその情報を所定の変数に書き込みます。HMIはある周期でその変数の情報を読み取り、それを表示します。このフローにおいて、HLIはCNCが持っている状態情報をPLCへ渡すインタフェースの役割を担っています。(図 7.8)

_images/develop_cnc_008.png

図 7.8 座標表示フロー#

上記の通り、CNC制御における機能の実行と情報の取得において、PLCとCNCの情報を受け渡すHLIの重要性が理解できたと思います。配布されている「TC3_CNCPLCBase.tpzip(標準PLCプロジェクト)」では、CNCの基本的な機能に関して、HLIへ直接アクセスしなくても扱えるように標準PLC側の変数や処理が用意されています。標準PLC側に用意されていない機能については、TwinCAT CNCのPLCライブラリで用意されているファンクションブロックを使用する、もしくはHLIにアクセスして制御実装を行うことになります。